sh: extend clock struct with mapped_reg member
PATCH 1/4 sh: extend clock struct with mapped_reg member
From: Magnus Damm <[email protected]>
Add a "mapped_reg" member to struct clk and use that to keep the ioremapped register based on enable_reg.
Signed-off-by Magnus Damm <[email protected]>
---
drivers/sh/clk/core.c | 9 +++++++-- include/linux/sh_clk.h | 1 + 2 files changed, 8 insertions(+), 2 deletions(-)
drivers/sh/clk/core.c +7 -2
@@ -355,7 +355,7 @@ static int clk_establish_mapping(struct*/ if (!clk->parent) { clk->mapping = &dummy_mapping; -return 0 ; + goto out; }/*
@@ -384,6 +384,9 @@ static int clk_establish_mapping(struct } clk->mapping = mapping; + out: + clk->mapped_reg = clk->mapping->base; + clk->mapped_reg += (phys_addr_t )clk->enable_reg - clk->mapping->phys;return 0 ; }
@@ -402,10 +405,12 @@ static void clk_teardown_mapping(struct/* Nothing to do */ if (mapping = &dummy_mapping) -return ; + goto out;kref_put (&mapping->ref, clk_destroy_mapping); clk->mapping =NULL ; + out: + clk->mapped_reg =NULL ; }int clk_register (struct clk *clk)
include/linux/sh_clk.h +1 -0
@@ -49,6 +49,7 @@ struct clk {void __iomem *enable_reg;unsigned int enable_bit; +void __iomem *mapped_reg;unsigned long arch_flags;void *priv;