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 <[email protected]>
Cc: Nicolas Ferre <[email protected]>
Cc: Alexandre Belloni <[email protected]>
Cc: Ludovic Desroches <[email protected]>
Signed-off-by: Lee Jones <[email protected]>
---
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
@@ -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
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 <[email protected]>
> Cc: Nicolas Ferre <[email protected]>
> Cc: Alexandre Belloni <[email protected]>
> Cc: Ludovic Desroches <[email protected]>
> Signed-off-by: Lee Jones <[email protected]>
> ---
> 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
On Mon, Jul 13, 2020 at 10:02 PM Alexandre Belloni
<[email protected]> 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
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 <[email protected]>
> > Cc: Nicolas Ferre <[email protected]>
> > Cc: Alexandre Belloni <[email protected]>
> > Cc: Ludovic Desroches <[email protected]>
> > Signed-off-by: Lee Jones <[email protected]>
> > ---
> > 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
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
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 <[email protected]>
Cc: Nicolas Ferre <[email protected]>
Cc: Alexandre Belloni <[email protected]>
Cc: Ludovic Desroches <[email protected]>
Signed-off-by: Lee Jones <[email protected]>
---
v2: Moved shared header to: include/soc/at91/pm.h
arch/arm/mach-at91/pm.c | 19 ++++++++-----------
drivers/pinctrl/pinctrl-at91.c | 2 ++
include/soc/at91/pm.h | 9 +++++++++
3 files changed, 19 insertions(+), 11 deletions(-)
create mode 100644 include/soc/at91/pm.h
diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c
index 120f9aa6fff32..90dcdfe3b3d0d 100644
--- a/arch/arm/mach-at91/pm.c
+++ b/arch/arm/mach-at91/pm.c
@@ -17,6 +17,8 @@
#include <linux/clk/at91_pmc.h>
#include <linux/platform_data/atmel.h>
+#include <soc/at91/pm.h>
+
#include <asm/cacheflush.h>
#include <asm/fncpy.h>
#include <asm/system_misc.h>
@@ -25,17 +27,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);
@@ -326,6 +317,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 72edc675431ce..0a7e10d39505c 100644
--- a/drivers/pinctrl/pinctrl-at91.c
+++ b/drivers/pinctrl/pinctrl-at91.c
@@ -23,6 +23,8 @@
/* Since we request GPIOs from ourself */
#include <linux/pinctrl/consumer.h>
+#include <soc/at91/pm.h>
+
#include "pinctrl-at91.h"
#include "core.h"
diff --git a/include/soc/at91/pm.h b/include/soc/at91/pm.h
new file mode 100644
index 0000000000000..0fd5093f7f73a
--- /dev/null
+++ b/include/soc/at91/pm.h
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * atmel platform data
+ */
+
+#ifdef CONFIG_PINCTRL_AT91
+void at91_pinctrl_gpio_suspend(void);
+void at91_pinctrl_gpio_resume(void);
+#endif
--
2.25.1
Hi,
On 12/11/2020 09:39:18+0000, 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 <[email protected]>
> Cc: Nicolas Ferre <[email protected]>
> Cc: Alexandre Belloni <[email protected]>
> Cc: Ludovic Desroches <[email protected]>
> Signed-off-by: Lee Jones <[email protected]>
> ---
>
> v2: Moved shared header to: include/soc/at91/pm.h
>
> arch/arm/mach-at91/pm.c | 19 ++++++++-----------
> drivers/pinctrl/pinctrl-at91.c | 2 ++
> include/soc/at91/pm.h | 9 +++++++++
> 3 files changed, 19 insertions(+), 11 deletions(-)
> create mode 100644 include/soc/at91/pm.h
>
> diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c
> index 120f9aa6fff32..90dcdfe3b3d0d 100644
> --- a/arch/arm/mach-at91/pm.c
> +++ b/arch/arm/mach-at91/pm.c
> @@ -17,6 +17,8 @@
> #include <linux/clk/at91_pmc.h>
> #include <linux/platform_data/atmel.h>
>
> +#include <soc/at91/pm.h>
> +
> #include <asm/cacheflush.h>
> #include <asm/fncpy.h>
> #include <asm/system_misc.h>
> @@ -25,17 +27,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);
> @@ -326,6 +317,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 72edc675431ce..0a7e10d39505c 100644
> --- a/drivers/pinctrl/pinctrl-at91.c
> +++ b/drivers/pinctrl/pinctrl-at91.c
> @@ -23,6 +23,8 @@
> /* Since we request GPIOs from ourself */
> #include <linux/pinctrl/consumer.h>
>
> +#include <soc/at91/pm.h>
> +
> #include "pinctrl-at91.h"
> #include "core.h"
>
> diff --git a/include/soc/at91/pm.h b/include/soc/at91/pm.h
> new file mode 100644
> index 0000000000000..0fd5093f7f73a
> --- /dev/null
> +++ b/include/soc/at91/pm.h
> @@ -0,0 +1,9 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * atmel platform data
> + */
> +
> +#ifdef CONFIG_PINCTRL_AT91
Shouldn't that be a header guard instead of depending on PINCTRL_AT91 ?
--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
On Thu, 12 Nov 2020, Alexandre Belloni wrote:
> Hi,
>
> On 12/11/2020 09:39:18+0000, 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 <[email protected]>
> > Cc: Nicolas Ferre <[email protected]>
> > Cc: Alexandre Belloni <[email protected]>
> > Cc: Ludovic Desroches <[email protected]>
> > Signed-off-by: Lee Jones <[email protected]>
> > ---
[...]
> > diff --git a/include/soc/at91/pm.h b/include/soc/at91/pm.h
> > new file mode 100644
> > index 0000000000000..0fd5093f7f73a
> > --- /dev/null
> > +++ b/include/soc/at91/pm.h
> > @@ -0,0 +1,9 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only */
> > +/*
> > + * atmel platform data
> > + */
> > +
> > +#ifdef CONFIG_PINCTRL_AT91
>
> Shouldn't that be a header guard instead of depending on PINCTRL_AT91 ?
I copied the same semantics from the header it was taken from.
Happy to turn it into a proper header file too.
--
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog
On 12/11/2020 10:48:10+0000, Lee Jones wrote:
> On Thu, 12 Nov 2020, Alexandre Belloni wrote:
>
> > Hi,
> >
> > On 12/11/2020 09:39:18+0000, 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 <[email protected]>
> > > Cc: Nicolas Ferre <[email protected]>
> > > Cc: Alexandre Belloni <[email protected]>
> > > Cc: Ludovic Desroches <[email protected]>
> > > Signed-off-by: Lee Jones <[email protected]>
> > > ---
>
> [...]
>
> > > diff --git a/include/soc/at91/pm.h b/include/soc/at91/pm.h
> > > new file mode 100644
> > > index 0000000000000..0fd5093f7f73a
> > > --- /dev/null
> > > +++ b/include/soc/at91/pm.h
> > > @@ -0,0 +1,9 @@
> > > +/* SPDX-License-Identifier: GPL-2.0-only */
> > > +/*
> > > + * atmel platform data
> > > + */
> > > +
> > > +#ifdef CONFIG_PINCTRL_AT91
> >
> > Shouldn't that be a header guard instead of depending on PINCTRL_AT91 ?
>
> I copied the same semantics from the header it was taken from.
>
> Happy to turn it into a proper header file too.
I guess that would be better. How do you expect this patch to be merged?
--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
On Fri, 13 Nov 2020, Alexandre Belloni wrote:
> On 12/11/2020 10:48:10+0000, Lee Jones wrote:
> > On Thu, 12 Nov 2020, Alexandre Belloni wrote:
> >
> > > Hi,
> > >
> > > On 12/11/2020 09:39:18+0000, 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 <[email protected]>
> > > > Cc: Nicolas Ferre <[email protected]>
> > > > Cc: Alexandre Belloni <[email protected]>
> > > > Cc: Ludovic Desroches <[email protected]>
> > > > Signed-off-by: Lee Jones <[email protected]>
> > > > ---
> >
> > [...]
> >
> > > > diff --git a/include/soc/at91/pm.h b/include/soc/at91/pm.h
> > > > new file mode 100644
> > > > index 0000000000000..0fd5093f7f73a
> > > > --- /dev/null
> > > > +++ b/include/soc/at91/pm.h
> > > > @@ -0,0 +1,9 @@
> > > > +/* SPDX-License-Identifier: GPL-2.0-only */
> > > > +/*
> > > > + * atmel platform data
> > > > + */
> > > > +
> > > > +#ifdef CONFIG_PINCTRL_AT91
> > >
> > > Shouldn't that be a header guard instead of depending on PINCTRL_AT91 ?
> >
> > I copied the same semantics from the header it was taken from.
> >
> > Happy to turn it into a proper header file too.
>
> I guess that would be better. How do you expect this patch to be merged?
I'll fix it.
No expectations. Whatever's easiest.
--
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog
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 <[email protected]>
Cc: Nicolas Ferre <[email protected]>
Cc: Alexandre Belloni <[email protected]>
Cc: Ludovic Desroches <[email protected]>
Signed-off-by: Lee Jones <[email protected]>
---
arch/arm/mach-at91/pm.c | 19 ++++++++-----------
drivers/pinctrl/pinctrl-at91.c | 2 ++
include/soc/at91/pm.h | 16 ++++++++++++++++
3 files changed, 26 insertions(+), 11 deletions(-)
create mode 100644 include/soc/at91/pm.h
diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c
index 120f9aa6fff32..90dcdfe3b3d0d 100644
--- a/arch/arm/mach-at91/pm.c
+++ b/arch/arm/mach-at91/pm.c
@@ -17,6 +17,8 @@
#include <linux/clk/at91_pmc.h>
#include <linux/platform_data/atmel.h>
+#include <soc/at91/pm.h>
+
#include <asm/cacheflush.h>
#include <asm/fncpy.h>
#include <asm/system_misc.h>
@@ -25,17 +27,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);
@@ -326,6 +317,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 72edc675431ce..0a7e10d39505c 100644
--- a/drivers/pinctrl/pinctrl-at91.c
+++ b/drivers/pinctrl/pinctrl-at91.c
@@ -23,6 +23,8 @@
/* Since we request GPIOs from ourself */
#include <linux/pinctrl/consumer.h>
+#include <soc/at91/pm.h>
+
#include "pinctrl-at91.h"
#include "core.h"
diff --git a/include/soc/at91/pm.h b/include/soc/at91/pm.h
new file mode 100644
index 0000000000000..7a41e53a3ffa3
--- /dev/null
+++ b/include/soc/at91/pm.h
@@ -0,0 +1,16 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Atmel Power Management
+ *
+ * Copyright (C) 2020 Atmel
+ *
+ * Author: Lee Jones <[email protected]>
+ */
+
+#ifndef __SOC_ATMEL_PM_H
+#define __SOC_ATMEL_PM_H
+
+void at91_pinctrl_gpio_suspend(void);
+void at91_pinctrl_gpio_resume(void);
+
+#endif /* __SOC_ATMEL_PM_H */
--
2.25.1
On 26/11/2020 13:28:40+0000, 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 <[email protected]>
> Cc: Nicolas Ferre <[email protected]>
> Cc: Alexandre Belloni <[email protected]>
> Cc: Ludovic Desroches <[email protected]>
> Signed-off-by: Lee Jones <[email protected]>
Acked-by: Alexandre Belloni <[email protected]>
This is my ack in case Linus wants that to go through the pinctrl tree,
which is fine with me.
I can also take it through the at91 tree with Linus' ack.
> ---
> arch/arm/mach-at91/pm.c | 19 ++++++++-----------
> drivers/pinctrl/pinctrl-at91.c | 2 ++
> include/soc/at91/pm.h | 16 ++++++++++++++++
> 3 files changed, 26 insertions(+), 11 deletions(-)
> create mode 100644 include/soc/at91/pm.h
>
> diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c
> index 120f9aa6fff32..90dcdfe3b3d0d 100644
> --- a/arch/arm/mach-at91/pm.c
> +++ b/arch/arm/mach-at91/pm.c
> @@ -17,6 +17,8 @@
> #include <linux/clk/at91_pmc.h>
> #include <linux/platform_data/atmel.h>
>
> +#include <soc/at91/pm.h>
> +
> #include <asm/cacheflush.h>
> #include <asm/fncpy.h>
> #include <asm/system_misc.h>
> @@ -25,17 +27,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);
> @@ -326,6 +317,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 72edc675431ce..0a7e10d39505c 100644
> --- a/drivers/pinctrl/pinctrl-at91.c
> +++ b/drivers/pinctrl/pinctrl-at91.c
> @@ -23,6 +23,8 @@
> /* Since we request GPIOs from ourself */
> #include <linux/pinctrl/consumer.h>
>
> +#include <soc/at91/pm.h>
> +
> #include "pinctrl-at91.h"
> #include "core.h"
>
> diff --git a/include/soc/at91/pm.h b/include/soc/at91/pm.h
> new file mode 100644
> index 0000000000000..7a41e53a3ffa3
> --- /dev/null
> +++ b/include/soc/at91/pm.h
> @@ -0,0 +1,16 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Atmel Power Management
> + *
> + * Copyright (C) 2020 Atmel
> + *
> + * Author: Lee Jones <[email protected]>
> + */
> +
> +#ifndef __SOC_ATMEL_PM_H
> +#define __SOC_ATMEL_PM_H
> +
> +void at91_pinctrl_gpio_suspend(void);
> +void at91_pinctrl_gpio_resume(void);
> +
> +#endif /* __SOC_ATMEL_PM_H */
> --
> 2.25.1
--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com