pwm: pxa: Explicitly include correct DT includes

Message ID 20231009172923.2457844-22-robh@kernel.org
State New
Headers
Series pwm: pxa: Explicitly include correct DT includes |

Commit Message

Rob Herring Oct. 9, 2023, 5:29 p.m. UTC
  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@kernel.org>
---
 drivers/pwm/pwm-pxa.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Uwe Kleine-König Oct. 11, 2023, 8:41 a.m. UTC | #1
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@kernel.org>
> ---
>  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.

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;
 struct pwm_chip;
 
 /**

drivers/pmw/* compiles fine with this change.

Other than that:

Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

Best regards
Uwe
  
Thierry Reding Oct. 12, 2023, 1:55 p.m. UTC | #2
On Mon, 09 Oct 2023 12:29:17 -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.
> 
> [...]

Applied, thanks!

[1/1] pwm: pxa: Explicitly include correct DT includes
      commit: 1d1d7ed2fb47b83496bb708eca0974a2741eb8ca

Best regards,
  
Rob Herring Oct. 12, 2023, 7:48 p.m. UTC | #3
On Wed, Oct 11, 2023 at 3:41 AM Uwe Kleine-König
<u.kleine-koenig@pengutronix.de> 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@kernel.org>
> > ---
> >  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@pengutronix.de>

Thanks!

Rob
  

Patch

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>
 
 #include <asm/div64.h>