[16/25] arch: arm: mach-at91: pm: Move prototypes to mutually included header

Message ID 20200713144930.1034632-17-lee.jones@linaro.org
State New
Headers show
Series
  • Rid W=1 warnings in Pinctrl
Related show

Commit Message

Lee Jones July 13, 2020, 2:49 p.m.
Both the caller and the supplier's source file should have access to
the include file containing the prototypes.

Fixes the following W=1 kernel build warning(s):

 drivers/pinctrl/pinctrl-at91.c:1637:6: warning: no previous prototype for ‘at91_pinctrl_gpio_suspend’ [-Wmissing-prototypes]
 1637 | void at91_pinctrl_gpio_suspend(void)
 | ^~~~~~~~~~~~~~~~~~~~~~~~~
 drivers/pinctrl/pinctrl-at91.c:1661:6: warning: no previous prototype for ‘at91_pinctrl_gpio_resume’ [-Wmissing-prototypes]
 1661 | void at91_pinctrl_gpio_resume(void)
 | ^~~~~~~~~~~~~~~~~~~~~~~~

Cc: Russell King <linux@armlinux.org.uk>
Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Ludovic Desroches <ludovic.desroches@microchip.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>

---
 arch/arm/mach-at91/pm.c             | 17 ++++++-----------
 drivers/pinctrl/pinctrl-at91.c      |  1 +
 include/linux/platform_data/atmel.h |  5 +++++
 3 files changed, 12 insertions(+), 11 deletions(-)

-- 
2.25.1

Comments

Alexandre Belloni July 13, 2020, 8:02 p.m. | #1
Hi,

On 13/07/2020 15:49:21+0100, Lee Jones wrote:
> Both the caller and the supplier's source file should have access to

> the include file containing the prototypes.

> 

> Fixes the following W=1 kernel build warning(s):

> 

>  drivers/pinctrl/pinctrl-at91.c:1637:6: warning: no previous prototype for ‘at91_pinctrl_gpio_suspend’ [-Wmissing-prototypes]

>  1637 | void at91_pinctrl_gpio_suspend(void)

>  | ^~~~~~~~~~~~~~~~~~~~~~~~~

>  drivers/pinctrl/pinctrl-at91.c:1661:6: warning: no previous prototype for ‘at91_pinctrl_gpio_resume’ [-Wmissing-prototypes]

>  1661 | void at91_pinctrl_gpio_resume(void)

>  | ^~~~~~~~~~~~~~~~~~~~~~~~

> 

> Cc: Russell King <linux@armlinux.org.uk>

> Cc: Nicolas Ferre <nicolas.ferre@microchip.com>

> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>

> Cc: Ludovic Desroches <ludovic.desroches@microchip.com>

> Signed-off-by: Lee Jones <lee.jones@linaro.org>

> ---

>  arch/arm/mach-at91/pm.c             | 17 ++++++-----------

>  drivers/pinctrl/pinctrl-at91.c      |  1 +

>  include/linux/platform_data/atmel.h |  5 +++++

>  3 files changed, 12 insertions(+), 11 deletions(-)

> 

> diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c

> index 074bde64064e4..59f2a2d6fbbb8 100644

> --- a/arch/arm/mach-at91/pm.c

> +++ b/arch/arm/mach-at91/pm.c

> @@ -25,17 +25,6 @@

>  #include "generic.h"

>  #include "pm.h"

>  

> -/*

> - * FIXME: this is needed to communicate between the pinctrl driver and

> - * the PM implementation in the machine. Possibly part of the PM

> - * implementation should be moved down into the pinctrl driver and get

> - * called as part of the generic suspend/resume path.

> - */

> -#ifdef CONFIG_PINCTRL_AT91

> -extern void at91_pinctrl_gpio_suspend(void);

> -extern void at91_pinctrl_gpio_resume(void);

> -#endif

> -

>  struct at91_soc_pm {

>  	int (*config_shdwc_ws)(void __iomem *shdwc, u32 *mode, u32 *polarity);

>  	int (*config_pmc_ws)(void __iomem *pmc, u32 mode, u32 polarity);

> @@ -325,6 +314,12 @@ static void at91_pm_suspend(suspend_state_t state)

>  static int at91_pm_enter(suspend_state_t state)

>  {

>  #ifdef CONFIG_PINCTRL_AT91

> +	/*

> +	 * FIXME: this is needed to communicate between the pinctrl driver and

> +	 * the PM implementation in the machine. Possibly part of the PM

> +	 * implementation should be moved down into the pinctrl driver and get

> +	 * called as part of the generic suspend/resume path.

> +	 */

>  	at91_pinctrl_gpio_suspend();

>  #endif

>  

> diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c

> index 9c52130876597..37997e5ab0538 100644

> --- a/drivers/pinctrl/pinctrl-at91.c

> +++ b/drivers/pinctrl/pinctrl-at91.c

> @@ -22,6 +22,7 @@

>  #include <linux/pinctrl/pinmux.h>

>  /* Since we request GPIOs from ourself */

>  #include <linux/pinctrl/consumer.h>

> +#include <linux/platform_data/atmel.h>

>  

>  #include "pinctrl-at91.h"

>  #include "core.h"

> diff --git a/include/linux/platform_data/atmel.h b/include/linux/platform_data/atmel.h

> index 99e6069c5fd89..666ef482ea8c0 100644

> --- a/include/linux/platform_data/atmel.h

> +++ b/include/linux/platform_data/atmel.h


The plan is to get rid of that file so you should probably find a better
location.

> @@ -28,4 +28,9 @@ static inline int at91_suspend_entering_slow_clock(void)

>  }

>  #endif

>  

> +#ifdef CONFIG_PINCTRL_AT91

> +void at91_pinctrl_gpio_suspend(void);

> +void at91_pinctrl_gpio_resume(void);

> +#endif

> +

>  #endif /* __ATMEL_H__ */

> -- 

> 2.25.1

> 


-- 
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
Linus Walleij July 16, 2020, 1:14 p.m. | #2
On Mon, Jul 13, 2020 at 10:02 PM Alexandre Belloni
<alexandre.belloni@bootlin.com> wrote:
> On 13/07/2020 15:49:21+0100, Lee Jones wrote:


> > diff --git a/include/linux/platform_data/atmel.h b/include/linux/platform_data/atmel.h

> > index 99e6069c5fd89..666ef482ea8c0 100644

> > --- a/include/linux/platform_data/atmel.h

> > +++ b/include/linux/platform_data/atmel.h

>

> The plan is to get rid of that file so you should probably find a better

> location.


OK I dropped this one patch from the set for now.

Yours,
Linus Walleij
Lee Jones July 16, 2020, 1:42 p.m. | #3
On Mon, 13 Jul 2020, Alexandre Belloni wrote:

> Hi,

> 

> On 13/07/2020 15:49:21+0100, Lee Jones wrote:

> > Both the caller and the supplier's source file should have access to

> > the include file containing the prototypes.

> > 

> > Fixes the following W=1 kernel build warning(s):

> > 

> >  drivers/pinctrl/pinctrl-at91.c:1637:6: warning: no previous prototype for ‘at91_pinctrl_gpio_suspend’ [-Wmissing-prototypes]

> >  1637 | void at91_pinctrl_gpio_suspend(void)

> >  | ^~~~~~~~~~~~~~~~~~~~~~~~~

> >  drivers/pinctrl/pinctrl-at91.c:1661:6: warning: no previous prototype for ‘at91_pinctrl_gpio_resume’ [-Wmissing-prototypes]

> >  1661 | void at91_pinctrl_gpio_resume(void)

> >  | ^~~~~~~~~~~~~~~~~~~~~~~~

> > 

> > Cc: Russell King <linux@armlinux.org.uk>

> > Cc: Nicolas Ferre <nicolas.ferre@microchip.com>

> > Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>

> > Cc: Ludovic Desroches <ludovic.desroches@microchip.com>

> > Signed-off-by: Lee Jones <lee.jones@linaro.org>

> > ---

> >  arch/arm/mach-at91/pm.c             | 17 ++++++-----------

> >  drivers/pinctrl/pinctrl-at91.c      |  1 +

> >  include/linux/platform_data/atmel.h |  5 +++++

> >  3 files changed, 12 insertions(+), 11 deletions(-)

> > 

> > diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c

> > index 074bde64064e4..59f2a2d6fbbb8 100644

> > --- a/arch/arm/mach-at91/pm.c

> > +++ b/arch/arm/mach-at91/pm.c

> > @@ -25,17 +25,6 @@

> >  #include "generic.h"

> >  #include "pm.h"

> >  

> > -/*

> > - * FIXME: this is needed to communicate between the pinctrl driver and

> > - * the PM implementation in the machine. Possibly part of the PM

> > - * implementation should be moved down into the pinctrl driver and get

> > - * called as part of the generic suspend/resume path.

> > - */

> > -#ifdef CONFIG_PINCTRL_AT91

> > -extern void at91_pinctrl_gpio_suspend(void);

> > -extern void at91_pinctrl_gpio_resume(void);

> > -#endif

> > -

> >  struct at91_soc_pm {

> >  	int (*config_shdwc_ws)(void __iomem *shdwc, u32 *mode, u32 *polarity);

> >  	int (*config_pmc_ws)(void __iomem *pmc, u32 mode, u32 polarity);

> > @@ -325,6 +314,12 @@ static void at91_pm_suspend(suspend_state_t state)

> >  static int at91_pm_enter(suspend_state_t state)

> >  {

> >  #ifdef CONFIG_PINCTRL_AT91

> > +	/*

> > +	 * FIXME: this is needed to communicate between the pinctrl driver and

> > +	 * the PM implementation in the machine. Possibly part of the PM

> > +	 * implementation should be moved down into the pinctrl driver and get

> > +	 * called as part of the generic suspend/resume path.

> > +	 */

> >  	at91_pinctrl_gpio_suspend();

> >  #endif

> >  

> > diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c

> > index 9c52130876597..37997e5ab0538 100644

> > --- a/drivers/pinctrl/pinctrl-at91.c

> > +++ b/drivers/pinctrl/pinctrl-at91.c

> > @@ -22,6 +22,7 @@

> >  #include <linux/pinctrl/pinmux.h>

> >  /* Since we request GPIOs from ourself */

> >  #include <linux/pinctrl/consumer.h>

> > +#include <linux/platform_data/atmel.h>

> >  

> >  #include "pinctrl-at91.h"

> >  #include "core.h"

> > diff --git a/include/linux/platform_data/atmel.h b/include/linux/platform_data/atmel.h

> > index 99e6069c5fd89..666ef482ea8c0 100644

> > --- a/include/linux/platform_data/atmel.h

> > +++ b/include/linux/platform_data/atmel.h

> 

> The plan is to get rid of that file so you should probably find a better

> location.


Suggestions welcome.

-- 
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog
Alexandre Belloni July 17, 2020, 2:10 p.m. | #4
On 16/07/2020 14:42:31+0100, Lee Jones wrote:
> > > diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c

> > > index 9c52130876597..37997e5ab0538 100644

> > > --- a/drivers/pinctrl/pinctrl-at91.c

> > > +++ b/drivers/pinctrl/pinctrl-at91.c

> > > @@ -22,6 +22,7 @@

> > >  #include <linux/pinctrl/pinmux.h>

> > >  /* Since we request GPIOs from ourself */

> > >  #include <linux/pinctrl/consumer.h>

> > > +#include <linux/platform_data/atmel.h>

> > >  

> > >  #include "pinctrl-at91.h"

> > >  #include "core.h"

> > > diff --git a/include/linux/platform_data/atmel.h b/include/linux/platform_data/atmel.h

> > > index 99e6069c5fd89..666ef482ea8c0 100644

> > > --- a/include/linux/platform_data/atmel.h

> > > +++ b/include/linux/platform_data/atmel.h

> > 

> > The plan is to get rid of that file so you should probably find a better

> > location.

> 

> Suggestions welcome.

> 


Something like include/soc/at91/pm.h so we can also move
at91_suspend_entering_slow_clock there and then kill
platform_data/atmel.h.

-- 
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

Patch

diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c
index 074bde64064e4..59f2a2d6fbbb8 100644
--- a/arch/arm/mach-at91/pm.c
+++ b/arch/arm/mach-at91/pm.c
@@ -25,17 +25,6 @@ 
 #include "generic.h"
 #include "pm.h"
 
-/*
- * FIXME: this is needed to communicate between the pinctrl driver and
- * the PM implementation in the machine. Possibly part of the PM
- * implementation should be moved down into the pinctrl driver and get
- * called as part of the generic suspend/resume path.
- */
-#ifdef CONFIG_PINCTRL_AT91
-extern void at91_pinctrl_gpio_suspend(void);
-extern void at91_pinctrl_gpio_resume(void);
-#endif
-
 struct at91_soc_pm {
 	int (*config_shdwc_ws)(void __iomem *shdwc, u32 *mode, u32 *polarity);
 	int (*config_pmc_ws)(void __iomem *pmc, u32 mode, u32 polarity);
@@ -325,6 +314,12 @@  static void at91_pm_suspend(suspend_state_t state)
 static int at91_pm_enter(suspend_state_t state)
 {
 #ifdef CONFIG_PINCTRL_AT91
+	/*
+	 * FIXME: this is needed to communicate between the pinctrl driver and
+	 * the PM implementation in the machine. Possibly part of the PM
+	 * implementation should be moved down into the pinctrl driver and get
+	 * called as part of the generic suspend/resume path.
+	 */
 	at91_pinctrl_gpio_suspend();
 #endif
 
diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
index 9c52130876597..37997e5ab0538 100644
--- a/drivers/pinctrl/pinctrl-at91.c
+++ b/drivers/pinctrl/pinctrl-at91.c
@@ -22,6 +22,7 @@ 
 #include <linux/pinctrl/pinmux.h>
 /* Since we request GPIOs from ourself */
 #include <linux/pinctrl/consumer.h>
+#include <linux/platform_data/atmel.h>
 
 #include "pinctrl-at91.h"
 #include "core.h"
diff --git a/include/linux/platform_data/atmel.h b/include/linux/platform_data/atmel.h
index 99e6069c5fd89..666ef482ea8c0 100644
--- a/include/linux/platform_data/atmel.h
+++ b/include/linux/platform_data/atmel.h
@@ -28,4 +28,9 @@  static inline int at91_suspend_entering_slow_clock(void)
 }
 #endif
 
+#ifdef CONFIG_PINCTRL_AT91
+void at91_pinctrl_gpio_suspend(void);
+void at91_pinctrl_gpio_resume(void);
+#endif
+
 #endif /* __ATMEL_H__ */