Commit eda2030a authored by Magnus Damm's avatar Magnus Damm Committed by Paul Mundt

sh: extend clock struct with mapped_reg member

Add a "mapped_reg" member to struct clk and use that
to keep the ioremapped register based on enable_reg.
Signed-off-by: default avatarMagnus Damm <damm@opensource.se>
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent d4775356
...@@ -355,7 +355,7 @@ static int clk_establish_mapping(struct clk *clk) ...@@ -355,7 +355,7 @@ static int clk_establish_mapping(struct clk *clk)
*/ */
if (!clk->parent) { if (!clk->parent) {
clk->mapping = &dummy_mapping; clk->mapping = &dummy_mapping;
return 0; goto out;
} }
/* /*
...@@ -384,6 +384,9 @@ static int clk_establish_mapping(struct clk *clk) ...@@ -384,6 +384,9 @@ static int clk_establish_mapping(struct clk *clk)
} }
clk->mapping = mapping; clk->mapping = mapping;
out:
clk->mapped_reg = clk->mapping->base;
clk->mapped_reg += (phys_addr_t)clk->enable_reg - clk->mapping->phys;
return 0; return 0;
} }
...@@ -402,10 +405,12 @@ static void clk_teardown_mapping(struct clk *clk) ...@@ -402,10 +405,12 @@ static void clk_teardown_mapping(struct clk *clk)
/* Nothing to do */ /* Nothing to do */
if (mapping == &dummy_mapping) if (mapping == &dummy_mapping)
return; goto out;
kref_put(&mapping->ref, clk_destroy_mapping); kref_put(&mapping->ref, clk_destroy_mapping);
clk->mapping = NULL; clk->mapping = NULL;
out:
clk->mapped_reg = NULL;
} }
int clk_register(struct clk *clk) int clk_register(struct clk *clk)
......
...@@ -49,6 +49,7 @@ struct clk { ...@@ -49,6 +49,7 @@ struct clk {
void __iomem *enable_reg; void __iomem *enable_reg;
unsigned int enable_bit; unsigned int enable_bit;
void __iomem *mapped_reg;
unsigned long arch_flags; unsigned long arch_flags;
void *priv; void *priv;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment