* [PATCH v3 01/17] pinctrl: intel: Provide Intel pin control wide PM ops structure
2023-10-30 12:07 [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper Andy Shevchenko
@ 2023-10-30 12:07 ` Andy Shevchenko
2023-10-30 19:41 ` Jonathan Cameron
2023-10-30 12:07 ` [PATCH v3 02/17] pinctrl: alderlake: Switch to use Intel pin control PM ops Andy Shevchenko
` (17 subsequent siblings)
18 siblings, 1 reply; 24+ messages in thread
From: Andy Shevchenko @ 2023-10-30 12:07 UTC (permalink / raw)
To: Andy Shevchenko, Mika Westerberg, linux-gpio, linux-kernel
Cc: Andy Shevchenko, Linus Walleij, Paul Cercueil, Jonathan Cameron
With the help of EXPORT_NS_GPL_DEV_PM_OPS() and
NOIRQ_SYSTEM_SLEEP_PM_OPS() we may convert PM ops functions to become
static. This also takes into account the PM configuration options such
as CONFIG_PM and CONFIG_PM_SLEEP. Hence the first step is to provide
a generic PM ops structure that can be used by drivers directly.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/pinctrl/intel/pinctrl-intel.c | 8 +++++---
drivers/pinctrl/intel/pinctrl-intel.h | 4 ++--
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c
index b19527a8728e..9fbdc7bfa65c 100644
--- a/drivers/pinctrl/intel/pinctrl-intel.c
+++ b/drivers/pinctrl/intel/pinctrl-intel.c
@@ -899,7 +899,7 @@ static int intel_gpio_to_pin(struct intel_pinctrl *pctrl, unsigned int offset,
*
* Return: a GPIO offset, or negative error code if translation can't be done.
*/
-static __maybe_unused int intel_pin_to_gpio(struct intel_pinctrl *pctrl, int pin)
+static int intel_pin_to_gpio(struct intel_pinctrl *pctrl, int pin)
{
const struct intel_community *community;
const struct intel_padgroup *padgrp;
@@ -1682,7 +1682,6 @@ const struct intel_pinctrl_soc_data *intel_pinctrl_get_soc_data(struct platform_
}
EXPORT_SYMBOL_NS_GPL(intel_pinctrl_get_soc_data, PINCTRL_INTEL);
-#ifdef CONFIG_PM_SLEEP
static bool __intel_gpio_is_direct_irq(u32 value)
{
return (value & PADCFG0_GPIROUTIOXAPIC) && (value & PADCFG0_GPIOTXDIS) &&
@@ -1883,7 +1882,10 @@ int intel_pinctrl_resume_noirq(struct device *dev)
return 0;
}
EXPORT_SYMBOL_GPL(intel_pinctrl_resume_noirq);
-#endif
+
+EXPORT_NS_GPL_DEV_PM_OPS(intel_pinctrl_pm_ops, PINCTRL_INTEL) = {
+ NOIRQ_SYSTEM_SLEEP_PM_OPS(intel_pinctrl_suspend_noirq, intel_pinctrl_resume_noirq)
+};
MODULE_AUTHOR("Mathias Nyman <mathias.nyman@linux.intel.com>");
MODULE_AUTHOR("Mika Westerberg <mika.westerberg@linux.intel.com>");
diff --git a/drivers/pinctrl/intel/pinctrl-intel.h b/drivers/pinctrl/intel/pinctrl-intel.h
index 2bb553598e8b..d3f511f97ed9 100644
--- a/drivers/pinctrl/intel/pinctrl-intel.h
+++ b/drivers/pinctrl/intel/pinctrl-intel.h
@@ -255,10 +255,8 @@ struct intel_pinctrl {
int intel_pinctrl_probe_by_hid(struct platform_device *pdev);
int intel_pinctrl_probe_by_uid(struct platform_device *pdev);
-#ifdef CONFIG_PM_SLEEP
int intel_pinctrl_suspend_noirq(struct device *dev);
int intel_pinctrl_resume_noirq(struct device *dev);
-#endif
#define INTEL_PINCTRL_PM_OPS(_name) \
const struct dev_pm_ops _name = { \
@@ -266,6 +264,8 @@ const struct dev_pm_ops _name = { \
intel_pinctrl_resume_noirq) \
}
+extern const struct dev_pm_ops intel_pinctrl_pm_ops;
+
struct intel_community *intel_get_community(struct intel_pinctrl *pctrl, unsigned int pin);
int intel_get_groups_count(struct pinctrl_dev *pctldev);
--
2.40.0.1.gaa8946217a0b
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v3 01/17] pinctrl: intel: Provide Intel pin control wide PM ops structure
2023-10-30 12:07 ` [PATCH v3 01/17] pinctrl: intel: Provide Intel pin control wide PM ops structure Andy Shevchenko
@ 2023-10-30 19:41 ` Jonathan Cameron
2023-10-30 19:43 ` Jonathan Cameron
0 siblings, 1 reply; 24+ messages in thread
From: Jonathan Cameron @ 2023-10-30 19:41 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Mika Westerberg, linux-gpio, linux-kernel, Andy Shevchenko,
Linus Walleij, Paul Cercueil
On Mon, 30 Oct 2023 14:07:18 +0200
Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> With the help of EXPORT_NS_GPL_DEV_PM_OPS() and
> NOIRQ_SYSTEM_SLEEP_PM_OPS() we may convert PM ops functions to become
> static. This also takes into account the PM configuration options such
> as CONFIG_PM and CONFIG_PM_SLEEP. Hence the first step is to provide
> a generic PM ops structure that can be used by drivers directly.
It's a good thing to do, but if rolling a v3, should mention that the export
moves into the namespace.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Other than that,
LGTM
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> ---
> drivers/pinctrl/intel/pinctrl-intel.c | 8 +++++---
> drivers/pinctrl/intel/pinctrl-intel.h | 4 ++--
> 2 files changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c
> index b19527a8728e..9fbdc7bfa65c 100644
> --- a/drivers/pinctrl/intel/pinctrl-intel.c
> +++ b/drivers/pinctrl/intel/pinctrl-intel.c
> @@ -899,7 +899,7 @@ static int intel_gpio_to_pin(struct intel_pinctrl *pctrl, unsigned int offset,
> *
> * Return: a GPIO offset, or negative error code if translation can't be done.
> */
> -static __maybe_unused int intel_pin_to_gpio(struct intel_pinctrl *pctrl, int pin)
> +static int intel_pin_to_gpio(struct intel_pinctrl *pctrl, int pin)
> {
> const struct intel_community *community;
> const struct intel_padgroup *padgrp;
> @@ -1682,7 +1682,6 @@ const struct intel_pinctrl_soc_data *intel_pinctrl_get_soc_data(struct platform_
> }
> EXPORT_SYMBOL_NS_GPL(intel_pinctrl_get_soc_data, PINCTRL_INTEL);
>
> -#ifdef CONFIG_PM_SLEEP
> static bool __intel_gpio_is_direct_irq(u32 value)
> {
> return (value & PADCFG0_GPIROUTIOXAPIC) && (value & PADCFG0_GPIOTXDIS) &&
> @@ -1883,7 +1882,10 @@ int intel_pinctrl_resume_noirq(struct device *dev)
> return 0;
> }
> EXPORT_SYMBOL_GPL(intel_pinctrl_resume_noirq);
> -#endif
> +
> +EXPORT_NS_GPL_DEV_PM_OPS(intel_pinctrl_pm_ops, PINCTRL_INTEL) = {
> + NOIRQ_SYSTEM_SLEEP_PM_OPS(intel_pinctrl_suspend_noirq, intel_pinctrl_resume_noirq)
> +};
>
> MODULE_AUTHOR("Mathias Nyman <mathias.nyman@linux.intel.com>");
> MODULE_AUTHOR("Mika Westerberg <mika.westerberg@linux.intel.com>");
> diff --git a/drivers/pinctrl/intel/pinctrl-intel.h b/drivers/pinctrl/intel/pinctrl-intel.h
> index 2bb553598e8b..d3f511f97ed9 100644
> --- a/drivers/pinctrl/intel/pinctrl-intel.h
> +++ b/drivers/pinctrl/intel/pinctrl-intel.h
> @@ -255,10 +255,8 @@ struct intel_pinctrl {
> int intel_pinctrl_probe_by_hid(struct platform_device *pdev);
> int intel_pinctrl_probe_by_uid(struct platform_device *pdev);
>
> -#ifdef CONFIG_PM_SLEEP
> int intel_pinctrl_suspend_noirq(struct device *dev);
> int intel_pinctrl_resume_noirq(struct device *dev);
> -#endif
>
> #define INTEL_PINCTRL_PM_OPS(_name) \
> const struct dev_pm_ops _name = { \
> @@ -266,6 +264,8 @@ const struct dev_pm_ops _name = { \
> intel_pinctrl_resume_noirq) \
> }
>
> +extern const struct dev_pm_ops intel_pinctrl_pm_ops;
> +
> struct intel_community *intel_get_community(struct intel_pinctrl *pctrl, unsigned int pin);
>
> int intel_get_groups_count(struct pinctrl_dev *pctldev);
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v3 01/17] pinctrl: intel: Provide Intel pin control wide PM ops structure
2023-10-30 19:41 ` Jonathan Cameron
@ 2023-10-30 19:43 ` Jonathan Cameron
2023-10-30 19:56 ` Andy Shevchenko
0 siblings, 1 reply; 24+ messages in thread
From: Jonathan Cameron @ 2023-10-30 19:43 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Mika Westerberg, linux-gpio, linux-kernel, Andy Shevchenko,
Linus Walleij, Paul Cercueil
On Mon, 30 Oct 2023 19:41:12 +0000
Jonathan Cameron <Jonathan.Cameron@Huawei.com> wrote:
> On Mon, 30 Oct 2023 14:07:18 +0200
> Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
>
> > With the help of EXPORT_NS_GPL_DEV_PM_OPS() and
> > NOIRQ_SYSTEM_SLEEP_PM_OPS() we may convert PM ops functions to become
> > static. This also takes into account the PM configuration options such
> > as CONFIG_PM and CONFIG_PM_SLEEP. Hence the first step is to provide
> > a generic PM ops structure that can be used by drivers directly.
>
> It's a good thing to do, but if rolling a v3, should mention that the export
> moves into the namespace.
>
> >
> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Other than that,
> LGTM
>
> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
>
Actually looking at usecase, why isn't the absence of an EXPORT in
the !CONFIG_PM_SLEEP path not a problem for bisection of this series given
you haven't yet protected the users?
Jonathan
> > ---
> > drivers/pinctrl/intel/pinctrl-intel.c | 8 +++++---
> > drivers/pinctrl/intel/pinctrl-intel.h | 4 ++--
> > 2 files changed, 7 insertions(+), 5 deletions(-)
> >
> > diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c
> > index b19527a8728e..9fbdc7bfa65c 100644
> > --- a/drivers/pinctrl/intel/pinctrl-intel.c
> > +++ b/drivers/pinctrl/intel/pinctrl-intel.c
> > @@ -899,7 +899,7 @@ static int intel_gpio_to_pin(struct intel_pinctrl *pctrl, unsigned int offset,
> > *
> > * Return: a GPIO offset, or negative error code if translation can't be done.
> > */
> > -static __maybe_unused int intel_pin_to_gpio(struct intel_pinctrl *pctrl, int pin)
> > +static int intel_pin_to_gpio(struct intel_pinctrl *pctrl, int pin)
> > {
> > const struct intel_community *community;
> > const struct intel_padgroup *padgrp;
> > @@ -1682,7 +1682,6 @@ const struct intel_pinctrl_soc_data *intel_pinctrl_get_soc_data(struct platform_
> > }
> > EXPORT_SYMBOL_NS_GPL(intel_pinctrl_get_soc_data, PINCTRL_INTEL);
> >
> > -#ifdef CONFIG_PM_SLEEP
> > static bool __intel_gpio_is_direct_irq(u32 value)
> > {
> > return (value & PADCFG0_GPIROUTIOXAPIC) && (value & PADCFG0_GPIOTXDIS) &&
> > @@ -1883,7 +1882,10 @@ int intel_pinctrl_resume_noirq(struct device *dev)
> > return 0;
> > }
> > EXPORT_SYMBOL_GPL(intel_pinctrl_resume_noirq);
> > -#endif
> > +
> > +EXPORT_NS_GPL_DEV_PM_OPS(intel_pinctrl_pm_ops, PINCTRL_INTEL) = {
> > + NOIRQ_SYSTEM_SLEEP_PM_OPS(intel_pinctrl_suspend_noirq, intel_pinctrl_resume_noirq)
> > +};
> >
> > MODULE_AUTHOR("Mathias Nyman <mathias.nyman@linux.intel.com>");
> > MODULE_AUTHOR("Mika Westerberg <mika.westerberg@linux.intel.com>");
> > diff --git a/drivers/pinctrl/intel/pinctrl-intel.h b/drivers/pinctrl/intel/pinctrl-intel.h
> > index 2bb553598e8b..d3f511f97ed9 100644
> > --- a/drivers/pinctrl/intel/pinctrl-intel.h
> > +++ b/drivers/pinctrl/intel/pinctrl-intel.h
> > @@ -255,10 +255,8 @@ struct intel_pinctrl {
> > int intel_pinctrl_probe_by_hid(struct platform_device *pdev);
> > int intel_pinctrl_probe_by_uid(struct platform_device *pdev);
> >
> > -#ifdef CONFIG_PM_SLEEP
> > int intel_pinctrl_suspend_noirq(struct device *dev);
> > int intel_pinctrl_resume_noirq(struct device *dev);
> > -#endif
> >
> > #define INTEL_PINCTRL_PM_OPS(_name) \
> > const struct dev_pm_ops _name = { \
> > @@ -266,6 +264,8 @@ const struct dev_pm_ops _name = { \
> > intel_pinctrl_resume_noirq) \
> > }
> >
> > +extern const struct dev_pm_ops intel_pinctrl_pm_ops;
> > +
> > struct intel_community *intel_get_community(struct intel_pinctrl *pctrl, unsigned int pin);
> >
> > int intel_get_groups_count(struct pinctrl_dev *pctldev);
>
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v3 01/17] pinctrl: intel: Provide Intel pin control wide PM ops structure
2023-10-30 19:43 ` Jonathan Cameron
@ 2023-10-30 19:56 ` Andy Shevchenko
0 siblings, 0 replies; 24+ messages in thread
From: Andy Shevchenko @ 2023-10-30 19:56 UTC (permalink / raw)
To: Jonathan Cameron
Cc: Mika Westerberg, linux-gpio, linux-kernel, Linus Walleij,
Paul Cercueil
On Mon, Oct 30, 2023 at 07:43:50PM +0000, Jonathan Cameron wrote:
> On Mon, 30 Oct 2023 19:41:12 +0000
> Jonathan Cameron <Jonathan.Cameron@Huawei.com> wrote:
...
> Actually looking at usecase, why isn't the absence of an EXPORT in
> the !CONFIG_PM_SLEEP path not a problem for bisection of this series given
> you haven't yet protected the users?
I'm not sure I got the issue you are trying to point out.
Between first and last patches the main driver exports two things: the PM ops
functions, which are _always_ been exported and PM ops structure, which is
exported only when CONFIG_PM_SLEEP=y. Every converted user has pm_sleep_ptr()
guard added so it shouldn't be a problem. What exactly did I miss?
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH v3 02/17] pinctrl: alderlake: Switch to use Intel pin control PM ops
2023-10-30 12:07 [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper Andy Shevchenko
2023-10-30 12:07 ` [PATCH v3 01/17] pinctrl: intel: Provide Intel pin control wide PM ops structure Andy Shevchenko
@ 2023-10-30 12:07 ` Andy Shevchenko
2023-10-30 12:07 ` [PATCH v3 03/17] pinctrl: broxton: " Andy Shevchenko
` (16 subsequent siblings)
18 siblings, 0 replies; 24+ messages in thread
From: Andy Shevchenko @ 2023-10-30 12:07 UTC (permalink / raw)
To: Andy Shevchenko, Mika Westerberg, linux-gpio, linux-kernel
Cc: Andy Shevchenko, Linus Walleij, Paul Cercueil, Jonathan Cameron
The main driver conditionally exports the PM ops structure.
Switch this driver to use it instead of customly wrapped one.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/pinctrl/intel/pinctrl-alderlake.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/pinctrl/intel/pinctrl-alderlake.c b/drivers/pinctrl/intel/pinctrl-alderlake.c
index 4a37dc273d63..7d9948e5f422 100644
--- a/drivers/pinctrl/intel/pinctrl-alderlake.c
+++ b/drivers/pinctrl/intel/pinctrl-alderlake.c
@@ -9,6 +9,7 @@
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
+#include <linux/pm.h>
#include <linux/pinctrl/pinctrl.h>
@@ -733,14 +734,12 @@ static const struct acpi_device_id adl_pinctrl_acpi_match[] = {
};
MODULE_DEVICE_TABLE(acpi, adl_pinctrl_acpi_match);
-static INTEL_PINCTRL_PM_OPS(adl_pinctrl_pm_ops);
-
static struct platform_driver adl_pinctrl_driver = {
.probe = intel_pinctrl_probe_by_hid,
.driver = {
.name = "alderlake-pinctrl",
.acpi_match_table = adl_pinctrl_acpi_match,
- .pm = &adl_pinctrl_pm_ops,
+ .pm = pm_sleep_ptr(&intel_pinctrl_pm_ops),
},
};
module_platform_driver(adl_pinctrl_driver);
--
2.40.0.1.gaa8946217a0b
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v3 03/17] pinctrl: broxton: Switch to use Intel pin control PM ops
2023-10-30 12:07 [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper Andy Shevchenko
2023-10-30 12:07 ` [PATCH v3 01/17] pinctrl: intel: Provide Intel pin control wide PM ops structure Andy Shevchenko
2023-10-30 12:07 ` [PATCH v3 02/17] pinctrl: alderlake: Switch to use Intel pin control PM ops Andy Shevchenko
@ 2023-10-30 12:07 ` Andy Shevchenko
2023-10-30 12:07 ` [PATCH v3 04/17] pinctrl: cannonlake: " Andy Shevchenko
` (15 subsequent siblings)
18 siblings, 0 replies; 24+ messages in thread
From: Andy Shevchenko @ 2023-10-30 12:07 UTC (permalink / raw)
To: Andy Shevchenko, Mika Westerberg, linux-gpio, linux-kernel
Cc: Andy Shevchenko, Linus Walleij, Paul Cercueil, Jonathan Cameron
The main driver conditionally exports the PM ops structure.
Switch this driver to use it instead of customly wrapped one.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/pinctrl/intel/pinctrl-broxton.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/pinctrl/intel/pinctrl-broxton.c b/drivers/pinctrl/intel/pinctrl-broxton.c
index 3118c7c8842f..d99541676630 100644
--- a/drivers/pinctrl/intel/pinctrl-broxton.c
+++ b/drivers/pinctrl/intel/pinctrl-broxton.c
@@ -9,6 +9,7 @@
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
+#include <linux/pm.h>
#include <linux/pinctrl/pinctrl.h>
@@ -1000,14 +1001,12 @@ static const struct platform_device_id bxt_pinctrl_platform_ids[] = {
};
MODULE_DEVICE_TABLE(platform, bxt_pinctrl_platform_ids);
-static INTEL_PINCTRL_PM_OPS(bxt_pinctrl_pm_ops);
-
static struct platform_driver bxt_pinctrl_driver = {
.probe = intel_pinctrl_probe_by_uid,
.driver = {
.name = "broxton-pinctrl",
.acpi_match_table = bxt_pinctrl_acpi_match,
- .pm = &bxt_pinctrl_pm_ops,
+ .pm = pm_sleep_ptr(&intel_pinctrl_pm_ops),
},
.id_table = bxt_pinctrl_platform_ids,
};
--
2.40.0.1.gaa8946217a0b
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v3 04/17] pinctrl: cannonlake: Switch to use Intel pin control PM ops
2023-10-30 12:07 [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper Andy Shevchenko
` (2 preceding siblings ...)
2023-10-30 12:07 ` [PATCH v3 03/17] pinctrl: broxton: " Andy Shevchenko
@ 2023-10-30 12:07 ` Andy Shevchenko
2023-10-30 12:07 ` [PATCH v3 05/17] pinctrl: cedarfork: " Andy Shevchenko
` (14 subsequent siblings)
18 siblings, 0 replies; 24+ messages in thread
From: Andy Shevchenko @ 2023-10-30 12:07 UTC (permalink / raw)
To: Andy Shevchenko, Mika Westerberg, linux-gpio, linux-kernel
Cc: Andy Shevchenko, Linus Walleij, Paul Cercueil, Jonathan Cameron
The main driver conditionally exports the PM ops structure.
Switch this driver to use it instead of customly wrapped one.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/pinctrl/intel/pinctrl-cannonlake.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/pinctrl/intel/pinctrl-cannonlake.c b/drivers/pinctrl/intel/pinctrl-cannonlake.c
index 95976abfb785..1aa09f950be1 100644
--- a/drivers/pinctrl/intel/pinctrl-cannonlake.c
+++ b/drivers/pinctrl/intel/pinctrl-cannonlake.c
@@ -10,6 +10,7 @@
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
+#include <linux/pm.h>
#include <linux/pinctrl/pinctrl.h>
@@ -824,14 +825,12 @@ static const struct acpi_device_id cnl_pinctrl_acpi_match[] = {
};
MODULE_DEVICE_TABLE(acpi, cnl_pinctrl_acpi_match);
-static INTEL_PINCTRL_PM_OPS(cnl_pinctrl_pm_ops);
-
static struct platform_driver cnl_pinctrl_driver = {
.probe = intel_pinctrl_probe_by_hid,
.driver = {
.name = "cannonlake-pinctrl",
.acpi_match_table = cnl_pinctrl_acpi_match,
- .pm = &cnl_pinctrl_pm_ops,
+ .pm = pm_sleep_ptr(&intel_pinctrl_pm_ops),
},
};
module_platform_driver(cnl_pinctrl_driver);
--
2.40.0.1.gaa8946217a0b
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v3 05/17] pinctrl: cedarfork: Switch to use Intel pin control PM ops
2023-10-30 12:07 [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper Andy Shevchenko
` (3 preceding siblings ...)
2023-10-30 12:07 ` [PATCH v3 04/17] pinctrl: cannonlake: " Andy Shevchenko
@ 2023-10-30 12:07 ` Andy Shevchenko
2023-10-30 12:07 ` [PATCH v3 06/17] pinctrl: denverton: " Andy Shevchenko
` (13 subsequent siblings)
18 siblings, 0 replies; 24+ messages in thread
From: Andy Shevchenko @ 2023-10-30 12:07 UTC (permalink / raw)
To: Andy Shevchenko, Mika Westerberg, linux-gpio, linux-kernel
Cc: Andy Shevchenko, Linus Walleij, Paul Cercueil, Jonathan Cameron
The main driver conditionally exports the PM ops structure.
Switch this driver to use it instead of customly wrapped one.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/pinctrl/intel/pinctrl-cedarfork.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/pinctrl/intel/pinctrl-cedarfork.c b/drivers/pinctrl/intel/pinctrl-cedarfork.c
index a20465eb2dc6..48af8930dd1f 100644
--- a/drivers/pinctrl/intel/pinctrl-cedarfork.c
+++ b/drivers/pinctrl/intel/pinctrl-cedarfork.c
@@ -9,6 +9,7 @@
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
+#include <linux/pm.h>
#include <linux/pinctrl/pinctrl.h>
@@ -319,8 +320,6 @@ static const struct intel_pinctrl_soc_data cdf_soc_data = {
.ncommunities = ARRAY_SIZE(cdf_communities),
};
-static INTEL_PINCTRL_PM_OPS(cdf_pinctrl_pm_ops);
-
static const struct acpi_device_id cdf_pinctrl_acpi_match[] = {
{ "INTC3001", (kernel_ulong_t)&cdf_soc_data },
{ }
@@ -332,7 +331,7 @@ static struct platform_driver cdf_pinctrl_driver = {
.driver = {
.name = "cedarfork-pinctrl",
.acpi_match_table = cdf_pinctrl_acpi_match,
- .pm = &cdf_pinctrl_pm_ops,
+ .pm = pm_sleep_ptr(&intel_pinctrl_pm_ops),
},
};
--
2.40.0.1.gaa8946217a0b
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v3 06/17] pinctrl: denverton: Switch to use Intel pin control PM ops
2023-10-30 12:07 [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper Andy Shevchenko
` (4 preceding siblings ...)
2023-10-30 12:07 ` [PATCH v3 05/17] pinctrl: cedarfork: " Andy Shevchenko
@ 2023-10-30 12:07 ` Andy Shevchenko
2023-10-30 12:07 ` [PATCH v3 07/17] pinctrl: elkhartlake: " Andy Shevchenko
` (12 subsequent siblings)
18 siblings, 0 replies; 24+ messages in thread
From: Andy Shevchenko @ 2023-10-30 12:07 UTC (permalink / raw)
To: Andy Shevchenko, Mika Westerberg, linux-gpio, linux-kernel
Cc: Andy Shevchenko, Linus Walleij, Paul Cercueil, Jonathan Cameron
The main driver conditionally exports the PM ops structure.
Switch this driver to use it instead of customly wrapped one.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/pinctrl/intel/pinctrl-denverton.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/pinctrl/intel/pinctrl-denverton.c b/drivers/pinctrl/intel/pinctrl-denverton.c
index 562a4f9188e4..666507f54f27 100644
--- a/drivers/pinctrl/intel/pinctrl-denverton.c
+++ b/drivers/pinctrl/intel/pinctrl-denverton.c
@@ -9,6 +9,7 @@
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
+#include <linux/pm.h>
#include <linux/pinctrl/pinctrl.h>
@@ -249,8 +250,6 @@ static const struct intel_pinctrl_soc_data dnv_soc_data = {
.ncommunities = ARRAY_SIZE(dnv_communities),
};
-static INTEL_PINCTRL_PM_OPS(dnv_pinctrl_pm_ops);
-
static const struct acpi_device_id dnv_pinctrl_acpi_match[] = {
{ "INTC3000", (kernel_ulong_t)&dnv_soc_data },
{ }
@@ -268,7 +267,7 @@ static struct platform_driver dnv_pinctrl_driver = {
.driver = {
.name = "denverton-pinctrl",
.acpi_match_table = dnv_pinctrl_acpi_match,
- .pm = &dnv_pinctrl_pm_ops,
+ .pm = pm_sleep_ptr(&intel_pinctrl_pm_ops),
},
.id_table = dnv_pinctrl_platform_ids,
};
--
2.40.0.1.gaa8946217a0b
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v3 07/17] pinctrl: elkhartlake: Switch to use Intel pin control PM ops
2023-10-30 12:07 [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper Andy Shevchenko
` (5 preceding siblings ...)
2023-10-30 12:07 ` [PATCH v3 06/17] pinctrl: denverton: " Andy Shevchenko
@ 2023-10-30 12:07 ` Andy Shevchenko
2023-10-30 12:07 ` [PATCH v3 08/17] pinctrl: emmitsburg: " Andy Shevchenko
` (11 subsequent siblings)
18 siblings, 0 replies; 24+ messages in thread
From: Andy Shevchenko @ 2023-10-30 12:07 UTC (permalink / raw)
To: Andy Shevchenko, Mika Westerberg, linux-gpio, linux-kernel
Cc: Andy Shevchenko, Linus Walleij, Paul Cercueil, Jonathan Cameron
The main driver conditionally exports the PM ops structure.
Switch this driver to use it instead of customly wrapped one.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/pinctrl/intel/pinctrl-elkhartlake.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/pinctrl/intel/pinctrl-elkhartlake.c b/drivers/pinctrl/intel/pinctrl-elkhartlake.c
index 81581ab85316..1678634ebc06 100644
--- a/drivers/pinctrl/intel/pinctrl-elkhartlake.c
+++ b/drivers/pinctrl/intel/pinctrl-elkhartlake.c
@@ -9,6 +9,7 @@
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
+#include <linux/pm.h>
#include <linux/pinctrl/pinctrl.h>
@@ -485,14 +486,12 @@ static const struct acpi_device_id ehl_pinctrl_acpi_match[] = {
};
MODULE_DEVICE_TABLE(acpi, ehl_pinctrl_acpi_match);
-static INTEL_PINCTRL_PM_OPS(ehl_pinctrl_pm_ops);
-
static struct platform_driver ehl_pinctrl_driver = {
.probe = intel_pinctrl_probe_by_uid,
.driver = {
.name = "elkhartlake-pinctrl",
.acpi_match_table = ehl_pinctrl_acpi_match,
- .pm = &ehl_pinctrl_pm_ops,
+ .pm = pm_sleep_ptr(&intel_pinctrl_pm_ops),
},
};
module_platform_driver(ehl_pinctrl_driver);
--
2.40.0.1.gaa8946217a0b
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v3 08/17] pinctrl: emmitsburg: Switch to use Intel pin control PM ops
2023-10-30 12:07 [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper Andy Shevchenko
` (6 preceding siblings ...)
2023-10-30 12:07 ` [PATCH v3 07/17] pinctrl: elkhartlake: " Andy Shevchenko
@ 2023-10-30 12:07 ` Andy Shevchenko
2023-10-30 12:07 ` [PATCH v3 09/17] pinctrl: geminilake: " Andy Shevchenko
` (10 subsequent siblings)
18 siblings, 0 replies; 24+ messages in thread
From: Andy Shevchenko @ 2023-10-30 12:07 UTC (permalink / raw)
To: Andy Shevchenko, Mika Westerberg, linux-gpio, linux-kernel
Cc: Andy Shevchenko, Linus Walleij, Paul Cercueil, Jonathan Cameron
The main driver conditionally exports the PM ops structure.
Switch this driver to use it instead of customly wrapped one.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/pinctrl/intel/pinctrl-emmitsburg.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/pinctrl/intel/pinctrl-emmitsburg.c b/drivers/pinctrl/intel/pinctrl-emmitsburg.c
index 099ec8351d5f..e4798d32492c 100644
--- a/drivers/pinctrl/intel/pinctrl-emmitsburg.c
+++ b/drivers/pinctrl/intel/pinctrl-emmitsburg.c
@@ -9,6 +9,7 @@
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
+#include <linux/pm.h>
#include <linux/pinctrl/pinctrl.h>
@@ -358,14 +359,12 @@ static const struct acpi_device_id ebg_pinctrl_acpi_match[] = {
};
MODULE_DEVICE_TABLE(acpi, ebg_pinctrl_acpi_match);
-static INTEL_PINCTRL_PM_OPS(ebg_pinctrl_pm_ops);
-
static struct platform_driver ebg_pinctrl_driver = {
.probe = intel_pinctrl_probe_by_hid,
.driver = {
.name = "emmitsburg-pinctrl",
.acpi_match_table = ebg_pinctrl_acpi_match,
- .pm = &ebg_pinctrl_pm_ops,
+ .pm = pm_sleep_ptr(&intel_pinctrl_pm_ops),
},
};
module_platform_driver(ebg_pinctrl_driver);
--
2.40.0.1.gaa8946217a0b
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v3 09/17] pinctrl: geminilake: Switch to use Intel pin control PM ops
2023-10-30 12:07 [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper Andy Shevchenko
` (7 preceding siblings ...)
2023-10-30 12:07 ` [PATCH v3 08/17] pinctrl: emmitsburg: " Andy Shevchenko
@ 2023-10-30 12:07 ` Andy Shevchenko
2023-10-30 12:07 ` [PATCH v3 10/17] pinctrl: icelake: " Andy Shevchenko
` (9 subsequent siblings)
18 siblings, 0 replies; 24+ messages in thread
From: Andy Shevchenko @ 2023-10-30 12:07 UTC (permalink / raw)
To: Andy Shevchenko, Mika Westerberg, linux-gpio, linux-kernel
Cc: Andy Shevchenko, Linus Walleij, Paul Cercueil, Jonathan Cameron
The main driver conditionally exports the PM ops structure.
Switch this driver to use it instead of customly wrapped one.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/pinctrl/intel/pinctrl-geminilake.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/pinctrl/intel/pinctrl-geminilake.c b/drivers/pinctrl/intel/pinctrl-geminilake.c
index 9effa06b61e9..6dcf0ac2059f 100644
--- a/drivers/pinctrl/intel/pinctrl-geminilake.c
+++ b/drivers/pinctrl/intel/pinctrl-geminilake.c
@@ -9,6 +9,7 @@
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
+#include <linux/pm.h>
#include <linux/pinctrl/pinctrl.h>
@@ -447,14 +448,12 @@ static const struct acpi_device_id glk_pinctrl_acpi_match[] = {
};
MODULE_DEVICE_TABLE(acpi, glk_pinctrl_acpi_match);
-static INTEL_PINCTRL_PM_OPS(glk_pinctrl_pm_ops);
-
static struct platform_driver glk_pinctrl_driver = {
.probe = intel_pinctrl_probe_by_uid,
.driver = {
.name = "geminilake-pinctrl",
.acpi_match_table = glk_pinctrl_acpi_match,
- .pm = &glk_pinctrl_pm_ops,
+ .pm = pm_sleep_ptr(&intel_pinctrl_pm_ops),
},
};
--
2.40.0.1.gaa8946217a0b
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v3 10/17] pinctrl: icelake: Switch to use Intel pin control PM ops
2023-10-30 12:07 [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper Andy Shevchenko
` (8 preceding siblings ...)
2023-10-30 12:07 ` [PATCH v3 09/17] pinctrl: geminilake: " Andy Shevchenko
@ 2023-10-30 12:07 ` Andy Shevchenko
2023-10-30 12:07 ` [PATCH v3 11/17] pinctrl: jasperlake: " Andy Shevchenko
` (8 subsequent siblings)
18 siblings, 0 replies; 24+ messages in thread
From: Andy Shevchenko @ 2023-10-30 12:07 UTC (permalink / raw)
To: Andy Shevchenko, Mika Westerberg, linux-gpio, linux-kernel
Cc: Andy Shevchenko, Linus Walleij, Paul Cercueil, Jonathan Cameron
The main driver conditionally exports the PM ops structure.
Switch this driver to use it instead of customly wrapped one.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/pinctrl/intel/pinctrl-icelake.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/pinctrl/intel/pinctrl-icelake.c b/drivers/pinctrl/intel/pinctrl-icelake.c
index 300e1538c8d0..fe3042de891a 100644
--- a/drivers/pinctrl/intel/pinctrl-icelake.c
+++ b/drivers/pinctrl/intel/pinctrl-icelake.c
@@ -10,6 +10,7 @@
#include <linux/acpi.h>
#include <linux/module.h>
#include <linux/platform_device.h>
+#include <linux/pm.h>
#include <linux/pinctrl/pinctrl.h>
@@ -668,8 +669,6 @@ static const struct intel_pinctrl_soc_data icln_soc_data = {
.ncommunities = ARRAY_SIZE(icln_communities),
};
-static INTEL_PINCTRL_PM_OPS(icl_pinctrl_pm_ops);
-
static const struct acpi_device_id icl_pinctrl_acpi_match[] = {
{ "INT3455", (kernel_ulong_t)&icllp_soc_data },
{ "INT34C3", (kernel_ulong_t)&icln_soc_data },
@@ -682,7 +681,7 @@ static struct platform_driver icl_pinctrl_driver = {
.driver = {
.name = "icelake-pinctrl",
.acpi_match_table = icl_pinctrl_acpi_match,
- .pm = &icl_pinctrl_pm_ops,
+ .pm = pm_sleep_ptr(&intel_pinctrl_pm_ops),
},
};
module_platform_driver(icl_pinctrl_driver);
--
2.40.0.1.gaa8946217a0b
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v3 11/17] pinctrl: jasperlake: Switch to use Intel pin control PM ops
2023-10-30 12:07 [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper Andy Shevchenko
` (9 preceding siblings ...)
2023-10-30 12:07 ` [PATCH v3 10/17] pinctrl: icelake: " Andy Shevchenko
@ 2023-10-30 12:07 ` Andy Shevchenko
2023-10-30 12:07 ` [PATCH v3 12/17] pinctrl: lakefield: " Andy Shevchenko
` (7 subsequent siblings)
18 siblings, 0 replies; 24+ messages in thread
From: Andy Shevchenko @ 2023-10-30 12:07 UTC (permalink / raw)
To: Andy Shevchenko, Mika Westerberg, linux-gpio, linux-kernel
Cc: Andy Shevchenko, Linus Walleij, Paul Cercueil, Jonathan Cameron
The main driver conditionally exports the PM ops structure.
Switch this driver to use it instead of customly wrapped one.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/pinctrl/intel/pinctrl-jasperlake.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/pinctrl/intel/pinctrl-jasperlake.c b/drivers/pinctrl/intel/pinctrl-jasperlake.c
index 50f137deed9c..3525480428ea 100644
--- a/drivers/pinctrl/intel/pinctrl-jasperlake.c
+++ b/drivers/pinctrl/intel/pinctrl-jasperlake.c
@@ -9,6 +9,7 @@
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
+#include <linux/pm.h>
#include <linux/pinctrl/pinctrl.h>
@@ -326,14 +327,12 @@ static const struct acpi_device_id jsl_pinctrl_acpi_match[] = {
};
MODULE_DEVICE_TABLE(acpi, jsl_pinctrl_acpi_match);
-static INTEL_PINCTRL_PM_OPS(jsl_pinctrl_pm_ops);
-
static struct platform_driver jsl_pinctrl_driver = {
.probe = intel_pinctrl_probe_by_hid,
.driver = {
.name = "jasperlake-pinctrl",
.acpi_match_table = jsl_pinctrl_acpi_match,
- .pm = &jsl_pinctrl_pm_ops,
+ .pm = pm_sleep_ptr(&intel_pinctrl_pm_ops),
},
};
module_platform_driver(jsl_pinctrl_driver);
--
2.40.0.1.gaa8946217a0b
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v3 12/17] pinctrl: lakefield: Switch to use Intel pin control PM ops
2023-10-30 12:07 [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper Andy Shevchenko
` (10 preceding siblings ...)
2023-10-30 12:07 ` [PATCH v3 11/17] pinctrl: jasperlake: " Andy Shevchenko
@ 2023-10-30 12:07 ` Andy Shevchenko
2023-10-30 12:07 ` [PATCH v3 13/17] pinctrl: lewisburg: " Andy Shevchenko
` (6 subsequent siblings)
18 siblings, 0 replies; 24+ messages in thread
From: Andy Shevchenko @ 2023-10-30 12:07 UTC (permalink / raw)
To: Andy Shevchenko, Mika Westerberg, linux-gpio, linux-kernel
Cc: Andy Shevchenko, Linus Walleij, Paul Cercueil, Jonathan Cameron
The main driver conditionally exports the PM ops structure.
Switch this driver to use it instead of customly wrapped one.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/pinctrl/intel/pinctrl-lakefield.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/pinctrl/intel/pinctrl-lakefield.c b/drivers/pinctrl/intel/pinctrl-lakefield.c
index 0b94e11b78ac..adef85db82ca 100644
--- a/drivers/pinctrl/intel/pinctrl-lakefield.c
+++ b/drivers/pinctrl/intel/pinctrl-lakefield.c
@@ -9,6 +9,7 @@
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
+#include <linux/pm.h>
#include <linux/pinctrl/pinctrl.h>
@@ -347,14 +348,12 @@ static const struct acpi_device_id lkf_pinctrl_acpi_match[] = {
};
MODULE_DEVICE_TABLE(acpi, lkf_pinctrl_acpi_match);
-static INTEL_PINCTRL_PM_OPS(lkf_pinctrl_pm_ops);
-
static struct platform_driver lkf_pinctrl_driver = {
.probe = intel_pinctrl_probe_by_hid,
.driver = {
.name = "lakefield-pinctrl",
.acpi_match_table = lkf_pinctrl_acpi_match,
- .pm = &lkf_pinctrl_pm_ops,
+ .pm = pm_sleep_ptr(&intel_pinctrl_pm_ops),
},
};
module_platform_driver(lkf_pinctrl_driver);
--
2.40.0.1.gaa8946217a0b
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v3 13/17] pinctrl: lewisburg: Switch to use Intel pin control PM ops
2023-10-30 12:07 [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper Andy Shevchenko
` (11 preceding siblings ...)
2023-10-30 12:07 ` [PATCH v3 12/17] pinctrl: lakefield: " Andy Shevchenko
@ 2023-10-30 12:07 ` Andy Shevchenko
2023-10-30 12:07 ` [PATCH v3 14/17] pinctrl: meteorlake: " Andy Shevchenko
` (5 subsequent siblings)
18 siblings, 0 replies; 24+ messages in thread
From: Andy Shevchenko @ 2023-10-30 12:07 UTC (permalink / raw)
To: Andy Shevchenko, Mika Westerberg, linux-gpio, linux-kernel
Cc: Andy Shevchenko, Linus Walleij, Paul Cercueil, Jonathan Cameron
The main driver conditionally exports the PM ops structure.
Switch this driver to use it instead of customly wrapped one.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/pinctrl/intel/pinctrl-lewisburg.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/pinctrl/intel/pinctrl-lewisburg.c b/drivers/pinctrl/intel/pinctrl-lewisburg.c
index aa725a5d62b9..a304d30ea9ed 100644
--- a/drivers/pinctrl/intel/pinctrl-lewisburg.c
+++ b/drivers/pinctrl/intel/pinctrl-lewisburg.c
@@ -9,6 +9,7 @@
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
+#include <linux/pm.h>
#include <linux/pinctrl/pinctrl.h>
@@ -301,8 +302,6 @@ static const struct intel_pinctrl_soc_data lbg_soc_data = {
.ncommunities = ARRAY_SIZE(lbg_communities),
};
-static INTEL_PINCTRL_PM_OPS(lbg_pinctrl_pm_ops);
-
static const struct acpi_device_id lbg_pinctrl_acpi_match[] = {
{ "INT3536", (kernel_ulong_t)&lbg_soc_data },
{ }
@@ -314,7 +313,7 @@ static struct platform_driver lbg_pinctrl_driver = {
.driver = {
.name = "lewisburg-pinctrl",
.acpi_match_table = lbg_pinctrl_acpi_match,
- .pm = &lbg_pinctrl_pm_ops,
+ .pm = pm_sleep_ptr(&intel_pinctrl_pm_ops),
},
};
module_platform_driver(lbg_pinctrl_driver);
--
2.40.0.1.gaa8946217a0b
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v3 14/17] pinctrl: meteorlake: Switch to use Intel pin control PM ops
2023-10-30 12:07 [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper Andy Shevchenko
` (12 preceding siblings ...)
2023-10-30 12:07 ` [PATCH v3 13/17] pinctrl: lewisburg: " Andy Shevchenko
@ 2023-10-30 12:07 ` Andy Shevchenko
2023-10-30 12:07 ` [PATCH v3 15/17] pinctrl: sunrisepoint: " Andy Shevchenko
` (4 subsequent siblings)
18 siblings, 0 replies; 24+ messages in thread
From: Andy Shevchenko @ 2023-10-30 12:07 UTC (permalink / raw)
To: Andy Shevchenko, Mika Westerberg, linux-gpio, linux-kernel
Cc: Andy Shevchenko, Linus Walleij, Paul Cercueil, Jonathan Cameron
The main driver conditionally exports the PM ops structure.
Switch this driver to use it instead of customly wrapped one.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/pinctrl/intel/pinctrl-meteorlake.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/pinctrl/intel/pinctrl-meteorlake.c b/drivers/pinctrl/intel/pinctrl-meteorlake.c
index 7ced2b402dce..cc44890c6699 100644
--- a/drivers/pinctrl/intel/pinctrl-meteorlake.c
+++ b/drivers/pinctrl/intel/pinctrl-meteorlake.c
@@ -9,6 +9,7 @@
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
+#include <linux/pm.h>
#include <linux/pinctrl/pinctrl.h>
@@ -589,14 +590,12 @@ static const struct acpi_device_id mtl_pinctrl_acpi_match[] = {
};
MODULE_DEVICE_TABLE(acpi, mtl_pinctrl_acpi_match);
-static INTEL_PINCTRL_PM_OPS(mtl_pinctrl_pm_ops);
-
static struct platform_driver mtl_pinctrl_driver = {
.probe = intel_pinctrl_probe_by_hid,
.driver = {
.name = "meteorlake-pinctrl",
.acpi_match_table = mtl_pinctrl_acpi_match,
- .pm = &mtl_pinctrl_pm_ops,
+ .pm = pm_sleep_ptr(&intel_pinctrl_pm_ops),
},
};
module_platform_driver(mtl_pinctrl_driver);
--
2.40.0.1.gaa8946217a0b
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v3 15/17] pinctrl: sunrisepoint: Switch to use Intel pin control PM ops
2023-10-30 12:07 [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper Andy Shevchenko
` (13 preceding siblings ...)
2023-10-30 12:07 ` [PATCH v3 14/17] pinctrl: meteorlake: " Andy Shevchenko
@ 2023-10-30 12:07 ` Andy Shevchenko
2023-10-30 12:07 ` [PATCH v3 16/17] pinctrl: tigerlake: " Andy Shevchenko
` (3 subsequent siblings)
18 siblings, 0 replies; 24+ messages in thread
From: Andy Shevchenko @ 2023-10-30 12:07 UTC (permalink / raw)
To: Andy Shevchenko, Mika Westerberg, linux-gpio, linux-kernel
Cc: Andy Shevchenko, Linus Walleij, Paul Cercueil, Jonathan Cameron
The main driver conditionally exports the PM ops structure.
Switch this driver to use it instead of customly wrapped one.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/pinctrl/intel/pinctrl-sunrisepoint.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/pinctrl/intel/pinctrl-sunrisepoint.c b/drivers/pinctrl/intel/pinctrl-sunrisepoint.c
index b7a40ab0bca8..55df9d2cfb1b 100644
--- a/drivers/pinctrl/intel/pinctrl-sunrisepoint.c
+++ b/drivers/pinctrl/intel/pinctrl-sunrisepoint.c
@@ -10,6 +10,7 @@
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
+#include <linux/pm.h>
#include <linux/pinctrl/pinctrl.h>
@@ -579,14 +580,12 @@ static const struct acpi_device_id spt_pinctrl_acpi_match[] = {
};
MODULE_DEVICE_TABLE(acpi, spt_pinctrl_acpi_match);
-static INTEL_PINCTRL_PM_OPS(spt_pinctrl_pm_ops);
-
static struct platform_driver spt_pinctrl_driver = {
.probe = intel_pinctrl_probe_by_hid,
.driver = {
.name = "sunrisepoint-pinctrl",
.acpi_match_table = spt_pinctrl_acpi_match,
- .pm = &spt_pinctrl_pm_ops,
+ .pm = pm_sleep_ptr(&intel_pinctrl_pm_ops),
},
};
--
2.40.0.1.gaa8946217a0b
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v3 16/17] pinctrl: tigerlake: Switch to use Intel pin control PM ops
2023-10-30 12:07 [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper Andy Shevchenko
` (14 preceding siblings ...)
2023-10-30 12:07 ` [PATCH v3 15/17] pinctrl: sunrisepoint: " Andy Shevchenko
@ 2023-10-30 12:07 ` Andy Shevchenko
2023-10-30 12:07 ` [PATCH v3 17/17] pinctrl: intel: Make PM ops functions static Andy Shevchenko
` (2 subsequent siblings)
18 siblings, 0 replies; 24+ messages in thread
From: Andy Shevchenko @ 2023-10-30 12:07 UTC (permalink / raw)
To: Andy Shevchenko, Mika Westerberg, linux-gpio, linux-kernel
Cc: Andy Shevchenko, Linus Walleij, Paul Cercueil, Jonathan Cameron
The main driver conditionally exports the PM ops structure.
Switch this driver to use it instead of customly wrapped one.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/pinctrl/intel/pinctrl-tigerlake.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/pinctrl/intel/pinctrl-tigerlake.c b/drivers/pinctrl/intel/pinctrl-tigerlake.c
index 4768a69a9258..80cd7a06fe5a 100644
--- a/drivers/pinctrl/intel/pinctrl-tigerlake.c
+++ b/drivers/pinctrl/intel/pinctrl-tigerlake.c
@@ -10,6 +10,7 @@
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
+#include <linux/pm.h>
#include <linux/pinctrl/pinctrl.h>
@@ -743,14 +744,12 @@ static const struct acpi_device_id tgl_pinctrl_acpi_match[] = {
};
MODULE_DEVICE_TABLE(acpi, tgl_pinctrl_acpi_match);
-static INTEL_PINCTRL_PM_OPS(tgl_pinctrl_pm_ops);
-
static struct platform_driver tgl_pinctrl_driver = {
.probe = intel_pinctrl_probe_by_hid,
.driver = {
.name = "tigerlake-pinctrl",
.acpi_match_table = tgl_pinctrl_acpi_match,
- .pm = &tgl_pinctrl_pm_ops,
+ .pm = pm_sleep_ptr(&intel_pinctrl_pm_ops),
},
};
module_platform_driver(tgl_pinctrl_driver);
--
2.40.0.1.gaa8946217a0b
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH v3 17/17] pinctrl: intel: Make PM ops functions static
2023-10-30 12:07 [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper Andy Shevchenko
` (15 preceding siblings ...)
2023-10-30 12:07 ` [PATCH v3 16/17] pinctrl: tigerlake: " Andy Shevchenko
@ 2023-10-30 12:07 ` Andy Shevchenko
2023-11-02 12:57 ` [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper Linus Walleij
2023-11-10 6:14 ` Mika Westerberg
18 siblings, 0 replies; 24+ messages in thread
From: Andy Shevchenko @ 2023-10-30 12:07 UTC (permalink / raw)
To: Andy Shevchenko, Mika Westerberg, linux-gpio, linux-kernel
Cc: Andy Shevchenko, Linus Walleij, Paul Cercueil, Jonathan Cameron
No more users outside of the main module.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/pinctrl/intel/pinctrl-intel.c | 6 ++----
drivers/pinctrl/intel/pinctrl-intel.h | 9 ---------
2 files changed, 2 insertions(+), 13 deletions(-)
diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c
index 9fbdc7bfa65c..f1d8f7e0d9b7 100644
--- a/drivers/pinctrl/intel/pinctrl-intel.c
+++ b/drivers/pinctrl/intel/pinctrl-intel.c
@@ -1727,7 +1727,7 @@ static bool intel_pinctrl_should_save(struct intel_pinctrl *pctrl, unsigned int
return false;
}
-int intel_pinctrl_suspend_noirq(struct device *dev)
+static int intel_pinctrl_suspend_noirq(struct device *dev)
{
struct intel_pinctrl *pctrl = dev_get_drvdata(dev);
struct intel_community_context *communities;
@@ -1770,7 +1770,6 @@ int intel_pinctrl_suspend_noirq(struct device *dev)
return 0;
}
-EXPORT_SYMBOL_GPL(intel_pinctrl_suspend_noirq);
static bool intel_gpio_update_reg(void __iomem *reg, u32 mask, u32 value)
{
@@ -1837,7 +1836,7 @@ static void intel_restore_padcfg(struct intel_pinctrl *pctrl, unsigned int pin,
dev_dbg(dev, "restored pin %u padcfg%u %#08x\n", pin, n, readl(padcfg));
}
-int intel_pinctrl_resume_noirq(struct device *dev)
+static int intel_pinctrl_resume_noirq(struct device *dev)
{
struct intel_pinctrl *pctrl = dev_get_drvdata(dev);
const struct intel_community_context *communities;
@@ -1881,7 +1880,6 @@ int intel_pinctrl_resume_noirq(struct device *dev)
return 0;
}
-EXPORT_SYMBOL_GPL(intel_pinctrl_resume_noirq);
EXPORT_NS_GPL_DEV_PM_OPS(intel_pinctrl_pm_ops, PINCTRL_INTEL) = {
NOIRQ_SYSTEM_SLEEP_PM_OPS(intel_pinctrl_suspend_noirq, intel_pinctrl_resume_noirq)
diff --git a/drivers/pinctrl/intel/pinctrl-intel.h b/drivers/pinctrl/intel/pinctrl-intel.h
index d3f511f97ed9..e7d911a65584 100644
--- a/drivers/pinctrl/intel/pinctrl-intel.h
+++ b/drivers/pinctrl/intel/pinctrl-intel.h
@@ -255,15 +255,6 @@ struct intel_pinctrl {
int intel_pinctrl_probe_by_hid(struct platform_device *pdev);
int intel_pinctrl_probe_by_uid(struct platform_device *pdev);
-int intel_pinctrl_suspend_noirq(struct device *dev);
-int intel_pinctrl_resume_noirq(struct device *dev);
-
-#define INTEL_PINCTRL_PM_OPS(_name) \
-const struct dev_pm_ops _name = { \
- SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(intel_pinctrl_suspend_noirq, \
- intel_pinctrl_resume_noirq) \
-}
-
extern const struct dev_pm_ops intel_pinctrl_pm_ops;
struct intel_community *intel_get_community(struct intel_pinctrl *pctrl, unsigned int pin);
--
2.40.0.1.gaa8946217a0b
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper
2023-10-30 12:07 [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper Andy Shevchenko
` (16 preceding siblings ...)
2023-10-30 12:07 ` [PATCH v3 17/17] pinctrl: intel: Make PM ops functions static Andy Shevchenko
@ 2023-11-02 12:57 ` Linus Walleij
2023-11-10 6:14 ` Mika Westerberg
18 siblings, 0 replies; 24+ messages in thread
From: Linus Walleij @ 2023-11-02 12:57 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Mika Westerberg, linux-gpio, linux-kernel, Andy Shevchenko,
Paul Cercueil, Jonathan Cameron
On Mon, Oct 30, 2023 at 1:07 PM Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:
> Intel pin control drivers use NOIRQ variant of the PM callbacks.
> To make them smaller and less error prone against different
> kernel configurations (with possible defined but not used variables)
> switch to use NOIRQ PM helper.
Makes sense. The series:
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper
2023-10-30 12:07 [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper Andy Shevchenko
` (17 preceding siblings ...)
2023-11-02 12:57 ` [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper Linus Walleij
@ 2023-11-10 6:14 ` Mika Westerberg
2023-11-13 11:35 ` Andy Shevchenko
18 siblings, 1 reply; 24+ messages in thread
From: Mika Westerberg @ 2023-11-10 6:14 UTC (permalink / raw)
To: Andy Shevchenko
Cc: linux-gpio, linux-kernel, Andy Shevchenko, Linus Walleij,
Paul Cercueil, Jonathan Cameron
Hi Andy,
On Mon, Oct 30, 2023 at 02:07:17PM +0200, Andy Shevchenko wrote:
> Intel pin control drivers use NOIRQ variant of the PM callbacks.
> To make them smaller and less error prone against different
> kernel configurations (with possible defined but not used variables)
> switch to use NOIRQ PM helper.
>
> Changelog v3:
> - dropped applied patches
> - dropped MediaTek patch for now
> - split Intel patch to the series using suggection by Paul
>
> Changelog v2:
> - rewritten commit message in patch 1 (Rafael)
> - converted non-Intel pin control drivers as well
> - added couple of kinda related patches to use pm_ptr()
>
> Andy Shevchenko (17):
> pinctrl: intel: Provide Intel pin control wide PM ops structure
> pinctrl: alderlake: Switch to use Intel pin control PM ops
> pinctrl: broxton: Switch to use Intel pin control PM ops
> pinctrl: cannonlake: Switch to use Intel pin control PM ops
> pinctrl: cedarfork: Switch to use Intel pin control PM ops
> pinctrl: denverton: Switch to use Intel pin control PM ops
> pinctrl: elkhartlake: Switch to use Intel pin control PM ops
> pinctrl: emmitsburg: Switch to use Intel pin control PM ops
> pinctrl: geminilake: Switch to use Intel pin control PM ops
> pinctrl: icelake: Switch to use Intel pin control PM ops
> pinctrl: jasperlake: Switch to use Intel pin control PM ops
> pinctrl: lakefield: Switch to use Intel pin control PM ops
> pinctrl: lewisburg: Switch to use Intel pin control PM ops
> pinctrl: meteorlake: Switch to use Intel pin control PM ops
> pinctrl: sunrisepoint: Switch to use Intel pin control PM ops
> pinctrl: tigerlake: Switch to use Intel pin control PM ops
> pinctrl: intel: Make PM ops functions static
>
> drivers/pinctrl/intel/pinctrl-alderlake.c | 5 ++---
> drivers/pinctrl/intel/pinctrl-broxton.c | 5 ++---
> drivers/pinctrl/intel/pinctrl-cannonlake.c | 5 ++---
> drivers/pinctrl/intel/pinctrl-cedarfork.c | 5 ++---
> drivers/pinctrl/intel/pinctrl-denverton.c | 5 ++---
> drivers/pinctrl/intel/pinctrl-elkhartlake.c | 5 ++---
> drivers/pinctrl/intel/pinctrl-emmitsburg.c | 5 ++---
> drivers/pinctrl/intel/pinctrl-geminilake.c | 5 ++---
> drivers/pinctrl/intel/pinctrl-icelake.c | 5 ++---
> drivers/pinctrl/intel/pinctrl-intel.c | 14 +++++++-------
> drivers/pinctrl/intel/pinctrl-intel.h | 11 +----------
> drivers/pinctrl/intel/pinctrl-jasperlake.c | 5 ++---
> drivers/pinctrl/intel/pinctrl-lakefield.c | 5 ++---
> drivers/pinctrl/intel/pinctrl-lewisburg.c | 5 ++---
> drivers/pinctrl/intel/pinctrl-meteorlake.c | 5 ++---
> drivers/pinctrl/intel/pinctrl-sunrisepoint.c | 5 ++---
> drivers/pinctrl/intel/pinctrl-tigerlake.c | 5 ++---
> 17 files changed, 38 insertions(+), 62 deletions(-)
Nice! For the series,
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH v3 00/17] pinctrl: intel: Use NOIRQ PM helper
2023-11-10 6:14 ` Mika Westerberg
@ 2023-11-13 11:35 ` Andy Shevchenko
0 siblings, 0 replies; 24+ messages in thread
From: Andy Shevchenko @ 2023-11-13 11:35 UTC (permalink / raw)
To: Mika Westerberg
Cc: linux-gpio, linux-kernel, Linus Walleij, Paul Cercueil,
Jonathan Cameron
On Fri, Nov 10, 2023 at 08:14:22AM +0200, Mika Westerberg wrote:
> On Mon, Oct 30, 2023 at 02:07:17PM +0200, Andy Shevchenko wrote:
> > Intel pin control drivers use NOIRQ variant of the PM callbacks.
> > To make them smaller and less error prone against different
> > kernel configurations (with possible defined but not used variables)
> > switch to use NOIRQ PM helper.
...
> Nice! For the series,
>
> Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Pushed to my review and testing queue, thanks!
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 24+ messages in thread