Message ID | 20230207142952.51844-1-andriy.shevchenko@linux.intel.com |
---|---|
Headers | show |
Series | gpiolib cleanups | expand |
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 04:29:44PM +0200, Andy Shevchenko wrote: > @@ -1010,14 +1009,21 @@ static int ads7846_setup_pendown(struct spi_device *spi, > } > > ts->gpio_pendown = pdata->gpio_pendown; > - > - if (pdata->gpio_pendown_debounce) > - gpio_set_debounce(pdata->gpio_pendown, > - pdata->gpio_pendown_debounce); Can we please change only this to: gpiod_set_debounce(gpio_to_desc(pdata->gpio_pendown), pdata->gpio_pendown_debounce); and not change anything else (i.e. drop the changes below)? > } else { > - dev_err(&spi->dev, "no get_pendown_state nor gpio_pendown?\n"); > - return -EINVAL; > + struct gpio_desc *desc; > + > + desc = devm_gpiod_get(&spi->dev, "pendown", GPIOD_IN); > + if (IS_ERR(desc)) { > + dev_err(&spi->dev, "no get_pendown_state nor gpio_pendown?\n"); > + return PTR_ERR(desc); > + } > + gpiod_set_consumer_name(desc, "ads7846_pendown"); > + > + ts->gpio_pendown = desc_to_gpio(desc); > } > + if (pdata->gpio_pendown_debounce) > + gpiod_set_debounce(gpio_to_desc(ts->gpio_pendown), > + pdata->gpio_pendown_debounce); > > return 0; Thanks.
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 Tue, Feb 07, 2023 at 01:32:01PM -0800, Dmitry Torokhov wrote: > On Tue, Feb 07, 2023 at 04:29:44PM +0200, Andy Shevchenko wrote: > > @@ -1010,14 +1009,21 @@ static int ads7846_setup_pendown(struct spi_device *spi, > > } > > > > ts->gpio_pendown = pdata->gpio_pendown; > > - > > - if (pdata->gpio_pendown_debounce) > > - gpio_set_debounce(pdata->gpio_pendown, > > - pdata->gpio_pendown_debounce); > > Can we please change only this to: > > gpiod_set_debounce(gpio_to_desc(pdata->gpio_pendown), > pdata->gpio_pendown_debounce); > > and not change anything else (i.e. drop the changes below)? Probably. I can try rollback this. > > } else { > > - dev_err(&spi->dev, "no get_pendown_state nor gpio_pendown?\n"); > > - return -EINVAL; > > + struct gpio_desc *desc; > > + > > + desc = devm_gpiod_get(&spi->dev, "pendown", GPIOD_IN); > > + if (IS_ERR(desc)) { > > + dev_err(&spi->dev, "no get_pendown_state nor gpio_pendown?\n"); > > + return PTR_ERR(desc); > > + } > > + gpiod_set_consumer_name(desc, "ads7846_pendown"); > > + > > + ts->gpio_pendown = desc_to_gpio(desc); > > } > > + if (pdata->gpio_pendown_debounce) > > + gpiod_set_debounce(gpio_to_desc(ts->gpio_pendown), > > + pdata->gpio_pendown_debounce); > > > > return 0;
Hi Andy, Thanks for your patch! On Tue, Feb 7, 2023 at 3:29 PM Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > Do not imply that some of the generic headers may be always included. > Instead, include explicitly what we are direct user of. That applies only to the addition of #include <linux/slab.h>... Please also describe the other changes. > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > drivers/gpio/gpio-aggregator.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpio/gpio-aggregator.c b/drivers/gpio/gpio-aggregator.c > index 6d17d262ad91..20a686f12df7 100644 > --- a/drivers/gpio/gpio-aggregator.c > +++ b/drivers/gpio/gpio-aggregator.c > @@ -10,19 +10,20 @@ > #include <linux/bitmap.h> > #include <linux/bitops.h> > #include <linux/ctype.h> > -#include <linux/gpio.h> > -#include <linux/gpio/consumer.h> > -#include <linux/gpio/driver.h> > -#include <linux/gpio/machine.h> > #include <linux/idr.h> > #include <linux/kernel.h> > #include <linux/module.h> > #include <linux/mutex.h> > #include <linux/overflow.h> > #include <linux/platform_device.h> > +#include <linux/slab.h> > #include <linux/spinlock.h> > #include <linux/string.h> > > +#include <linux/gpio/consumer.h> > +#include <linux/gpio/driver.h> > +#include <linux/gpio/machine.h> > + > #define AGGREGATOR_MAX_GPIOS 512 For the actual changes: Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
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