There is no little value to each versatile type platform having it's own struct clk definition. Merge all of them into plat-versatile to eliminate duplication.
This patch probably conflicts with the common struct clk work, but the timeline for that larger work is still uncertain, and this patch can be considered a step in that direction. Also, a conflict with this patch will be minor and easily resolved. Note: I use a couple of #ifdef CONFIG_ARCH_INTEGRATOR block to avoid including the module pointer for configurations that don't need it, but that is only a space optimization. I'd rather include the module pointer unconditionally, and if other agree then I'll remove the #ifdef Signed-off-by: Grant Likely <[email protected]> Cc: Russell King <[email protected]> Cc: Mike Turquette <[email protected]> --- arch/arm/mach-integrator/include/mach/clkdev.h | 19 --------------- arch/arm/mach-realview/include/mach/clkdev.h | 10 -------- arch/arm/mach-versatile/include/mach/clkdev.h | 10 -------- arch/arm/mach-vexpress/include/mach/clkdev.h | 9 ------- arch/arm/mach-zynq/include/mach/clkdev.h | 10 -------- arch/arm/plat-versatile/include/plat/clock.h | 29 ++++++++++++++++++++++++ 6 files changed, 29 insertions(+), 58 deletions(-) diff --git a/arch/arm/mach-integrator/include/mach/clkdev.h b/arch/arm/mach-integrator/include/mach/clkdev.h index bfe0767..96ae8a4 100644 --- a/arch/arm/mach-integrator/include/mach/clkdev.h +++ b/arch/arm/mach-integrator/include/mach/clkdev.h @@ -4,23 +4,4 @@ #include <linux/module.h> #include <plat/clock.h> -struct clk { - unsigned long rate; - const struct clk_ops *ops; - struct module *owner; - const struct icst_params *params; - void __iomem *vcoreg; - void *data; -}; - -static inline int __clk_get(struct clk *clk) -{ - return try_module_get(clk->owner); -} - -static inline void __clk_put(struct clk *clk) -{ - module_put(clk->owner); -} - #endif diff --git a/arch/arm/mach-realview/include/mach/clkdev.h b/arch/arm/mach-realview/include/mach/clkdev.h index e58d077..629b0ef 100644 --- a/arch/arm/mach-realview/include/mach/clkdev.h +++ b/arch/arm/mach-realview/include/mach/clkdev.h @@ -3,14 +3,4 @@ #include <plat/clock.h> -struct clk { - unsigned long rate; - const struct clk_ops *ops; - const struct icst_params *params; - void __iomem *vcoreg; -}; - -#define __clk_get(clk) ({ 1; }) -#define __clk_put(clk) do { } while (0) - #endif diff --git a/arch/arm/mach-versatile/include/mach/clkdev.h b/arch/arm/mach-versatile/include/mach/clkdev.h index e58d077..629b0ef 100644 --- a/arch/arm/mach-versatile/include/mach/clkdev.h +++ b/arch/arm/mach-versatile/include/mach/clkdev.h @@ -3,14 +3,4 @@ #include <plat/clock.h> -struct clk { - unsigned long rate; - const struct clk_ops *ops; - const struct icst_params *params; - void __iomem *vcoreg; -}; - -#define __clk_get(clk) ({ 1; }) -#define __clk_put(clk) do { } while (0) - #endif diff --git a/arch/arm/mach-vexpress/include/mach/clkdev.h b/arch/arm/mach-vexpress/include/mach/clkdev.h index 3f8307d..629b0ef 100644 --- a/arch/arm/mach-vexpress/include/mach/clkdev.h +++ b/arch/arm/mach-vexpress/include/mach/clkdev.h @@ -3,13 +3,4 @@ #include <plat/clock.h> -struct clk { - const struct clk_ops *ops; - unsigned long rate; - const struct icst_params *params; -}; - -#define __clk_get(clk) ({ 1; }) -#define __clk_put(clk) do { } while (0) - #endif diff --git a/arch/arm/mach-zynq/include/mach/clkdev.h b/arch/arm/mach-zynq/include/mach/clkdev.h index c6e73d8..bcce0e6 100644 --- a/arch/arm/mach-zynq/include/mach/clkdev.h +++ b/arch/arm/mach-zynq/include/mach/clkdev.h @@ -19,14 +19,4 @@ #include <plat/clock.h> -struct clk { - unsigned long rate; - const struct clk_ops *ops; - const struct icst_params *params; - void __iomem *vcoreg; -}; - -#define __clk_get(clk) ({ 1; }) -#define __clk_put(clk) do { } while (0) - #endif diff --git a/arch/arm/plat-versatile/include/plat/clock.h b/arch/arm/plat-versatile/include/plat/clock.h index 3cfb024..2117701 100644 --- a/arch/arm/plat-versatile/include/plat/clock.h +++ b/arch/arm/plat-versatile/include/plat/clock.h @@ -3,6 +3,19 @@ #include <asm/hardware/icst.h> +struct module; + +struct clk { + unsigned long rate; + const struct clk_ops *ops; + const struct icst_params *params; + void __iomem *vcoreg; +#ifdef CONFIG_ARCH_INTEGRATOR + struct module *owner; + void *data; +#endif +}; + struct clk_ops { long (*round)(struct clk *, unsigned long); int (*set)(struct clk *, unsigned long); @@ -12,4 +25,20 @@ struct clk_ops { int icst_clk_set(struct clk *, unsigned long); long icst_clk_round(struct clk *, unsigned long); +#ifdef CONFIG_ARCH_INTEGRATOR +static inline int __clk_get(struct clk *clk) +{ + return try_module_get(clk->owner); +} + +static inline void __clk_put(struct clk *clk) +{ + module_put(clk->owner); +} +#else +#define __clk_get(clk) ({ 1; }) +#define __clk_put(clk) do { } while (0) +#endif + + #endif -- 1.7.5.4 _______________________________________________ devicetree-discuss mailing list [email protected] https://lists.ozlabs.org/listinfo/devicetree-discuss
