Message ID | 20200719161601.495421-27-sjg@chromium.org |
---|---|
State | Accepted |
Commit | fb989e0c6ce019466f24fbd529890d89a21c8472 |
Delegated to: | Tom Rini |
Headers | show |
Series | dm: Avoid including dm.h in header files | expand |
On 7/19/20 12:15 PM, Simon Glass wrote: > This header file should not be included in other header files. Remove it > and use a forward declaration and un-inlining of dev_get_clk_ptr() > instead. > > Fix up the kendryte header files to avoid build errors. > > Signed-off-by: Simon Glass <sjg@chromium.org> > --- > > drivers/clk/clk-uclass.c | 5 +++++ > drivers/clk/kendryte/bypass.c | 7 +++++-- > drivers/clk/kendryte/pll.c | 10 ++++++---- > include/kendryte/bypass.h | 2 +- > include/linux/clk-provider.h | 8 +++----- > 5 files changed, 20 insertions(+), 12 deletions(-) > > diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c > index 15656f5973..934cd5787a 100644 > --- a/drivers/clk/clk-uclass.c > +++ b/drivers/clk/clk-uclass.c > @@ -25,6 +25,11 @@ static inline const struct clk_ops *clk_dev_ops(struct udevice *dev) > return (const struct clk_ops *)dev->driver->ops; > } > > +struct clk *dev_get_clk_ptr(struct udevice *dev) > +{ > + return (struct clk *)dev_get_uclass_priv(dev); > +} > + > #if CONFIG_IS_ENABLED(OF_CONTROL) > # if CONFIG_IS_ENABLED(OF_PLATDATA) > int clk_get_by_driver_info(struct udevice *dev, struct phandle_1_arg *cells, > diff --git a/drivers/clk/kendryte/bypass.c b/drivers/clk/kendryte/bypass.c > index d1fd28175b..5f1986f2cb 100644 > --- a/drivers/clk/kendryte/bypass.c > +++ b/drivers/clk/kendryte/bypass.c > @@ -4,12 +4,15 @@ > */ > > #define LOG_CATEGORY UCLASS_CLK > -#include <kendryte/bypass.h> > > +#include <common.h> > +#include <clk.h> > #include <clk-uclass.h> > +#include <dm.h> > +#include <log.h> > +#include <kendryte/bypass.h> > #include <linux/clk-provider.h> > #include <linux/err.h> > -#include <log.h> > > #define CLK_K210_BYPASS "k210_clk_bypass" > > diff --git a/drivers/clk/kendryte/pll.c b/drivers/clk/kendryte/pll.c > index 19e358856a..ab6d75d585 100644 > --- a/drivers/clk/kendryte/pll.c > +++ b/drivers/clk/kendryte/pll.c > @@ -3,18 +3,20 @@ > * Copyright (C) 2019-20 Sean Anderson <seanga2@gmail.com> > */ > #define LOG_CATEGORY UCLASS_CLK > -#include <kendryte/pll.h> > > -#include <asm/io.h> > +#include <common.h> > +#include <dm.h> > /* For DIV_ROUND_DOWN_ULL, defined in linux/kernel.h */ > #include <div64.h> > +#include <log.h> > +#include <serial.h> > +#include <asm/io.h> > #include <dt-bindings/clock/k210-sysctl.h> > +#include <kendryte/pll.h> > #include <linux/bitfield.h> > #include <linux/clk-provider.h> > #include <linux/delay.h> > #include <linux/err.h> > -#include <log.h> > -#include <serial.h> > > #define CLK_K210_PLL "k210_clk_pll" > > diff --git a/include/kendryte/bypass.h b/include/kendryte/bypass.h > index a081cbd12f..ab85bbcbfc 100644 > --- a/include/kendryte/bypass.h > +++ b/include/kendryte/bypass.h > @@ -5,7 +5,7 @@ > #ifndef K210_BYPASS_H > #define K210_BYPASS_H > > -#include <clk.h> > +struct clk; > > struct k210_bypass { > struct clk clk; > diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h > index 8a20743ad8..79dce8f0ad 100644 > --- a/include/linux/clk-provider.h > +++ b/include/linux/clk-provider.h > @@ -9,12 +9,13 @@ > #ifndef __LINUX_CLK_PROVIDER_H > #define __LINUX_CLK_PROVIDER_H > > -#include <dm.h> > #include <linux/bitops.h> > #include <linux/err.h> > #include <clk-uclass.h> > #include <linux/err.h> > > +struct udevice; > + > static inline void clk_dm(ulong id, struct clk *clk) > { > if (!IS_ERR(clk)) > @@ -188,8 +189,5 @@ struct clk *clk_register_mux(struct device *dev, const char *name, > const char *clk_hw_get_name(const struct clk *hw); > ulong clk_generic_get_rate(struct clk *clk); > > -static inline struct clk *dev_get_clk_ptr(struct udevice *dev) > -{ > - return (struct clk *)dev_get_uclass_priv(dev); > -} > +struct clk *dev_get_clk_ptr(struct udevice *dev); > #endif /* __LINUX_CLK_PROVIDER_H */ > Reviewed-by: Sean Anderson <seanga2@gmail.com>
On Sun, Jul 19, 2020 at 10:15:56AM -0600, Simon Glass wrote: > This header file should not be included in other header files. Remove it > and use a forward declaration and un-inlining of dev_get_clk_ptr() > instead. > > Fix up the kendryte header files to avoid build errors. > > Signed-off-by: Simon Glass <sjg@chromium.org> > Reviewed-by: Sean Anderson <seanga2@gmail.com> Applied to u-boot/master, thanks!
diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c index 15656f5973..934cd5787a 100644 --- a/drivers/clk/clk-uclass.c +++ b/drivers/clk/clk-uclass.c @@ -25,6 +25,11 @@ static inline const struct clk_ops *clk_dev_ops(struct udevice *dev) return (const struct clk_ops *)dev->driver->ops; } +struct clk *dev_get_clk_ptr(struct udevice *dev) +{ + return (struct clk *)dev_get_uclass_priv(dev); +} + #if CONFIG_IS_ENABLED(OF_CONTROL) # if CONFIG_IS_ENABLED(OF_PLATDATA) int clk_get_by_driver_info(struct udevice *dev, struct phandle_1_arg *cells, diff --git a/drivers/clk/kendryte/bypass.c b/drivers/clk/kendryte/bypass.c index d1fd28175b..5f1986f2cb 100644 --- a/drivers/clk/kendryte/bypass.c +++ b/drivers/clk/kendryte/bypass.c @@ -4,12 +4,15 @@ */ #define LOG_CATEGORY UCLASS_CLK -#include <kendryte/bypass.h> +#include <common.h> +#include <clk.h> #include <clk-uclass.h> +#include <dm.h> +#include <log.h> +#include <kendryte/bypass.h> #include <linux/clk-provider.h> #include <linux/err.h> -#include <log.h> #define CLK_K210_BYPASS "k210_clk_bypass" diff --git a/drivers/clk/kendryte/pll.c b/drivers/clk/kendryte/pll.c index 19e358856a..ab6d75d585 100644 --- a/drivers/clk/kendryte/pll.c +++ b/drivers/clk/kendryte/pll.c @@ -3,18 +3,20 @@ * Copyright (C) 2019-20 Sean Anderson <seanga2@gmail.com> */ #define LOG_CATEGORY UCLASS_CLK -#include <kendryte/pll.h> -#include <asm/io.h> +#include <common.h> +#include <dm.h> /* For DIV_ROUND_DOWN_ULL, defined in linux/kernel.h */ #include <div64.h> +#include <log.h> +#include <serial.h> +#include <asm/io.h> #include <dt-bindings/clock/k210-sysctl.h> +#include <kendryte/pll.h> #include <linux/bitfield.h> #include <linux/clk-provider.h> #include <linux/delay.h> #include <linux/err.h> -#include <log.h> -#include <serial.h> #define CLK_K210_PLL "k210_clk_pll" diff --git a/include/kendryte/bypass.h b/include/kendryte/bypass.h index a081cbd12f..ab85bbcbfc 100644 --- a/include/kendryte/bypass.h +++ b/include/kendryte/bypass.h @@ -5,7 +5,7 @@ #ifndef K210_BYPASS_H #define K210_BYPASS_H -#include <clk.h> +struct clk; struct k210_bypass { struct clk clk; diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h index 8a20743ad8..79dce8f0ad 100644 --- a/include/linux/clk-provider.h +++ b/include/linux/clk-provider.h @@ -9,12 +9,13 @@ #ifndef __LINUX_CLK_PROVIDER_H #define __LINUX_CLK_PROVIDER_H -#include <dm.h> #include <linux/bitops.h> #include <linux/err.h> #include <clk-uclass.h> #include <linux/err.h> +struct udevice; + static inline void clk_dm(ulong id, struct clk *clk) { if (!IS_ERR(clk)) @@ -188,8 +189,5 @@ struct clk *clk_register_mux(struct device *dev, const char *name, const char *clk_hw_get_name(const struct clk *hw); ulong clk_generic_get_rate(struct clk *clk); -static inline struct clk *dev_get_clk_ptr(struct udevice *dev) -{ - return (struct clk *)dev_get_uclass_priv(dev); -} +struct clk *dev_get_clk_ptr(struct udevice *dev); #endif /* __LINUX_CLK_PROVIDER_H */
This header file should not be included in other header files. Remove it and use a forward declaration and un-inlining of dev_get_clk_ptr() instead. Fix up the kendryte header files to avoid build errors. Signed-off-by: Simon Glass <sjg@chromium.org> --- drivers/clk/clk-uclass.c | 5 +++++ drivers/clk/kendryte/bypass.c | 7 +++++-- drivers/clk/kendryte/pll.c | 10 ++++++---- include/kendryte/bypass.h | 2 +- include/linux/clk-provider.h | 8 +++----- 5 files changed, 20 insertions(+), 12 deletions(-)