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 <s...@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 <sean...@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 <sean...@gmail.com>