[v1] gpio: Avoid kernel.h inclusion where it's possible
diff mbox series

Message ID 20200204190733.56783-1-andriy.shevchenko@linux.intel.com
State New
Headers show
Series
  • [v1] gpio: Avoid kernel.h inclusion where it's possible
Related show

Commit Message

Andy Shevchenko Feb. 4, 2020, 7:07 p.m. UTC
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(-)

Comments

Bartosz Golaszewski Feb. 5, 2020, 9:34 a.m. UTC | #1
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
>
Andy Shevchenko Feb. 5, 2020, 9:50 a.m. UTC | #2
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!

Patch
diff mbox series

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)