[v2,6/7] gpiolib: split linux/gpio/driver.h out of linux/gpio.h
Commit Message
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>
---
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 +
8 files changed, 7 insertions(+), 2 deletions(-)
Comments
On Fri, Jan 27, 2023 at 11:12 AM Arnd Bergmann <arnd@kernel.org> 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>
As mentioned on v1 you will need two additional patches to
avoid build errors from the bots, perhaps Bartosz can cherry-pick
them?
https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git/commit/?h=gpiochip-no-driver-h&id=73ca8058a7b2075c993040bdc92b6a82f57d4316
https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git/commit/?h=gpiochip-no-driver-h&id=89f4f9cc70c686303679e57bdc3ac86507979fe3
(Maybe the Viper cf adapter is deleted in the PXA boardfile removal so
it's not an issue. The HTE file needs patching through.)
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Yours,
Linus Walleij
On Fri, Jan 27, 2023, at 14:39, Linus Walleij wrote:
> On Fri, Jan 27, 2023 at 11:12 AM Arnd Bergmann <arnd@kernel.org> 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>
>
> As mentioned on v1 you will need two additional patches to
> avoid build errors from the bots, perhaps Bartosz can cherry-pick
> them?
Yes, that would be ideal.
> https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git/commit/?h=gpiochip-no-driver-h&id=73ca8058a7b2075c993040bdc92b6a82f57d4316
> https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git/commit/?h=gpiochip-no-driver-h&id=89f4f9cc70c686303679e57bdc3ac86507979fe3
>
> (Maybe the Viper cf adapter is deleted in the PXA boardfile removal so
> it's not an issue. The HTE file needs patching through.)
>
> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Thanks!
Indeed, the viper support is gone in linux-next, which is why that
change was gone from my series after rebasing. I have the same
HTE file change in my tree that you have, but misclassified it
as an existing bug rather than one caused by my patch. The maintainer
said they would apply my patch directly, but it has not shown
up in linux-next yet.
I agree that for both patches the best way is if Bartosz
applies your version before my series.
Arnd
[1] https://lore.kernel.org/all/38f2d681-80a8-dc97-e5ed-4886e5e3bf7c@nvidia.com/
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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>
@@ -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
@@ -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