diff mbox series

[v2,36/36] pinctrl: Clean up headers

Message ID 20221010201453.77401-37-andriy.shevchenko@linux.intel.com
State Accepted
Commit e5530adc17a79f2a93e8b35e0ce673fc33f5f663
Headers show
Series pinctrl: Clean up and add missed headers | expand

Commit Message

Andy Shevchenko Oct. 10, 2022, 8:14 p.m. UTC
There is a few things done:
- include only the headers we are direct user of
- when pointer is in use, provide a forward declaration
- add missed headers
- group generic headers and subsystem headers
- sort each group alphabetically

While at it, fix some awkward indentations.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/pinctrl/core.c                  | 19 ++++++++-------
 drivers/pinctrl/core.h                  | 12 +++++++++-
 drivers/pinctrl/devicetree.h            |  6 +++++
 drivers/pinctrl/pinconf.h               | 10 ++++++++
 drivers/pinctrl/pinctrl-utils.h         |  5 ++++
 drivers/pinctrl/pinmux.c                | 17 ++++++++------
 drivers/pinctrl/pinmux.h                | 11 +++++++++
 include/linux/pinctrl/consumer.h        | 31 +++++++++++--------------
 include/linux/pinctrl/devinfo.h         |  6 +++--
 include/linux/pinctrl/machine.h         |  8 ++++---
 include/linux/pinctrl/pinconf-generic.h | 23 ++++++++++--------
 include/linux/pinctrl/pinctrl.h         | 18 +++++++-------
 include/linux/pinctrl/pinmux.h          |  5 ++--
 13 files changed, 110 insertions(+), 61 deletions(-)

Comments

Basavaraj Natikar Oct. 11, 2022, 7:30 a.m. UTC | #1
On 10/11/2022 1:44 AM, Andy Shevchenko wrote:
> There is a few things done:
> - include only the headers we are direct user of
> - when pointer is in use, provide a forward declaration
> - add missed headers
> - group generic headers and subsystem headers
> - sort each group alphabetically
>
> While at it, fix some awkward indentations.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
>  drivers/pinctrl/core.c                  | 19 ++++++++-------
>  drivers/pinctrl/core.h                  | 12 +++++++++-
>  drivers/pinctrl/devicetree.h            |  6 +++++
>  drivers/pinctrl/pinconf.h               | 10 ++++++++
>  drivers/pinctrl/pinctrl-utils.h         |  5 ++++
>  drivers/pinctrl/pinmux.c                | 17 ++++++++------
>  drivers/pinctrl/pinmux.h                | 11 +++++++++
>  include/linux/pinctrl/consumer.h        | 31 +++++++++++--------------
>  include/linux/pinctrl/devinfo.h         |  6 +++--
>  include/linux/pinctrl/machine.h         |  8 ++++---
>  include/linux/pinctrl/pinconf-generic.h | 23 ++++++++++--------
>  include/linux/pinctrl/pinctrl.h         | 18 +++++++-------
>  include/linux/pinctrl/pinmux.h          |  5 ++--
>  13 files changed, 110 insertions(+), 61 deletions(-)
>
> diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c
> index 9e57f4c62e60..655f9502e73f 100644
> --- a/drivers/pinctrl/core.c
> +++ b/drivers/pinctrl/core.c
> @@ -12,19 +12,21 @@
>   */
>  #define pr_fmt(fmt) "pinctrl core: " fmt
>  
> -#include <linux/kernel.h>
> -#include <linux/kref.h>
> -#include <linux/export.h>
> -#include <linux/init.h>
> +#include <linux/debugfs.h>
>  #include <linux/device.h>
> -#include <linux/slab.h>
>  #include <linux/err.h>
> +#include <linux/export.h>
> +#include <linux/init.h>
> +#include <linux/kernel.h>
> +#include <linux/kref.h>
>  #include <linux/list.h>
> -#include <linux/debugfs.h>
>  #include <linux/seq_file.h>
> +#include <linux/slab.h>
> +
>  #include <linux/pinctrl/consumer.h>
> -#include <linux/pinctrl/pinctrl.h>
> +#include <linux/pinctrl/devinfo.h>
>  #include <linux/pinctrl/machine.h>
> +#include <linux/pinctrl/pinctrl.h>
>  
>  #ifdef CONFIG_GPIOLIB
>  #include "../gpio/gpiolib.h"
> @@ -33,9 +35,8 @@
>  
>  #include "core.h"
>  #include "devicetree.h"
> -#include "pinmux.h"
>  #include "pinconf.h"
> -
> +#include "pinmux.h"
>  
>  static bool pinctrl_dummy_state;
>  
> diff --git a/drivers/pinctrl/core.h b/drivers/pinctrl/core.h
> index 840103c40c14..4d0bdb9fb99b 100644
> --- a/drivers/pinctrl/core.h
> +++ b/drivers/pinctrl/core.h
> @@ -9,12 +9,22 @@
>   */
>  
>  #include <linux/kref.h>
> +#include <linux/list.h>
>  #include <linux/mutex.h>
>  #include <linux/radix-tree.h>
> -#include <linux/pinctrl/pinconf.h>

Removing pinconf.h from the core.h may cause build failure in other files
because where-ever core.h is included to use “struct pinconf_ops”, there
is a need to include pinconf.h.

With that fixed,

Reviewed-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com>

Thanks,
--
Basavaraj

> +#include <linux/types.h>
> +
>  #include <linux/pinctrl/machine.h>
>  
> +struct dentry;
> +struct device;
> +struct device_node;
> +struct module;
> +
> +struct pinctrl;
> +struct pinctrl_desc;
>  struct pinctrl_gpio_range;
> +struct pinctrl_state;
>  
>  /**
>   * struct pinctrl_dev - pin control class device
> diff --git a/drivers/pinctrl/devicetree.h b/drivers/pinctrl/devicetree.h
> index efa80779de4f..def76aba99d1 100644
> --- a/drivers/pinctrl/devicetree.h
> +++ b/drivers/pinctrl/devicetree.h
> @@ -5,8 +5,14 @@
>   * Copyright (C) 2012 NVIDIA CORPORATION. All rights reserved.
>   */
>  
> +#include <linux/errno.h>
> +
> +struct device_node;
>  struct of_phandle_args;
>  
> +struct pinctrl;
> +struct pinctrl_dev;
> +
>  #ifdef CONFIG_OF
>  
>  void pinctrl_dt_free_maps(struct pinctrl *p);
> diff --git a/drivers/pinctrl/pinconf.h b/drivers/pinctrl/pinconf.h
> index be7311373299..694bfc9961fa 100644
> --- a/drivers/pinctrl/pinconf.h
> +++ b/drivers/pinctrl/pinconf.h
> @@ -10,6 +10,16 @@
>   * Author: Linus Walleij <linus.walleij@linaro.org>
>   */
>  
> +#include <linux/errno.h>
> +
> +struct dentry;
> +struct device_node;
> +struct seq_file;
> +
> +struct pinctrl_dev;
> +struct pinctrl_map;
> +struct pinctrl_setting;
> +
>  #ifdef CONFIG_PINCONF
>  
>  int pinconf_check_ops(struct pinctrl_dev *pctldev);
> diff --git a/drivers/pinctrl/pinctrl-utils.h b/drivers/pinctrl/pinctrl-utils.h
> index cec407a8cc4e..4108ee2dd6d0 100644
> --- a/drivers/pinctrl/pinctrl-utils.h
> +++ b/drivers/pinctrl/pinctrl-utils.h
> @@ -9,6 +9,11 @@
>  #ifndef __PINCTRL_UTILS_H__
>  #define __PINCTRL_UTILS_H__
>  
> +#include <linux/pinctrl/machine.h>
> +
> +struct pinctrl_dev;
> +struct pinctrl_map;
> +
>  int pinctrl_utils_reserve_map(struct pinctrl_dev *pctldev,
>  		struct pinctrl_map **map, unsigned *reserved_maps,
>  		unsigned *num_maps, unsigned reserve);
> diff --git a/drivers/pinctrl/pinmux.c b/drivers/pinctrl/pinmux.c
> index f94d43b082d9..6bd7ac37a0e0 100644
> --- a/drivers/pinctrl/pinmux.c
> +++ b/drivers/pinctrl/pinmux.c
> @@ -13,19 +13,22 @@
>  #define pr_fmt(fmt) "pinmux core: " fmt
>  
>  #include <linux/ctype.h>
> -#include <linux/kernel.h>
> -#include <linux/module.h>
> -#include <linux/init.h>
> +#include <linux/debugfs.h>
>  #include <linux/device.h>
> -#include <linux/slab.h>
> -#include <linux/radix-tree.h>
>  #include <linux/err.h>
> +#include <linux/init.h>
> +#include <linux/kernel.h>
>  #include <linux/list.h>
> -#include <linux/string.h>
> -#include <linux/debugfs.h>
> +#include <linux/module.h>
> +#include <linux/radix-tree.h>
>  #include <linux/seq_file.h>
> +#include <linux/slab.h>
> +#include <linux/string.h>
> +
>  #include <linux/pinctrl/machine.h>
> +#include <linux/pinctrl/pinctrl.h>
>  #include <linux/pinctrl/pinmux.h>
> +
>  #include "core.h"
>  #include "pinmux.h"
>  
> diff --git a/drivers/pinctrl/pinmux.h b/drivers/pinctrl/pinmux.h
> index 72fcf03eaa43..ea6f99c24aa5 100644
> --- a/drivers/pinctrl/pinmux.h
> +++ b/drivers/pinctrl/pinmux.h
> @@ -9,6 +9,17 @@
>   *
>   * Author: Linus Walleij <linus.walleij@linaro.org>
>   */
> +
> +#include <linux/types.h>
> +
> +struct dentry;
> +struct seq_file;
> +
> +struct pinctrl_dev;
> +struct pinctrl_gpio_range;
> +struct pinctrl_map;
> +struct pinctrl_setting;
> +
>  #ifdef CONFIG_PINMUX
>  
>  int pinmux_check_ops(struct pinctrl_dev *pctldev);
> diff --git a/include/linux/pinctrl/consumer.h b/include/linux/pinctrl/consumer.h
> index 019fecd75d0c..4729d54e8995 100644
> --- a/include/linux/pinctrl/consumer.h
> +++ b/include/linux/pinctrl/consumer.h
> @@ -12,14 +12,15 @@
>  #define __LINUX_PINCTRL_CONSUMER_H
>  
>  #include <linux/err.h>
> -#include <linux/list.h>
> -#include <linux/seq_file.h>
> +#include <linux/types.h>
> +
>  #include <linux/pinctrl/pinctrl-state.h>
>  
> +struct device;
> +
>  /* This struct is private to the core and should be regarded as a cookie */
>  struct pinctrl;
>  struct pinctrl_state;
> -struct device;
>  
>  #ifdef CONFIG_PINCTRL
>  
> @@ -33,9 +34,8 @@ extern int pinctrl_gpio_set_config(unsigned gpio, unsigned long config);
>  
>  extern struct pinctrl * __must_check pinctrl_get(struct device *dev);
>  extern void pinctrl_put(struct pinctrl *p);
> -extern struct pinctrl_state * __must_check pinctrl_lookup_state(
> -							struct pinctrl *p,
> -							const char *name);
> +extern struct pinctrl_state * __must_check pinctrl_lookup_state(struct pinctrl *p,
> +								const char *name);
>  extern int pinctrl_select_state(struct pinctrl *p, struct pinctrl_state *s);
>  
>  extern struct pinctrl * __must_check devm_pinctrl_get(struct device *dev);
> @@ -101,9 +101,8 @@ static inline void pinctrl_put(struct pinctrl *p)
>  {
>  }
>  
> -static inline struct pinctrl_state * __must_check pinctrl_lookup_state(
> -							struct pinctrl *p,
> -							const char *name)
> +static inline struct pinctrl_state * __must_check pinctrl_lookup_state(struct pinctrl *p,
> +								       const char *name)
>  {
>  	return NULL;
>  }
> @@ -145,8 +144,8 @@ static inline int pinctrl_pm_select_idle_state(struct device *dev)
>  
>  #endif /* CONFIG_PINCTRL */
>  
> -static inline struct pinctrl * __must_check pinctrl_get_select(
> -					struct device *dev, const char *name)
> +static inline struct pinctrl * __must_check pinctrl_get_select(struct device *dev,
> +							       const char *name)
>  {
>  	struct pinctrl *p;
>  	struct pinctrl_state *s;
> @@ -171,14 +170,13 @@ static inline struct pinctrl * __must_check pinctrl_get_select(
>  	return p;
>  }
>  
> -static inline struct pinctrl * __must_check pinctrl_get_select_default(
> -					struct device *dev)
> +static inline struct pinctrl * __must_check pinctrl_get_select_default(struct device *dev)
>  {
>  	return pinctrl_get_select(dev, PINCTRL_STATE_DEFAULT);
>  }
>  
> -static inline struct pinctrl * __must_check devm_pinctrl_get_select(
> -					struct device *dev, const char *name)
> +static inline struct pinctrl * __must_check devm_pinctrl_get_select(struct device *dev,
> +								    const char *name)
>  {
>  	struct pinctrl *p;
>  	struct pinctrl_state *s;
> @@ -203,8 +201,7 @@ static inline struct pinctrl * __must_check devm_pinctrl_get_select(
>  	return p;
>  }
>  
> -static inline struct pinctrl * __must_check devm_pinctrl_get_select_default(
> -					struct device *dev)
> +static inline struct pinctrl * __must_check devm_pinctrl_get_select_default(struct device *dev)
>  {
>  	return devm_pinctrl_get_select(dev, PINCTRL_STATE_DEFAULT);
>  }
> diff --git a/include/linux/pinctrl/devinfo.h b/include/linux/pinctrl/devinfo.h
> index a48ff69acddd..9e8b559e1253 100644
> --- a/include/linux/pinctrl/devinfo.h
> +++ b/include/linux/pinctrl/devinfo.h
> @@ -14,11 +14,15 @@
>  #ifndef PINCTRL_DEVINFO_H
>  #define PINCTRL_DEVINFO_H
>  
> +struct device;
> +
>  #ifdef CONFIG_PINCTRL
>  
>  /* The device core acts as a consumer toward pinctrl */
>  #include <linux/pinctrl/consumer.h>
>  
> +struct pinctrl;
> +
>  /**
>   * struct dev_pin_info - pin state container for devices
>   * @p: pinctrl handle for the containing device
> @@ -42,8 +46,6 @@ extern int pinctrl_init_done(struct device *dev);
>  
>  #else
>  
> -struct device;
> -
>  /* Stubs if we're not using pinctrl */
>  
>  static inline int pinctrl_bind_pins(struct device *dev)
> diff --git a/include/linux/pinctrl/machine.h b/include/linux/pinctrl/machine.h
> index e987dc9fd2af..0639b36f43c5 100644
> --- a/include/linux/pinctrl/machine.h
> +++ b/include/linux/pinctrl/machine.h
> @@ -11,7 +11,7 @@
>  #ifndef __LINUX_PINCTRL_MACHINE_H
>  #define __LINUX_PINCTRL_MACHINE_H
>  
> -#include <linux/bug.h>
> +#include <linux/kernel.h>	/* ARRAY_SIZE() */
>  
>  #include <linux/pinctrl/pinctrl-state.h>
>  
> @@ -149,16 +149,18 @@ struct pinctrl_map {
>  #define PIN_MAP_CONFIGS_GROUP_HOG_DEFAULT(dev, grp, cfgs)		\
>  	PIN_MAP_CONFIGS_GROUP(dev, PINCTRL_STATE_DEFAULT, dev, grp, cfgs)
>  
> +struct pinctrl_map;
> +
>  #ifdef CONFIG_PINCTRL
>  
>  extern int pinctrl_register_mappings(const struct pinctrl_map *map,
> -				unsigned num_maps);
> +				     unsigned num_maps);
>  extern void pinctrl_unregister_mappings(const struct pinctrl_map *map);
>  extern void pinctrl_provide_dummies(void);
>  #else
>  
>  static inline int pinctrl_register_mappings(const struct pinctrl_map *map,
> -					   unsigned num_maps)
> +					    unsigned num_maps)
>  {
>  	return 0;
>  }
> diff --git a/include/linux/pinctrl/pinconf-generic.h b/include/linux/pinctrl/pinconf-generic.h
> index 2422211d6a5a..940fc4e9e17c 100644
> --- a/include/linux/pinctrl/pinconf-generic.h
> +++ b/include/linux/pinctrl/pinconf-generic.h
> @@ -11,9 +11,12 @@
>  #ifndef __LINUX_PINCTRL_PINCONF_GENERIC_H
>  #define __LINUX_PINCTRL_PINCONF_GENERIC_H
>  
> -#include <linux/device.h>
> +#include <linux/types.h>
> +
>  #include <linux/pinctrl/machine.h>
>  
> +struct device_node;
> +
>  struct pinctrl_dev;
>  struct pinctrl_map;
>  
> @@ -196,25 +199,25 @@ int pinconf_generic_dt_node_to_map(struct pinctrl_dev *pctldev,
>  void pinconf_generic_dt_free_map(struct pinctrl_dev *pctldev,
>  		struct pinctrl_map *map, unsigned num_maps);
>  
> -static inline int pinconf_generic_dt_node_to_map_group(
> -		struct pinctrl_dev *pctldev, struct device_node *np_config,
> -		struct pinctrl_map **map, unsigned *num_maps)
> +static inline int pinconf_generic_dt_node_to_map_group(struct pinctrl_dev *pctldev,
> +		struct device_node *np_config, struct pinctrl_map **map,
> +		unsigned *num_maps)
>  {
>  	return pinconf_generic_dt_node_to_map(pctldev, np_config, map, num_maps,
>  			PIN_MAP_TYPE_CONFIGS_GROUP);
>  }
>  
> -static inline int pinconf_generic_dt_node_to_map_pin(
> -		struct pinctrl_dev *pctldev, struct device_node *np_config,
> -		struct pinctrl_map **map, unsigned *num_maps)
> +static inline int pinconf_generic_dt_node_to_map_pin(struct pinctrl_dev *pctldev,
> +		struct device_node *np_config, struct pinctrl_map **map,
> +		unsigned *num_maps)
>  {
>  	return pinconf_generic_dt_node_to_map(pctldev, np_config, map, num_maps,
>  			PIN_MAP_TYPE_CONFIGS_PIN);
>  }
>  
> -static inline int pinconf_generic_dt_node_to_map_all(
> -		struct pinctrl_dev *pctldev, struct device_node *np_config,
> -		struct pinctrl_map **map, unsigned *num_maps)
> +static inline int pinconf_generic_dt_node_to_map_all(struct pinctrl_dev *pctldev,
> +		struct device_node *np_config, struct pinctrl_map **map,
> +		unsigned *num_maps)
>  {
>  	/*
>  	 * passing the type as PIN_MAP_TYPE_INVALID causes the underlying parser
> diff --git a/include/linux/pinctrl/pinctrl.h b/include/linux/pinctrl/pinctrl.h
> index 487117ccb1bc..31fe992412f0 100644
> --- a/include/linux/pinctrl/pinctrl.h
> +++ b/include/linux/pinctrl/pinctrl.h
> @@ -11,20 +11,20 @@
>  #ifndef __LINUX_PINCTRL_PINCTRL_H
>  #define __LINUX_PINCTRL_PINCTRL_H
>  
> -#include <linux/radix-tree.h>
> -#include <linux/list.h>
> -#include <linux/seq_file.h>
> -#include <linux/pinctrl/pinctrl-state.h>
> -#include <linux/pinctrl/devinfo.h>
> +#include <linux/types.h>
>  
>  struct device;
> +struct device_node;
> +struct gpio_chip;
> +struct module;
> +struct seq_file;
> +
> +struct pin_config_item;
> +struct pinconf_generic_params;
> +struct pinconf_ops;
>  struct pinctrl_dev;
>  struct pinctrl_map;
>  struct pinmux_ops;
> -struct pinconf_ops;
> -struct pin_config_item;
> -struct gpio_chip;
> -struct device_node;
>  
>  /**
>   * struct pingroup - provides information on pingroup
> diff --git a/include/linux/pinctrl/pinmux.h b/include/linux/pinctrl/pinmux.h
> index 9a647fa5c8f1..a7e370965c53 100644
> --- a/include/linux/pinctrl/pinmux.h
> +++ b/include/linux/pinctrl/pinmux.h
> @@ -11,11 +11,10 @@
>  #ifndef __LINUX_PINCTRL_PINMUX_H
>  #define __LINUX_PINCTRL_PINMUX_H
>  
> -#include <linux/list.h>
> -#include <linux/seq_file.h>
> -#include <linux/pinctrl/pinctrl.h>
> +#include <linux/types.h>
>  
>  struct pinctrl_dev;
> +struct pinctrl_gpio_range;
>  
>  /**
>   * struct pinmux_ops - pinmux operations, to be implemented by pin controller
Geert Uytterhoeven Oct. 11, 2022, 8:46 a.m. UTC | #2
On Tue, Oct 11, 2022 at 9:31 AM Basavaraj Natikar <bnatikar@amd.com> wrote:
> On 10/11/2022 1:44 AM, Andy Shevchenko wrote:
> > There is a few things done:
> > - include only the headers we are direct user of
> > - when pointer is in use, provide a forward declaration
> > - add missed headers
> > - group generic headers and subsystem headers
> > - sort each group alphabetically
> >
> > While at it, fix some awkward indentations.
> >
> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> > ---
> >  drivers/pinctrl/core.c                  | 19 ++++++++-------
> >  drivers/pinctrl/core.h                  | 12 +++++++++-
> >  drivers/pinctrl/devicetree.h            |  6 +++++
> >  drivers/pinctrl/pinconf.h               | 10 ++++++++
> >  drivers/pinctrl/pinctrl-utils.h         |  5 ++++
> >  drivers/pinctrl/pinmux.c                | 17 ++++++++------
> >  drivers/pinctrl/pinmux.h                | 11 +++++++++
> >  include/linux/pinctrl/consumer.h        | 31 +++++++++++--------------
> >  include/linux/pinctrl/devinfo.h         |  6 +++--
> >  include/linux/pinctrl/machine.h         |  8 ++++---
> >  include/linux/pinctrl/pinconf-generic.h | 23 ++++++++++--------
> >  include/linux/pinctrl/pinctrl.h         | 18 +++++++-------
> >  include/linux/pinctrl/pinmux.h          |  5 ++--
> >  13 files changed, 110 insertions(+), 61 deletions(-)
> >
> > diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c
> > index 9e57f4c62e60..655f9502e73f 100644
> > --- a/drivers/pinctrl/core.c
> > +++ b/drivers/pinctrl/core.c
> > @@ -12,19 +12,21 @@
> >   */
> >  #define pr_fmt(fmt) "pinctrl core: " fmt
> >
> > -#include <linux/kernel.h>
> > -#include <linux/kref.h>
> > -#include <linux/export.h>
> > -#include <linux/init.h>
> > +#include <linux/debugfs.h>
> >  #include <linux/device.h>
> > -#include <linux/slab.h>
> >  #include <linux/err.h>
> > +#include <linux/export.h>
> > +#include <linux/init.h>
> > +#include <linux/kernel.h>
> > +#include <linux/kref.h>
> >  #include <linux/list.h>
> > -#include <linux/debugfs.h>
> >  #include <linux/seq_file.h>
> > +#include <linux/slab.h>
> > +
> >  #include <linux/pinctrl/consumer.h>
> > -#include <linux/pinctrl/pinctrl.h>
> > +#include <linux/pinctrl/devinfo.h>
> >  #include <linux/pinctrl/machine.h>
> > +#include <linux/pinctrl/pinctrl.h>
> >
> >  #ifdef CONFIG_GPIOLIB
> >  #include "../gpio/gpiolib.h"
> > @@ -33,9 +35,8 @@
> >
> >  #include "core.h"
> >  #include "devicetree.h"
> > -#include "pinmux.h"
> >  #include "pinconf.h"
> > -
> > +#include "pinmux.h"
> >
> >  static bool pinctrl_dummy_state;
> >
> > diff --git a/drivers/pinctrl/core.h b/drivers/pinctrl/core.h
> > index 840103c40c14..4d0bdb9fb99b 100644
> > --- a/drivers/pinctrl/core.h
> > +++ b/drivers/pinctrl/core.h
> > @@ -9,12 +9,22 @@
> >   */
> >
> >  #include <linux/kref.h>
> > +#include <linux/list.h>
> >  #include <linux/mutex.h>
> >  #include <linux/radix-tree.h>
> > -#include <linux/pinctrl/pinconf.h>
>
> Removing pinconf.h from the core.h may cause build failure in other files
> because where-ever core.h is included to use “struct pinconf_ops”, there
> is a need to include pinconf.h.

I can confirm adding

    #include <linux/pinctrl/pinconf.h>

to drivers/pinctrl/renesas/pinctrl-rzn1.c and drivers/pinctrl/pinctrl-single.c
fixes the issues I was seeing with shmobile_defconfig and (out-of-tree)
renesas_defconfig.

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
Andy Shevchenko Oct. 11, 2022, 9:04 a.m. UTC | #3
On Tue, Oct 11, 2022 at 01:00:11PM +0530, Basavaraj Natikar wrote:
> On 10/11/2022 1:44 AM, Andy Shevchenko wrote:

...

> > --- a/drivers/pinctrl/core.h
> > +++ b/drivers/pinctrl/core.h

> > -#include <linux/pinctrl/pinconf.h>
> 
> Removing pinconf.h from the core.h may cause build failure in other files
> because where-ever core.h is included to use “struct pinconf_ops”, there
> is a need to include pinconf.h.

Yes, I compiled only few drivers with the core changes. Still I got a few
reports by LKP. Thank you for spotting this!

> With that fixed,
> 
> Reviewed-by: Basavaraj Natikar <Basavaraj.Natikar@amd.com>

Thank you!
Geert Uytterhoeven Oct. 18, 2022, 1:04 p.m. UTC | #4
Hi Andy,

On Tue, Oct 11, 2022 at 11:07 AM Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:
> On Tue, Oct 11, 2022 at 10:46:30AM +0200, Geert Uytterhoeven wrote:
> > On Tue, Oct 11, 2022 at 9:31 AM Basavaraj Natikar <bnatikar@amd.com> wrote:
> > > On 10/11/2022 1:44 AM, Andy Shevchenko wrote:
>
> > > > +++ b/drivers/pinctrl/core.h
>
> > > > -#include <linux/pinctrl/pinconf.h>
> > >
> > > Removing pinconf.h from the core.h may cause build failure in other files
> > > because where-ever core.h is included to use “struct pinconf_ops”, there
> > > is a need to include pinconf.h.
> >
> > I can confirm adding
> >
> >     #include <linux/pinctrl/pinconf.h>
> >
> > to drivers/pinctrl/renesas/pinctrl-rzn1.c and drivers/pinctrl/pinctrl-single.c
> > fixes the issues I was seeing with shmobile_defconfig and (out-of-tree)
> > renesas_defconfig.
>
> I will add this, thank you for reporting.

Same for drivers/pinctrl/starfive/pinctrl-starfive-jh7100.c.

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
Andy Shevchenko Oct. 18, 2022, 1:07 p.m. UTC | #5
On Tue, Oct 18, 2022 at 03:04:44PM +0200, Geert Uytterhoeven wrote:
> On Tue, Oct 11, 2022 at 11:07 AM Andy Shevchenko
> <andriy.shevchenko@linux.intel.com> wrote:
> > On Tue, Oct 11, 2022 at 10:46:30AM +0200, Geert Uytterhoeven wrote:
> > > On Tue, Oct 11, 2022 at 9:31 AM Basavaraj Natikar <bnatikar@amd.com> wrote:

...

> > > I can confirm adding
> > >
> > >     #include <linux/pinctrl/pinconf.h>
> > >
> > > to drivers/pinctrl/renesas/pinctrl-rzn1.c and drivers/pinctrl/pinctrl-single.c
> > > fixes the issues I was seeing with shmobile_defconfig and (out-of-tree)
> > > renesas_defconfig.
> >
> > I will add this, thank you for reporting.
> 
> Same for drivers/pinctrl/starfive/pinctrl-starfive-jh7100.c.

Thanks!

Not only. I have updated all of them (but missed zynq (it is in today's Linux
Next).
diff mbox series

Patch

diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c
index 9e57f4c62e60..655f9502e73f 100644
--- a/drivers/pinctrl/core.c
+++ b/drivers/pinctrl/core.c
@@ -12,19 +12,21 @@ 
  */
 #define pr_fmt(fmt) "pinctrl core: " fmt
 
-#include <linux/kernel.h>
-#include <linux/kref.h>
-#include <linux/export.h>
-#include <linux/init.h>
+#include <linux/debugfs.h>
 #include <linux/device.h>
-#include <linux/slab.h>
 #include <linux/err.h>
+#include <linux/export.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/kref.h>
 #include <linux/list.h>
-#include <linux/debugfs.h>
 #include <linux/seq_file.h>
+#include <linux/slab.h>
+
 #include <linux/pinctrl/consumer.h>
-#include <linux/pinctrl/pinctrl.h>
+#include <linux/pinctrl/devinfo.h>
 #include <linux/pinctrl/machine.h>
+#include <linux/pinctrl/pinctrl.h>
 
 #ifdef CONFIG_GPIOLIB
 #include "../gpio/gpiolib.h"
@@ -33,9 +35,8 @@ 
 
 #include "core.h"
 #include "devicetree.h"
-#include "pinmux.h"
 #include "pinconf.h"
-
+#include "pinmux.h"
 
 static bool pinctrl_dummy_state;
 
diff --git a/drivers/pinctrl/core.h b/drivers/pinctrl/core.h
index 840103c40c14..4d0bdb9fb99b 100644
--- a/drivers/pinctrl/core.h
+++ b/drivers/pinctrl/core.h
@@ -9,12 +9,22 @@ 
  */
 
 #include <linux/kref.h>
+#include <linux/list.h>
 #include <linux/mutex.h>
 #include <linux/radix-tree.h>
-#include <linux/pinctrl/pinconf.h>
+#include <linux/types.h>
+
 #include <linux/pinctrl/machine.h>
 
+struct dentry;
+struct device;
+struct device_node;
+struct module;
+
+struct pinctrl;
+struct pinctrl_desc;
 struct pinctrl_gpio_range;
+struct pinctrl_state;
 
 /**
  * struct pinctrl_dev - pin control class device
diff --git a/drivers/pinctrl/devicetree.h b/drivers/pinctrl/devicetree.h
index efa80779de4f..def76aba99d1 100644
--- a/drivers/pinctrl/devicetree.h
+++ b/drivers/pinctrl/devicetree.h
@@ -5,8 +5,14 @@ 
  * Copyright (C) 2012 NVIDIA CORPORATION. All rights reserved.
  */
 
+#include <linux/errno.h>
+
+struct device_node;
 struct of_phandle_args;
 
+struct pinctrl;
+struct pinctrl_dev;
+
 #ifdef CONFIG_OF
 
 void pinctrl_dt_free_maps(struct pinctrl *p);
diff --git a/drivers/pinctrl/pinconf.h b/drivers/pinctrl/pinconf.h
index be7311373299..694bfc9961fa 100644
--- a/drivers/pinctrl/pinconf.h
+++ b/drivers/pinctrl/pinconf.h
@@ -10,6 +10,16 @@ 
  * Author: Linus Walleij <linus.walleij@linaro.org>
  */
 
+#include <linux/errno.h>
+
+struct dentry;
+struct device_node;
+struct seq_file;
+
+struct pinctrl_dev;
+struct pinctrl_map;
+struct pinctrl_setting;
+
 #ifdef CONFIG_PINCONF
 
 int pinconf_check_ops(struct pinctrl_dev *pctldev);
diff --git a/drivers/pinctrl/pinctrl-utils.h b/drivers/pinctrl/pinctrl-utils.h
index cec407a8cc4e..4108ee2dd6d0 100644
--- a/drivers/pinctrl/pinctrl-utils.h
+++ b/drivers/pinctrl/pinctrl-utils.h
@@ -9,6 +9,11 @@ 
 #ifndef __PINCTRL_UTILS_H__
 #define __PINCTRL_UTILS_H__
 
+#include <linux/pinctrl/machine.h>
+
+struct pinctrl_dev;
+struct pinctrl_map;
+
 int pinctrl_utils_reserve_map(struct pinctrl_dev *pctldev,
 		struct pinctrl_map **map, unsigned *reserved_maps,
 		unsigned *num_maps, unsigned reserve);
diff --git a/drivers/pinctrl/pinmux.c b/drivers/pinctrl/pinmux.c
index f94d43b082d9..6bd7ac37a0e0 100644
--- a/drivers/pinctrl/pinmux.c
+++ b/drivers/pinctrl/pinmux.c
@@ -13,19 +13,22 @@ 
 #define pr_fmt(fmt) "pinmux core: " fmt
 
 #include <linux/ctype.h>
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/init.h>
+#include <linux/debugfs.h>
 #include <linux/device.h>
-#include <linux/slab.h>
-#include <linux/radix-tree.h>
 #include <linux/err.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
 #include <linux/list.h>
-#include <linux/string.h>
-#include <linux/debugfs.h>
+#include <linux/module.h>
+#include <linux/radix-tree.h>
 #include <linux/seq_file.h>
+#include <linux/slab.h>
+#include <linux/string.h>
+
 #include <linux/pinctrl/machine.h>
+#include <linux/pinctrl/pinctrl.h>
 #include <linux/pinctrl/pinmux.h>
+
 #include "core.h"
 #include "pinmux.h"
 
diff --git a/drivers/pinctrl/pinmux.h b/drivers/pinctrl/pinmux.h
index 72fcf03eaa43..ea6f99c24aa5 100644
--- a/drivers/pinctrl/pinmux.h
+++ b/drivers/pinctrl/pinmux.h
@@ -9,6 +9,17 @@ 
  *
  * Author: Linus Walleij <linus.walleij@linaro.org>
  */
+
+#include <linux/types.h>
+
+struct dentry;
+struct seq_file;
+
+struct pinctrl_dev;
+struct pinctrl_gpio_range;
+struct pinctrl_map;
+struct pinctrl_setting;
+
 #ifdef CONFIG_PINMUX
 
 int pinmux_check_ops(struct pinctrl_dev *pctldev);
diff --git a/include/linux/pinctrl/consumer.h b/include/linux/pinctrl/consumer.h
index 019fecd75d0c..4729d54e8995 100644
--- a/include/linux/pinctrl/consumer.h
+++ b/include/linux/pinctrl/consumer.h
@@ -12,14 +12,15 @@ 
 #define __LINUX_PINCTRL_CONSUMER_H
 
 #include <linux/err.h>
-#include <linux/list.h>
-#include <linux/seq_file.h>
+#include <linux/types.h>
+
 #include <linux/pinctrl/pinctrl-state.h>
 
+struct device;
+
 /* This struct is private to the core and should be regarded as a cookie */
 struct pinctrl;
 struct pinctrl_state;
-struct device;
 
 #ifdef CONFIG_PINCTRL
 
@@ -33,9 +34,8 @@  extern int pinctrl_gpio_set_config(unsigned gpio, unsigned long config);
 
 extern struct pinctrl * __must_check pinctrl_get(struct device *dev);
 extern void pinctrl_put(struct pinctrl *p);
-extern struct pinctrl_state * __must_check pinctrl_lookup_state(
-							struct pinctrl *p,
-							const char *name);
+extern struct pinctrl_state * __must_check pinctrl_lookup_state(struct pinctrl *p,
+								const char *name);
 extern int pinctrl_select_state(struct pinctrl *p, struct pinctrl_state *s);
 
 extern struct pinctrl * __must_check devm_pinctrl_get(struct device *dev);
@@ -101,9 +101,8 @@  static inline void pinctrl_put(struct pinctrl *p)
 {
 }
 
-static inline struct pinctrl_state * __must_check pinctrl_lookup_state(
-							struct pinctrl *p,
-							const char *name)
+static inline struct pinctrl_state * __must_check pinctrl_lookup_state(struct pinctrl *p,
+								       const char *name)
 {
 	return NULL;
 }
@@ -145,8 +144,8 @@  static inline int pinctrl_pm_select_idle_state(struct device *dev)
 
 #endif /* CONFIG_PINCTRL */
 
-static inline struct pinctrl * __must_check pinctrl_get_select(
-					struct device *dev, const char *name)
+static inline struct pinctrl * __must_check pinctrl_get_select(struct device *dev,
+							       const char *name)
 {
 	struct pinctrl *p;
 	struct pinctrl_state *s;
@@ -171,14 +170,13 @@  static inline struct pinctrl * __must_check pinctrl_get_select(
 	return p;
 }
 
-static inline struct pinctrl * __must_check pinctrl_get_select_default(
-					struct device *dev)
+static inline struct pinctrl * __must_check pinctrl_get_select_default(struct device *dev)
 {
 	return pinctrl_get_select(dev, PINCTRL_STATE_DEFAULT);
 }
 
-static inline struct pinctrl * __must_check devm_pinctrl_get_select(
-					struct device *dev, const char *name)
+static inline struct pinctrl * __must_check devm_pinctrl_get_select(struct device *dev,
+								    const char *name)
 {
 	struct pinctrl *p;
 	struct pinctrl_state *s;
@@ -203,8 +201,7 @@  static inline struct pinctrl * __must_check devm_pinctrl_get_select(
 	return p;
 }
 
-static inline struct pinctrl * __must_check devm_pinctrl_get_select_default(
-					struct device *dev)
+static inline struct pinctrl * __must_check devm_pinctrl_get_select_default(struct device *dev)
 {
 	return devm_pinctrl_get_select(dev, PINCTRL_STATE_DEFAULT);
 }
diff --git a/include/linux/pinctrl/devinfo.h b/include/linux/pinctrl/devinfo.h
index a48ff69acddd..9e8b559e1253 100644
--- a/include/linux/pinctrl/devinfo.h
+++ b/include/linux/pinctrl/devinfo.h
@@ -14,11 +14,15 @@ 
 #ifndef PINCTRL_DEVINFO_H
 #define PINCTRL_DEVINFO_H
 
+struct device;
+
 #ifdef CONFIG_PINCTRL
 
 /* The device core acts as a consumer toward pinctrl */
 #include <linux/pinctrl/consumer.h>
 
+struct pinctrl;
+
 /**
  * struct dev_pin_info - pin state container for devices
  * @p: pinctrl handle for the containing device
@@ -42,8 +46,6 @@  extern int pinctrl_init_done(struct device *dev);
 
 #else
 
-struct device;
-
 /* Stubs if we're not using pinctrl */
 
 static inline int pinctrl_bind_pins(struct device *dev)
diff --git a/include/linux/pinctrl/machine.h b/include/linux/pinctrl/machine.h
index e987dc9fd2af..0639b36f43c5 100644
--- a/include/linux/pinctrl/machine.h
+++ b/include/linux/pinctrl/machine.h
@@ -11,7 +11,7 @@ 
 #ifndef __LINUX_PINCTRL_MACHINE_H
 #define __LINUX_PINCTRL_MACHINE_H
 
-#include <linux/bug.h>
+#include <linux/kernel.h>	/* ARRAY_SIZE() */
 
 #include <linux/pinctrl/pinctrl-state.h>
 
@@ -149,16 +149,18 @@  struct pinctrl_map {
 #define PIN_MAP_CONFIGS_GROUP_HOG_DEFAULT(dev, grp, cfgs)		\
 	PIN_MAP_CONFIGS_GROUP(dev, PINCTRL_STATE_DEFAULT, dev, grp, cfgs)
 
+struct pinctrl_map;
+
 #ifdef CONFIG_PINCTRL
 
 extern int pinctrl_register_mappings(const struct pinctrl_map *map,
-				unsigned num_maps);
+				     unsigned num_maps);
 extern void pinctrl_unregister_mappings(const struct pinctrl_map *map);
 extern void pinctrl_provide_dummies(void);
 #else
 
 static inline int pinctrl_register_mappings(const struct pinctrl_map *map,
-					   unsigned num_maps)
+					    unsigned num_maps)
 {
 	return 0;
 }
diff --git a/include/linux/pinctrl/pinconf-generic.h b/include/linux/pinctrl/pinconf-generic.h
index 2422211d6a5a..940fc4e9e17c 100644
--- a/include/linux/pinctrl/pinconf-generic.h
+++ b/include/linux/pinctrl/pinconf-generic.h
@@ -11,9 +11,12 @@ 
 #ifndef __LINUX_PINCTRL_PINCONF_GENERIC_H
 #define __LINUX_PINCTRL_PINCONF_GENERIC_H
 
-#include <linux/device.h>
+#include <linux/types.h>
+
 #include <linux/pinctrl/machine.h>
 
+struct device_node;
+
 struct pinctrl_dev;
 struct pinctrl_map;
 
@@ -196,25 +199,25 @@  int pinconf_generic_dt_node_to_map(struct pinctrl_dev *pctldev,
 void pinconf_generic_dt_free_map(struct pinctrl_dev *pctldev,
 		struct pinctrl_map *map, unsigned num_maps);
 
-static inline int pinconf_generic_dt_node_to_map_group(
-		struct pinctrl_dev *pctldev, struct device_node *np_config,
-		struct pinctrl_map **map, unsigned *num_maps)
+static inline int pinconf_generic_dt_node_to_map_group(struct pinctrl_dev *pctldev,
+		struct device_node *np_config, struct pinctrl_map **map,
+		unsigned *num_maps)
 {
 	return pinconf_generic_dt_node_to_map(pctldev, np_config, map, num_maps,
 			PIN_MAP_TYPE_CONFIGS_GROUP);
 }
 
-static inline int pinconf_generic_dt_node_to_map_pin(
-		struct pinctrl_dev *pctldev, struct device_node *np_config,
-		struct pinctrl_map **map, unsigned *num_maps)
+static inline int pinconf_generic_dt_node_to_map_pin(struct pinctrl_dev *pctldev,
+		struct device_node *np_config, struct pinctrl_map **map,
+		unsigned *num_maps)
 {
 	return pinconf_generic_dt_node_to_map(pctldev, np_config, map, num_maps,
 			PIN_MAP_TYPE_CONFIGS_PIN);
 }
 
-static inline int pinconf_generic_dt_node_to_map_all(
-		struct pinctrl_dev *pctldev, struct device_node *np_config,
-		struct pinctrl_map **map, unsigned *num_maps)
+static inline int pinconf_generic_dt_node_to_map_all(struct pinctrl_dev *pctldev,
+		struct device_node *np_config, struct pinctrl_map **map,
+		unsigned *num_maps)
 {
 	/*
 	 * passing the type as PIN_MAP_TYPE_INVALID causes the underlying parser
diff --git a/include/linux/pinctrl/pinctrl.h b/include/linux/pinctrl/pinctrl.h
index 487117ccb1bc..31fe992412f0 100644
--- a/include/linux/pinctrl/pinctrl.h
+++ b/include/linux/pinctrl/pinctrl.h
@@ -11,20 +11,20 @@ 
 #ifndef __LINUX_PINCTRL_PINCTRL_H
 #define __LINUX_PINCTRL_PINCTRL_H
 
-#include <linux/radix-tree.h>
-#include <linux/list.h>
-#include <linux/seq_file.h>
-#include <linux/pinctrl/pinctrl-state.h>
-#include <linux/pinctrl/devinfo.h>
+#include <linux/types.h>
 
 struct device;
+struct device_node;
+struct gpio_chip;
+struct module;
+struct seq_file;
+
+struct pin_config_item;
+struct pinconf_generic_params;
+struct pinconf_ops;
 struct pinctrl_dev;
 struct pinctrl_map;
 struct pinmux_ops;
-struct pinconf_ops;
-struct pin_config_item;
-struct gpio_chip;
-struct device_node;
 
 /**
  * struct pingroup - provides information on pingroup
diff --git a/include/linux/pinctrl/pinmux.h b/include/linux/pinctrl/pinmux.h
index 9a647fa5c8f1..a7e370965c53 100644
--- a/include/linux/pinctrl/pinmux.h
+++ b/include/linux/pinctrl/pinmux.h
@@ -11,11 +11,10 @@ 
 #ifndef __LINUX_PINCTRL_PINMUX_H
 #define __LINUX_PINCTRL_PINMUX_H
 
-#include <linux/list.h>
-#include <linux/seq_file.h>
-#include <linux/pinctrl/pinctrl.h>
+#include <linux/types.h>
 
 struct pinctrl_dev;
+struct pinctrl_gpio_range;
 
 /**
  * struct pinmux_ops - pinmux operations, to be implemented by pin controller