All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1] gpio: Avoid kernel.h inclusion where it's possible
@ 2020-02-04 19:07 Andy Shevchenko
  2020-02-05  9:34 ` Bartosz Golaszewski
  0 siblings, 1 reply; 3+ messages in thread
From: Andy Shevchenko @ 2020-02-04 19:07 UTC (permalink / raw)
  To: Bartosz Golaszewski, Linus Walleij, linux-gpio, Rob Herring,
	Frank Rowand, devicetree, Arnd Bergmann
  Cc: Andy Shevchenko

Inclusion of kernel.h increases the mess with the header dependencies.
Avoid kernel.h inclusion where it's possible.

Besides that, clean up a bit other inclusions inside GPIO subsystem headers.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 include/asm-generic/gpio.h    | 4 ++--
 include/linux/gpio.h          | 2 --
 include/linux/gpio/consumer.h | 5 ++++-
 include/linux/of_gpio.h       | 9 ++++++---
 4 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/include/asm-generic/gpio.h b/include/asm-generic/gpio.h
index 19eadac415c4..aea9aee1f3e9 100644
--- a/include/asm-generic/gpio.h
+++ b/include/asm-generic/gpio.h
@@ -2,10 +2,8 @@
 #ifndef _ASM_GENERIC_GPIO_H
 #define _ASM_GENERIC_GPIO_H
 
-#include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/errno.h>
-#include <linux/of.h>
 
 #ifdef CONFIG_GPIOLIB
 
@@ -140,6 +138,8 @@ static inline void gpio_unexport(unsigned gpio)
 
 #else	/* !CONFIG_GPIOLIB */
 
+#include <linux/kernel.h>
+
 static inline bool gpio_is_valid(int number)
 {
 	/* only non-negative numbers are valid */
diff --git a/include/linux/gpio.h b/include/linux/gpio.h
index 2157717c2136..008ad3ee56b7 100644
--- a/include/linux/gpio.h
+++ b/include/linux/gpio.h
@@ -102,11 +102,9 @@ void devm_gpio_free(struct device *dev, unsigned int gpio);
 #include <linux/kernel.h>
 #include <linux/types.h>
 #include <linux/bug.h>
-#include <linux/pinctrl/pinctrl.h>
 
 struct device;
 struct gpio_chip;
-struct pinctrl_dev;
 
 static inline bool gpio_is_valid(int number)
 {
diff --git a/include/linux/gpio/consumer.h b/include/linux/gpio/consumer.h
index bf2d017dd7b7..0a72fccf60ff 100644
--- a/include/linux/gpio/consumer.h
+++ b/include/linux/gpio/consumer.h
@@ -2,9 +2,10 @@
 #ifndef __LINUX_GPIO_CONSUMER_H
 #define __LINUX_GPIO_CONSUMER_H
 
+#include <linux/bits.h>
 #include <linux/bug.h>
+#include <linux/compiler_types.h>
 #include <linux/err.h>
-#include <linux/kernel.h>
 
 struct device;
 
@@ -189,6 +190,8 @@ struct gpio_desc *devm_fwnode_gpiod_get_index(struct device *dev,
 
 #else /* CONFIG_GPIOLIB */
 
+#include <linux/kernel.h>
+
 static inline int gpiod_count(struct device *dev, const char *con_id)
 {
 	return 0;
diff --git a/include/linux/of_gpio.h b/include/linux/of_gpio.h
index 16967390a3fe..f821095218b0 100644
--- a/include/linux/of_gpio.h
+++ b/include/linux/of_gpio.h
@@ -11,9 +11,8 @@
 #define __LINUX_OF_GPIO_H
 
 #include <linux/compiler.h>
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/gpio.h>
+#include <linux/gpio/driver.h>
+#include <linux/gpio.h>		/* FIXME: Shouldn't be here */
 #include <linux/of.h>
 
 struct device_node;
@@ -34,6 +33,8 @@ enum of_gpio_flags {
 
 #ifdef CONFIG_OF_GPIO
 
+#include <linux/kernel.h>
+
 /*
  * OF GPIO chip for memory mapped banks
  */
@@ -63,6 +64,8 @@ extern void of_mm_gpiochip_remove(struct of_mm_gpio_chip *mm_gc);
 
 #else /* CONFIG_OF_GPIO */
 
+#include <linux/errno.h>
+
 /* Drivers may not strictly depend on the GPIO support, so let them link. */
 static inline int of_get_named_gpio_flags(struct device_node *np,
 		const char *list_name, int index, enum of_gpio_flags *flags)
-- 
2.24.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v1] gpio: Avoid kernel.h inclusion where it's possible
  2020-02-04 19:07 [PATCH v1] gpio: Avoid kernel.h inclusion where it's possible Andy Shevchenko
@ 2020-02-05  9:34 ` Bartosz Golaszewski
  2020-02-05  9:50   ` Andy Shevchenko
  0 siblings, 1 reply; 3+ messages in thread
From: Bartosz Golaszewski @ 2020-02-05  9:34 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Linus Walleij, linux-gpio, Rob Herring, Frank Rowand,
	linux-devicetree, Arnd Bergmann

wt., 4 lut 2020 o 20:07 Andy Shevchenko
<andriy.shevchenko@linux.intel.com> napisał(a):
>
> Inclusion of kernel.h increases the mess with the header dependencies.
> Avoid kernel.h inclusion where it's possible.
>
> Besides that, clean up a bit other inclusions inside GPIO subsystem headers.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
>  include/asm-generic/gpio.h    | 4 ++--
>  include/linux/gpio.h          | 2 --
>  include/linux/gpio/consumer.h | 5 ++++-
>  include/linux/of_gpio.h       | 9 ++++++---
>  4 files changed, 12 insertions(+), 8 deletions(-)
>
> diff --git a/include/asm-generic/gpio.h b/include/asm-generic/gpio.h
> index 19eadac415c4..aea9aee1f3e9 100644
> --- a/include/asm-generic/gpio.h
> +++ b/include/asm-generic/gpio.h
> @@ -2,10 +2,8 @@
>  #ifndef _ASM_GENERIC_GPIO_H
>  #define _ASM_GENERIC_GPIO_H
>
> -#include <linux/kernel.h>
>  #include <linux/types.h>
>  #include <linux/errno.h>
> -#include <linux/of.h>
>
>  #ifdef CONFIG_GPIOLIB
>
> @@ -140,6 +138,8 @@ static inline void gpio_unexport(unsigned gpio)
>
>  #else  /* !CONFIG_GPIOLIB */
>
> +#include <linux/kernel.h>
> +
>  static inline bool gpio_is_valid(int number)
>  {
>         /* only non-negative numbers are valid */
> diff --git a/include/linux/gpio.h b/include/linux/gpio.h
> index 2157717c2136..008ad3ee56b7 100644
> --- a/include/linux/gpio.h
> +++ b/include/linux/gpio.h
> @@ -102,11 +102,9 @@ void devm_gpio_free(struct device *dev, unsigned int gpio);
>  #include <linux/kernel.h>
>  #include <linux/types.h>
>  #include <linux/bug.h>
> -#include <linux/pinctrl/pinctrl.h>
>
>  struct device;
>  struct gpio_chip;
> -struct pinctrl_dev;

If this forward declaration is removed because it's no longer needed
after removing the pinctrl include, then please mention it in the
commit message. If it's unrelated then please put it in a different
patch.

Bartosz

>
>  static inline bool gpio_is_valid(int number)
>  {
> diff --git a/include/linux/gpio/consumer.h b/include/linux/gpio/consumer.h
> index bf2d017dd7b7..0a72fccf60ff 100644
> --- a/include/linux/gpio/consumer.h
> +++ b/include/linux/gpio/consumer.h
> @@ -2,9 +2,10 @@
>  #ifndef __LINUX_GPIO_CONSUMER_H
>  #define __LINUX_GPIO_CONSUMER_H
>
> +#include <linux/bits.h>
>  #include <linux/bug.h>
> +#include <linux/compiler_types.h>
>  #include <linux/err.h>
> -#include <linux/kernel.h>
>
>  struct device;
>
> @@ -189,6 +190,8 @@ struct gpio_desc *devm_fwnode_gpiod_get_index(struct device *dev,
>
>  #else /* CONFIG_GPIOLIB */
>
> +#include <linux/kernel.h>
> +
>  static inline int gpiod_count(struct device *dev, const char *con_id)
>  {
>         return 0;
> diff --git a/include/linux/of_gpio.h b/include/linux/of_gpio.h
> index 16967390a3fe..f821095218b0 100644
> --- a/include/linux/of_gpio.h
> +++ b/include/linux/of_gpio.h
> @@ -11,9 +11,8 @@
>  #define __LINUX_OF_GPIO_H
>
>  #include <linux/compiler.h>
> -#include <linux/kernel.h>
> -#include <linux/errno.h>
> -#include <linux/gpio.h>
> +#include <linux/gpio/driver.h>
> +#include <linux/gpio.h>                /* FIXME: Shouldn't be here */
>  #include <linux/of.h>
>
>  struct device_node;
> @@ -34,6 +33,8 @@ enum of_gpio_flags {
>
>  #ifdef CONFIG_OF_GPIO
>
> +#include <linux/kernel.h>
> +
>  /*
>   * OF GPIO chip for memory mapped banks
>   */
> @@ -63,6 +64,8 @@ extern void of_mm_gpiochip_remove(struct of_mm_gpio_chip *mm_gc);
>
>  #else /* CONFIG_OF_GPIO */
>
> +#include <linux/errno.h>
> +
>  /* Drivers may not strictly depend on the GPIO support, so let them link. */
>  static inline int of_get_named_gpio_flags(struct device_node *np,
>                 const char *list_name, int index, enum of_gpio_flags *flags)
> --
> 2.24.1
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v1] gpio: Avoid kernel.h inclusion where it's possible
  2020-02-05  9:34 ` Bartosz Golaszewski
@ 2020-02-05  9:50   ` Andy Shevchenko
  0 siblings, 0 replies; 3+ messages in thread
From: Andy Shevchenko @ 2020-02-05  9:50 UTC (permalink / raw)
  To: Bartosz Golaszewski
  Cc: Linus Walleij, linux-gpio, Rob Herring, Frank Rowand,
	linux-devicetree, Arnd Bergmann

On Wed, Feb 05, 2020 at 10:34:06AM +0100, Bartosz Golaszewski wrote:
> wt., 4 lut 2020 o 20:07 Andy Shevchenko
> <andriy.shevchenko@linux.intel.com> napisał(a):
> >
> > Inclusion of kernel.h increases the mess with the header dependencies.
> > Avoid kernel.h inclusion where it's possible.
> >
> > Besides that, clean up a bit other inclusions inside GPIO subsystem headers.

> > -struct pinctrl_dev;
> 
> If this forward declaration is removed because it's no longer needed
> after removing the pinctrl include, then please mention it in the
> commit message. If it's unrelated then please put it in a different
> patch.

Will do, thanks for review!

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-02-05  9:50 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-04 19:07 [PATCH v1] gpio: Avoid kernel.h inclusion where it's possible Andy Shevchenko
2020-02-05  9:34 ` Bartosz Golaszewski
2020-02-05  9:50   ` Andy Shevchenko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.