[PATCH v2] iio: cros_ec: Convert to DEFINE_SIMPLE_DEV_PM_OPS()

Triet Hoang posted 1 patch 1 month ago
There is a newer version of this series
drivers/iio/common/cros_ec_sensors/cros_ec_sensors.c      | 2 +-
drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c | 5 ++---
drivers/iio/light/cros_ec_light_prox.c                    | 2 +-
drivers/iio/pressure/cros_ec_baro.c                       | 2 +-
4 files changed, 5 insertions(+), 6 deletions(-)
[PATCH v2] iio: cros_ec: Convert to DEFINE_SIMPLE_DEV_PM_OPS()
Posted by Triet Hoang 1 month ago
Convert deprecated SIMPLE_DEV_PM_OPS to DEFINE_SIMPLE_DEV_PM_OPS
and pm_sleep_ptr().

This lets us drop the __maybe_unused annotations from the resume callbacks,
and reduces kernel size when CONFIG_PM or CONFIG_PM_SLEEP is disabled.

Signed-off-by: Triet Hoang <triet.hoang.dev@gmail.com>
---
Changes in v2:
- Use EXPORT_GPL_SIMPLE_DEV_PM_OPS for cros_ec_sensors_pm_ops
- Wrap to 75 ish chars for commit messages.
---

 drivers/iio/common/cros_ec_sensors/cros_ec_sensors.c      | 2 +-
 drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c | 5 ++---
 drivers/iio/light/cros_ec_light_prox.c                    | 2 +-
 drivers/iio/pressure/cros_ec_baro.c                       | 2 +-
 4 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/iio/common/cros_ec_sensors/cros_ec_sensors.c b/drivers/iio/common/cros_ec_sensors/cros_ec_sensors.c
index b971f8b646be..551b86236abc 100644
--- a/drivers/iio/common/cros_ec_sensors/cros_ec_sensors.c
+++ b/drivers/iio/common/cros_ec_sensors/cros_ec_sensors.c
@@ -311,7 +311,7 @@ MODULE_DEVICE_TABLE(platform, cros_ec_sensors_ids);
 static struct platform_driver cros_ec_sensors_platform_driver = {
 	.driver = {
 		.name	= "cros-ec-sensors",
-		.pm	= &cros_ec_sensors_pm_ops,
+		.pm	= pm_sleep_ptr(&cros_ec_sensors_pm_ops),
 	},
 	.probe		= cros_ec_sensors_probe,
 	.id_table	= cros_ec_sensors_ids,
diff --git a/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c b/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c
index 5133755c2ea6..d03e40c91582 100644
--- a/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c
+++ b/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c
@@ -862,7 +862,7 @@ int cros_ec_sensors_core_write(struct cros_ec_sensors_core_state *st,
 }
 EXPORT_SYMBOL_GPL(cros_ec_sensors_core_write);
 
-static int __maybe_unused cros_ec_sensors_resume(struct device *dev)
+static int cros_ec_sensors_resume(struct device *dev)
 {
 	struct iio_dev *indio_dev = dev_get_drvdata(dev);
 	struct cros_ec_sensors_core_state *st = iio_priv(indio_dev);
@@ -879,8 +879,7 @@ static int __maybe_unused cros_ec_sensors_resume(struct device *dev)
 	return ret;
 }
 
-SIMPLE_DEV_PM_OPS(cros_ec_sensors_pm_ops, NULL, cros_ec_sensors_resume);
-EXPORT_SYMBOL_GPL(cros_ec_sensors_pm_ops);
+EXPORT_GPL_SIMPLE_DEV_PM_OPS(cros_ec_sensors_pm_ops, NULL, cros_ec_sensors_resume);
 
 MODULE_DESCRIPTION("ChromeOS EC sensor hub core functions");
 MODULE_LICENSE("GPL v2");
diff --git a/drivers/iio/light/cros_ec_light_prox.c b/drivers/iio/light/cros_ec_light_prox.c
index 7ab565b1fb9f..b1c92de7922a 100644
--- a/drivers/iio/light/cros_ec_light_prox.c
+++ b/drivers/iio/light/cros_ec_light_prox.c
@@ -249,7 +249,7 @@ MODULE_DEVICE_TABLE(platform, cros_ec_light_prox_ids);
 static struct platform_driver cros_ec_light_prox_platform_driver = {
 	.driver = {
 		.name	= "cros-ec-light-prox",
-		.pm	= &cros_ec_sensors_pm_ops,
+		.pm	= pm_sleep_ptr(&cros_ec_sensors_pm_ops),
 	},
 	.probe		= cros_ec_light_prox_probe,
 	.id_table	= cros_ec_light_prox_ids,
diff --git a/drivers/iio/pressure/cros_ec_baro.c b/drivers/iio/pressure/cros_ec_baro.c
index 6a567b6075d9..e4bc4df48d01 100644
--- a/drivers/iio/pressure/cros_ec_baro.c
+++ b/drivers/iio/pressure/cros_ec_baro.c
@@ -192,7 +192,7 @@ MODULE_DEVICE_TABLE(platform, cros_ec_baro_ids);
 static struct platform_driver cros_ec_baro_platform_driver = {
 	.driver = {
 		.name	= "cros-ec-baro",
-		.pm	= &cros_ec_sensors_pm_ops,
+		.pm	= pm_sleep_ptr(&cros_ec_sensors_pm_ops),
 	},
 	.probe		= cros_ec_baro_probe,
 	.id_table	= cros_ec_baro_ids,
-- 
2.53.0
Re: [PATCH v2] iio: cros_ec: Convert to DEFINE_SIMPLE_DEV_PM_OPS()
Posted by Andy Shevchenko 1 month ago
On Tue, Aug 25, 2026 at 08:27:24AM +0700, Triet Hoang wrote:
> Convert deprecated SIMPLE_DEV_PM_OPS to DEFINE_SIMPLE_DEV_PM_OPS

SIMPLE_DEV_PM_OPS()
DEFINE_SIMPLE_DEV_PM_OPS()

> and pm_sleep_ptr().
> 
> This lets us drop the __maybe_unused annotations from the resume callbacks,
> and reduces kernel size when CONFIG_PM or CONFIG_PM_SLEEP is disabled.

Not really, the __maybe_unused is done in a way that _object_ size is bigger
(function is compiled), but since it's put in a separate section, linker will
drop it as unused, so the resulting binary will not have it.

...

Code wise looks good to me.

-- 
With Best Regards,
Andy Shevchenko
Re: [PATCH v2] iio: cros_ec: Convert to DEFINE_SIMPLE_DEV_PM_OPS()
Posted by Tzung-Bi Shih 1 month ago
On Tue, Aug 25, 2026 at 08:27:24AM +0700, Triet Hoang wrote:
> Convert deprecated SIMPLE_DEV_PM_OPS to DEFINE_SIMPLE_DEV_PM_OPS
> and pm_sleep_ptr().

This needs to update accordingly: SIMPLE_DEV_PM_OPS() + EXPORT_SYMBOL_GPL()
-> EXPORT_GPL_SIMPLE_DEV_PM_OPS().

> 
> This lets us drop the __maybe_unused annotations from the resume callbacks,
> and reduces kernel size when CONFIG_PM or CONFIG_PM_SLEEP is disabled.
> 
> Signed-off-by: Triet Hoang <triet.hoang.dev@gmail.com>

With a nit in the commit message,
Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org>
Re: [PATCH v2] iio: cros_ec: Convert to DEFINE_SIMPLE_DEV_PM_OPS()
Posted by Triet Hoang 1 month ago
On Tue, 25 Aug 2026 01:52:20 +0000, Tzung-Bi Shih wrote:

> This needs to update accordingly: SIMPLE_DEV_PM_OPS() + EXPORT_SYMBOL_GPL()
> -> EXPORT_GPL_SIMPLE_DEV_PM_OPS().
> 
> > 
> > This lets us drop the __maybe_unused annotations from the resume callbacks,
> > and reduces kernel size when CONFIG_PM or CONFIG_PM_SLEEP is disabled.
> > 
> > Signed-off-by: Triet Hoang <triet.hoang.dev@gmail.com>
> 
> With a nit in the commit message,
> Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org>

Thanks for your review. Should I send the v3 to update this?
Or maintainer will 'amend' the commit message when apply patch.

Regards,
Triet
Re: [PATCH v2] iio: cros_ec: Convert to DEFINE_SIMPLE_DEV_PM_OPS()
Posted by Andy Shevchenko 1 month ago
On Tue, Aug 25, 2026 at 09:32:16AM +0700, Triet Hoang wrote:
> On Tue, 25 Aug 2026 01:52:20 +0000, Tzung-Bi Shih wrote:
> 
> > This needs to update accordingly: SIMPLE_DEV_PM_OPS() + EXPORT_SYMBOL_GPL()
> > -> EXPORT_GPL_SIMPLE_DEV_PM_OPS().
> > 
> > > This lets us drop the __maybe_unused annotations from the resume callbacks,
> > > and reduces kernel size when CONFIG_PM or CONFIG_PM_SLEEP is disabled.
> > 
> > With a nit in the commit message,
> > Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org>
> 
> Thanks for your review. Should I send the v3 to update this?
> Or maintainer will 'amend' the commit message when apply patch.

Taking into account that I gave also comments (and we have plenty of time),
please v3.

-- 
With Best Regards,
Andy Shevchenko