Re: [PATCH] pwm: pxa: Explicitly include correct DT includes

From: Rob Herring
Date: Thu Oct 12 2023 - 15:49:52 EST


On Wed, Oct 11, 2023 at 3:41 AM Uwe Kleine-König
<u.kleine-koenig@xxxxxxxxxxxxxx> wrote:
>
> On Mon, Oct 09, 2023 at 12:29:17PM -0500, Rob Herring wrote:
> > The DT of_device.h and of_platform.h date back to the separate
> > of_platform_bus_type before it as merged into the regular platform bus.
> > As part of that merge prepping Arm DT support 13 years ago, they
> > "temporarily" include each other. They also include platform_device.h
> > and of.h. As a result, there's a pretty much random mix of those include
> > files used throughout the tree. In order to detangle these headers and
> > replace the implicit includes with struct declarations, users need to
> > explicitly include the correct includes.
> >
> > Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
> > ---
> > drivers/pwm/pwm-pxa.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/pwm/pwm-pxa.c b/drivers/pwm/pwm-pxa.c
> > index 1e475ed10180..78b04e017c49 100644
> > --- a/drivers/pwm/pwm-pxa.c
> > +++ b/drivers/pwm/pwm-pxa.c
> > @@ -24,7 +24,7 @@
> > #include <linux/clk.h>
> > #include <linux/io.h>
> > #include <linux/pwm.h>
> > -#include <linux/of_device.h>
> > +#include <linux/of.h>
>
> Even without both headers the driver compiles fine as linux/pwm.h
> includes of.h.

Yes, that's just one of several:

include/linux/pm_domain.h | 4 +++-
include/linux/remoteproc.h | 3 ++-
include/linux/thermal.h | 4 +++-
include/linux/cpu_cooling.h | 1 -
include/linux/fsl/bestcomm/bestcomm_priv.h | 1 -
include/linux/mailbox_client.h | 4 ++--
include/linux/mailbox_controller.h | 2 +-
include/linux/phy/phy.h | 5 +++--
include/linux/pwm.h | 4 +++-
include/net/dsa.h | 2 +-

>
> I think we should do:
>
> diff --git a/include/linux/pwm.h b/include/linux/pwm.h
> index d2f9f690a9c1..9e35970ca2ab 100644
> --- a/include/linux/pwm.h
> +++ b/include/linux/pwm.h
> @@ -4,8 +4,8 @@
>
> #include <linux/err.h>
> #include <linux/mutex.h>
> -#include <linux/of.h>
>
> +struct of_phandle_args;

Also used in the header:

+struct device;
+struct fwnode_handle;

> struct pwm_chip;
>
> /**
>
> drivers/pmw/* compiles fine with this change.

Agreed in what I tested so far.

But I'm running out of gas on doing more of this, so once I get
of_device.h and of_platform.h detangled, I'm probably done for a while
at least. IOW, feel free to submit a patch for pwm.h.

>
> Other than that:
>
> Acked-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>

Thanks!

Rob