[PATCH] ARM: imx: remove clk_hw from clk_busy
Sascha Hauer
s.hauer at pengutronix.de
Fri Apr 13 10:34:04 EDT 2012
On Fri, Apr 13, 2012 at 10:09:57AM +0800, Shawn Guo wrote:
> Signed-off-by: Shawn Guo <shawn.guo at linaro.org>
> ---
> Hi Sascha,
>
> I'm convinced by Richard that we do not need a clk_hw duplication
> in clk_busy for a better OOP view. So please consider to squash
> the patch to "ARM: imx: add common clock support for clk busy".
Ok, will do.
Thanks
Sascha
>
> Thanks,
> Shawn
>
> arch/arm/mach-imx/clk-busy.c | 32 ++++++++++++++++++--------------
> 1 files changed, 18 insertions(+), 14 deletions(-)
>
> diff --git a/arch/arm/mach-imx/clk-busy.c b/arch/arm/mach-imx/clk-busy.c
> index 9450f0b..977d50a 100644
> --- a/arch/arm/mach-imx/clk-busy.c
> +++ b/arch/arm/mach-imx/clk-busy.c
> @@ -29,14 +29,18 @@ static int clk_busy_wait(void __iomem *reg, u8 shift)
> }
>
> struct clk_busy_divider {
> - struct clk_hw hw;
> - void __iomem *reg;
> - u8 shift;
> struct clk_divider div;
> const struct clk_ops *div_ops;
> + void __iomem *reg;
> + u8 shift;
> };
>
> -#define to_clk_busy_divider(_hw) container_of(_hw, struct clk_busy_divider, hw)
> +static inline struct clk_busy_divider *to_clk_busy_divider(struct clk_hw *hw)
> +{
> + struct clk_divider *div = container_of(hw, struct clk_divider, hw);
> +
> + return container_of(div, struct clk_busy_divider, div);
> +}
>
> static unsigned long clk_busy_divider_recalc_rate(struct clk_hw *hw,
> unsigned long parent_rate)
> @@ -92,25 +96,27 @@ struct clk *imx_clk_busy_divider(const char *name, char *parent_name,
> busy->div.lock = &imx_ccm_lock;
> busy->div_ops = &clk_divider_ops;
>
> - clk = clk_register(NULL, name, &clk_busy_divider_ops, &busy->hw,
> + clk = clk_register(NULL, name, &clk_busy_divider_ops, &busy->div.hw,
> &parent_name, 1, CLK_SET_RATE_PARENT);
> if (!clk)
> kfree(busy);
>
> - busy->div.hw.clk = clk;
> -
> return clk;
> }
>
> struct clk_busy_mux {
> - struct clk_hw hw;
> - void __iomem *reg;
> - u8 shift;
> struct clk_mux mux;
> const struct clk_ops *mux_ops;
> + void __iomem *reg;
> + u8 shift;
> };
>
> -#define to_clk_busy_mux(_hw) container_of(_hw, struct clk_busy_mux, hw)
> +static inline struct clk_busy_mux *to_clk_busy_mux(struct clk_hw *hw)
> +{
> + struct clk_mux *mux = container_of(hw, struct clk_mux, hw);
> +
> + return container_of(mux, struct clk_busy_mux, mux);
> +}
>
> static u8 clk_busy_mux_get_parent(struct clk_hw *hw)
> {
> @@ -156,12 +162,10 @@ struct clk *imx_clk_busy_mux(const char *name, void __iomem *reg, u8 shift,
> busy->mux.lock = &imx_ccm_lock;
> busy->mux_ops = &clk_mux_ops;
>
> - clk = clk_register(NULL, name, &clk_busy_mux_ops, &busy->hw,
> + clk = clk_register(NULL, name, &clk_busy_mux_ops, &busy->mux.hw,
> parent_names, num_parents, 0);
> if (!clk)
> kfree(busy);
>
> - busy->mux.hw.clk = clk;
> -
> return clk;
> }
> --
> 1.7.5.4
>
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the linux-arm-kernel
mailing list