Message ID | 20230207142952.51844-7-andriy.shevchenko@linux.intel.com (mailing list archive) |
---|---|
State | Not Applicable |
Delegated to: | Kalle Valo |
Headers | show |
Series | gpiolib cleanups | expand |
On Tue, Feb 7, 2023 at 3:29 PM Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > From: Arnd Bergmann <arnd@arndb.de> > > Almost all gpio drivers include linux/gpio/driver.h, and other > files should not rely on includes from this header. > > Remove the indirect include from here and include the correct > headers directly from where they are used. > > Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > Reviewed-by: Linus Walleij <linus.walleij@linaro.org> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Make sure you push this to the kernel.org build servers (zeroday builds), I think this patch needs to hit some more files, in my tests with a similar patch at least these: diff --git a/drivers/hte/hte-tegra194-test.c b/drivers/hte/hte-tegra194-test.c index 5d776a185bd6..79eb866558d3 100644 --- a/drivers/hte/hte-tegra194-test.c +++ b/drivers/hte/hte-tegra194-test.c @@ -6,10 +6,11 @@ */ #include <linux/err.h> +#include <linux/mod_devicetable.h> #include <linux/module.h> #include <linux/moduleparam.h> #include <linux/interrupt.h> -#include <linux/gpio.h> +#include <linux/gpio/consumer.h> #include <linux/timer.h> #include <linux/platform_device.h> #include <linux/workqueue.h> diff --git a/arch/arm/mach-pxa/viper-pcmcia.c b/arch/arm/mach-pxa/viper-pcmcia.c index 26599dcc49b3..2c7af4ed57d5 100644 --- a/arch/arm/mach-pxa/viper-pcmcia.c +++ b/arch/arm/mach-pxa/viper-pcmcia.c @@ -19,6 +19,7 @@ #include <linux/errno.h> #include <linux/interrupt.h> #include <linux/platform_device.h> +#include <linux/mod_devicetable.h> #include <linux/gpio.h> #include <pcmcia/ss.h> Yours, Linus Walleij
On Tue, 07 Feb 2023, Andy Shevchenko wrote: > From: Arnd Bergmann <arnd@arndb.de> > > Almost all gpio drivers include linux/gpio/driver.h, and other > files should not rely on includes from this header. > > Remove the indirect include from here and include the correct > headers directly from where they are used. > > Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > Reviewed-by: Linus Walleij <linus.walleij@linaro.org> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > arch/arm/mach-omap1/irq.c | 1 + > arch/arm/mach-orion5x/board-rd88f5182.c | 1 + > arch/arm/mach-s3c/s3c64xx.c | 1 + > arch/arm/mach-sa1100/assabet.c | 1 + > arch/arm/plat-orion/gpio.c | 1 + > drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.c | 1 + > include/linux/gpio.h | 2 -- > include/linux/mfd/ucb1x00.h | 1 + Acked-by: Lee Jones <lee@kernel.org> > 8 files changed, 7 insertions(+), 2 deletions(-)
On Tue, Feb 07, 2023 at 03:55:23PM +0100, Linus Walleij wrote: > On Tue, Feb 7, 2023 at 3:29 PM Andy Shevchenko > <andriy.shevchenko@linux.intel.com> wrote: > > > From: Arnd Bergmann <arnd@arndb.de> > > > > Almost all gpio drivers include linux/gpio/driver.h, and other > > files should not rely on includes from this header. > > > > Remove the indirect include from here and include the correct > > headers directly from where they are used. ... > Make sure you push this to the kernel.org build servers (zeroday builds), Of course, that is the purpose of publishing this before the release (so we will have some TODO list that eventually this can be applied for v6.4-rc1). > I think this patch needs to hit some more files, in my tests with a similar > patch at least these: Right. I forgot to also incorporate your stuff into this series. Do you have anything that I can take as is?
On Wed, Feb 08, 2023 at 12:55:06AM +0200, Andy Shevchenko wrote: > On Tue, Feb 07, 2023 at 03:55:23PM +0100, Linus Walleij wrote: > > On Tue, Feb 7, 2023 at 3:29 PM Andy Shevchenko > > <andriy.shevchenko@linux.intel.com> wrote: > > > > > From: Arnd Bergmann <arnd@arndb.de> > > > > > > Almost all gpio drivers include linux/gpio/driver.h, and other > > > files should not rely on includes from this header. > > > > > > Remove the indirect include from here and include the correct > > > headers directly from where they are used. > > ... > > > Make sure you push this to the kernel.org build servers (zeroday builds), > > Of course, that is the purpose of publishing this before the release (so we > will have some TODO list that eventually this can be applied for v6.4-rc1). > > > I think this patch needs to hit some more files, in my tests with a similar > > patch at least these: > > Right. I forgot to also incorporate your stuff into this series. > Do you have anything that I can take as is? I'm going to incorporate the following: gpio: Make the legacy <linux/gpio.h> consumer-only ARM: s3c24xx: Use the right include ARM: orion/gpio: Use the right include hte: tegra-194: Use proper includes pcmcia: pxa2xx_viper: Include dependency
On Wed, Feb 8, 2023 at 3:51 PM Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > On Wed, Feb 08, 2023 at 12:55:06AM +0200, Andy Shevchenko wrote: > > On Tue, Feb 07, 2023 at 03:55:23PM +0100, Linus Walleij wrote: > > > On Tue, Feb 7, 2023 at 3:29 PM Andy Shevchenko > > > <andriy.shevchenko@linux.intel.com> wrote: > > > > > > > From: Arnd Bergmann <arnd@arndb.de> > > > > > > > > Almost all gpio drivers include linux/gpio/driver.h, and other > > > > files should not rely on includes from this header. > > > > > > > > Remove the indirect include from here and include the correct > > > > headers directly from where they are used. > > > > ... > > > > > Make sure you push this to the kernel.org build servers (zeroday builds), > > > > Of course, that is the purpose of publishing this before the release (so we > > will have some TODO list that eventually this can be applied for v6.4-rc1). > > > > > I think this patch needs to hit some more files, in my tests with a similar > > > patch at least these: > > > > Right. I forgot to also incorporate your stuff into this series. > > Do you have anything that I can take as is? > > I'm going to incorporate the following: > > gpio: Make the legacy <linux/gpio.h> consumer-only > ARM: s3c24xx: Use the right include > ARM: orion/gpio: Use the right include > hte: tegra-194: Use proper includes > pcmcia: pxa2xx_viper: Include dependency Excellent, thanks. I don't care about being credited, just want things to go smooth so you run into less snags. Yours, Linus Walleij
diff --git a/arch/arm/mach-omap1/irq.c b/arch/arm/mach-omap1/irq.c index 9ccc784fd614..bfc7ab010ae2 100644 --- a/arch/arm/mach-omap1/irq.c +++ b/arch/arm/mach-omap1/irq.c @@ -41,6 +41,7 @@ #include <linux/sched.h> #include <linux/interrupt.h> #include <linux/io.h> +#include <linux/irqdomain.h> #include <asm/irq.h> #include <asm/exception.h> diff --git a/arch/arm/mach-orion5x/board-rd88f5182.c b/arch/arm/mach-orion5x/board-rd88f5182.c index 596601367989..1c14e49a90a6 100644 --- a/arch/arm/mach-orion5x/board-rd88f5182.c +++ b/arch/arm/mach-orion5x/board-rd88f5182.c @@ -9,6 +9,7 @@ #include <linux/gpio.h> #include <linux/kernel.h> #include <linux/init.h> +#include <linux/of.h> #include <linux/platform_device.h> #include <linux/pci.h> #include <linux/irq.h> diff --git a/arch/arm/mach-s3c/s3c64xx.c b/arch/arm/mach-s3c/s3c64xx.c index e97bd59083a8..48fd5b0a3927 100644 --- a/arch/arm/mach-s3c/s3c64xx.c +++ b/arch/arm/mach-s3c/s3c64xx.c @@ -21,6 +21,7 @@ #include <linux/ioport.h> #include <linux/serial_core.h> #include <linux/serial_s3c.h> +#include <linux/of.h> #include <linux/platform_device.h> #include <linux/reboot.h> #include <linux/io.h> diff --git a/arch/arm/mach-sa1100/assabet.c b/arch/arm/mach-sa1100/assabet.c index 2eba112f2ad8..d000c678b439 100644 --- a/arch/arm/mach-sa1100/assabet.c +++ b/arch/arm/mach-sa1100/assabet.c @@ -10,6 +10,7 @@ #include <linux/kernel.h> #include <linux/module.h> #include <linux/errno.h> +#include <linux/gpio/driver.h> #include <linux/gpio/gpio-reg.h> #include <linux/gpio/machine.h> #include <linux/gpio_keys.h> diff --git a/arch/arm/plat-orion/gpio.c b/arch/arm/plat-orion/gpio.c index 3ef9ecdd6343..4946d8066f6a 100644 --- a/arch/arm/plat-orion/gpio.c +++ b/arch/arm/plat-orion/gpio.c @@ -19,6 +19,7 @@ #include <linux/bitops.h> #include <linux/io.h> #include <linux/gpio.h> +#include <linux/gpio/driver.h> #include <linux/leds.h> #include <linux/of.h> #include <linux/of_irq.h> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.c index 9540a05247c2..89c8829528c2 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.c @@ -1,6 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 #include <net/mac80211.h> #include <linux/bcma/bcma_driver_chipcommon.h> +#include <linux/gpio.h> #include <linux/gpio/driver.h> #include <linux/gpio/machine.h> #include <linux/gpio/consumer.h> diff --git a/include/linux/gpio.h b/include/linux/gpio.h index a1271526e489..84bb49939d6e 100644 --- a/include/linux/gpio.h +++ b/include/linux/gpio.h @@ -54,9 +54,7 @@ struct gpio { }; #ifdef CONFIG_GPIOLIB -#include <linux/compiler.h> #include <linux/gpio/consumer.h> -#include <linux/gpio/driver.h> /* * "valid" GPIO numbers are nonnegative and may be passed to diff --git a/include/linux/mfd/ucb1x00.h b/include/linux/mfd/ucb1x00.h index 43bcf35afe27..ede237384723 100644 --- a/include/linux/mfd/ucb1x00.h +++ b/include/linux/mfd/ucb1x00.h @@ -10,6 +10,7 @@ #include <linux/device.h> #include <linux/mfd/mcp.h> #include <linux/gpio.h> +#include <linux/gpio/driver.h> #include <linux/mutex.h> #define UCB_IO_DATA 0x00