Message ID | 1409758148-20104-2-git-send-email-tomeu.vizoso@collabora.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Quoting Mike Turquette (2014-09-07 23:13:55) > Quoting Tomeu Vizoso (2014-09-03 08:31:57) > > In preparation to change the public API to return a per-user clk structure, > > remove any usage of this public API from the clock implementations. > > > > The reason for having this in a separate commit from the one that introduces > > the implementation of the new functions is to separate the changes generated > > with Coccinelle from the rest, and keep the patches' size reasonable. > > > > Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> > > Tested-by: Boris Brezillon <boris.brezillon@free-electrons.com> > > Tested-by: Heiko Stuebner <heiko@sntech.de> > > Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com> > > Hi Tomeu, > > Looks like the Coccinelle script had a false-positive. > asm-generic/clkdev.h was converted from clk->clk_core and this blowed up > clock drivers for architectures that don't provide an asm-specific > clkdev.h implementation. This fixes x86's LPSS and a Microblaze driver. > > I've rolled the following fix into your 2/9 patch. No action is > necessary. > > Regards, > Mike > > > > diff --git a/include/asm-generic/clkdev.h b/include/asm-generic/clkdev.h > index 4320225..90a32a6 100644 > --- a/include/asm-generic/clkdev.h > +++ b/include/asm-generic/clkdev.h > @@ -15,10 +15,10 @@ > > #include <linux/slab.h> > > -struct clk_core; > +struct clk; > > -static inline int __clk_get(struct clk_core *clk) { return 1; } > -static inline void __clk_put(struct clk_core *clk) { } > +static inline int __clk_get(struct clk *clk) { return 1; } > +static inline void __clk_put(struct clk *clk) { } > > static inline struct clk_lookup_alloc *__clkdev_alloc(size_t size) > { Please disregard the above patch. I might have jumped the gun on this one. I've posted an alternative (and hopefully correct) fix here: http://lkml.kernel.org/r/<1410242868-14750-1-git-send-email-mturquette@linaro.org> Regards, Mike
diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c index bf852d7..0f9e479 100644 --- a/arch/arm/mach-omap2/display.c +++ b/arch/arm/mach-omap2/display.c @@ -21,6 +21,7 @@ #include <linux/platform_device.h> #include <linux/io.h> #include <linux/clk.h> +#include <linux/clk-provider.h> #include <linux/err.h> #include <linux/delay.h> #include <linux/of.h> diff --git a/arch/arm/mach-omap2/omap_device.c b/arch/arm/mach-omap2/omap_device.c index d22c30d..f138a62 100644 --- a/arch/arm/mach-omap2/omap_device.c +++ b/arch/arm/mach-omap2/omap_device.c @@ -32,6 +32,7 @@ #include <linux/io.h> #include <linux/clk.h> #include <linux/clkdev.h> +#include <linux/clk-provider.h> #include <linux/pm_runtime.h> #include <linux/of.h> #include <linux/notifier.h> diff --git a/arch/arm/mach-shmobile/clock.c b/arch/arm/mach-shmobile/clock.c index 806f940..ed415dc 100644 --- a/arch/arm/mach-shmobile/clock.c +++ b/arch/arm/mach-shmobile/clock.c @@ -24,6 +24,7 @@ #ifdef CONFIG_COMMON_CLK #include <linux/clk.h> +#include <linux/clk-provider.h> #include <linux/clkdev.h> #include "clock.h" diff --git a/arch/arm/plat-orion/common.c b/arch/arm/plat-orion/common.c index 3ec6e8e..961b593 100644 --- a/arch/arm/plat-orion/common.c +++ b/arch/arm/plat-orion/common.c @@ -15,6 +15,7 @@ #include <linux/serial_8250.h> #include <linux/ata_platform.h> #include <linux/clk.h> +#include <linux/clk-provider.h> #include <linux/clkdev.h> #include <linux/mv643xx_eth.h> #include <linux/mv643xx_i2c.h> diff --git a/drivers/clk/berlin/bg2.c b/drivers/clk/berlin/bg2.c index 515fb13..4c81e09 100644 --- a/drivers/clk/berlin/bg2.c +++ b/drivers/clk/berlin/bg2.c @@ -19,6 +19,7 @@ #include <linux/clk.h> #include <linux/clk-provider.h> +#include <linux/clkdev.h> #include <linux/kernel.h> #include <linux/of.h> #include <linux/of_address.h> diff --git a/drivers/clk/berlin/bg2q.c b/drivers/clk/berlin/bg2q.c index 21784e4..748da9b 100644 --- a/drivers/clk/berlin/bg2q.c +++ b/drivers/clk/berlin/bg2q.c @@ -19,6 +19,7 @@ #include <linux/clk.h> #include <linux/clk-provider.h> +#include <linux/clkdev.h> #include <linux/kernel.h> #include <linux/of.h> #include <linux/of_address.h> diff --git a/drivers/clk/clk-conf.c b/drivers/clk/clk-conf.c index aad4796..d36a7b3 100644 --- a/drivers/clk/clk-conf.c +++ b/drivers/clk/clk-conf.c @@ -8,6 +8,7 @@ */ #include <linux/clk.h> +#include <linux/clkdev.h> #include <linux/clk-provider.h> #include <linux/clk/clk-conf.h> #include <linux/device.h> diff --git a/drivers/clk/clkdev.c b/drivers/clk/clkdev.c index da4bda8..c751d0c 100644 --- a/drivers/clk/clkdev.c +++ b/drivers/clk/clkdev.c @@ -18,6 +18,7 @@ #include <linux/string.h> #include <linux/mutex.h> #include <linux/clk.h> +#include <linux/clk-provider.h> #include <linux/clkdev.h> #include <linux/of.h> diff --git a/drivers/media/platform/exynos4-is/media-dev.c b/drivers/media/platform/exynos4-is/media-dev.c index 344718d..2620c48 100644 --- a/drivers/media/platform/exynos4-is/media-dev.c +++ b/drivers/media/platform/exynos4-is/media-dev.c @@ -13,6 +13,7 @@ #include <linux/bug.h> #include <linux/clk.h> #include <linux/clk-provider.h> +#include <linux/clkdev.h> #include <linux/device.h> #include <linux/errno.h> #include <linux/i2c.h> diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h index 411dd7e..99b906f 100644 --- a/include/linux/clk-provider.h +++ b/include/linux/clk-provider.h @@ -16,6 +16,33 @@ #ifdef CONFIG_COMMON_CLK +/* Temporarily map the to-be-added API to the old API, just so stuff compiles */ +#define clk_core clk + +#define __clk_create_clk + +#define clk_provider_get clk_get +#define clk_provider_get_sys clk_get_sys +#define devm_clk_provider_get devm_clk_get +#define of_clk_provider_get of_clk_get +#define of_clk_provider_get_by_name of_clk_get_by_name + +#define clk_provider_set_rate clk_set_rate +#define clk_provider_get_rate clk_get_rate +#define clk_provider_round_rate clk_round_rate +#define clk_provider_set_parent clk_set_parent +#define clk_provider_get_parent clk_get_parent +#define clk_provider_prepare clk_prepare +#define clk_provider_unprepare clk_unprepare +#define clk_provider_enable clk_enable +#define clk_provider_disable clk_disable +#define clk_provider_prepare_enable clk_prepare_enable +#define clk_provider_disable_unprepare clk_unprepare +#define clk_provider_notifier_register clk_notifier_register +#define clk_provider_notifier_unregister clk_notifier_unregister + +#define clk_get_name __clk_get_name + /* * flags used across common struct clk. these flags should only affect the * top-level framework. custom flags for dealing with hardware specifics diff --git a/include/linux/clk/zynq.h b/include/linux/clk/zynq.h index 7a5633b..a990a59 100644 --- a/include/linux/clk/zynq.h +++ b/include/linux/clk/zynq.h @@ -21,6 +21,7 @@ #define __LINUX_CLK_ZYNQ_H_ #include <linux/spinlock.h> +#include <linux/clk-provider.h> void zynq_clock_init(void);