Linux IIO development
 help / color / mirror / Atom feed
* [PATCH 0/2] iio: gyro: mpu3050: Cleanup exports and PM
@ 2022-02-20 17:51 Jonathan Cameron
  2022-02-20 17:51 ` [PATCH 1/2] iio: gyro: mpu3050: Drop unused symbol exports Jonathan Cameron
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Jonathan Cameron @ 2022-02-20 17:51 UTC (permalink / raw)
  To: linux-iio; +Cc: Paul Cercueil, Linus Walleij, Jonathan Cameron

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

Paul Cercueil happened to chose this driver as his example for
EXPORT_RUNTIME_DEV_PM_OPS() in his recent patch set to cleanup
how we handle dev_pm_ops.

https://lore.kernel.org/linux-pm/20220105101106.00005ae0@Huawei.com/

Whilst reviewing that I noticed that there were a bunch of exports
in this driver that are only used by other files compiled into the same
module.  Paul found another driver to demo his new infrastructure.

This series is cleaning up that oddity by first dropping the exports
and then using the new pm_ptr() and DEFINE_RUNTIME_PM_DEV_OPS() to allow
the compiler to be responsible for removing the unused code for us rather
than requiring manual CONFIG_PM guards.

Jonathan Cameron (2):
  iio: gyro: mpu3050: Drop unused symbol exports.
  iio: gyro: mpu3050: Use pm_ptr() and DEFINE_RUNTIME_DEV_PM_OPS()

 drivers/iio/gyro/mpu3050-core.c | 14 ++------------
 drivers/iio/gyro/mpu3050-i2c.c  |  2 +-
 2 files changed, 3 insertions(+), 13 deletions(-)

-- 
2.35.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/2] iio: gyro: mpu3050: Drop unused symbol exports.
  2022-02-20 17:51 [PATCH 0/2] iio: gyro: mpu3050: Cleanup exports and PM Jonathan Cameron
@ 2022-02-20 17:51 ` Jonathan Cameron
  2022-03-15  0:32   ` Linus Walleij
  2022-02-20 17:51 ` [PATCH 2/2] iio: gyro: mpu3050: Use pm_ptr() and DEFINE_RUNTIME_DEV_PM_OPS() Jonathan Cameron
  2022-06-04 15:56 ` [PATCH 0/2] iio: gyro: mpu3050: Cleanup exports and PM Jonathan Cameron
  2 siblings, 1 reply; 6+ messages in thread
From: Jonathan Cameron @ 2022-02-20 17:51 UTC (permalink / raw)
  To: linux-iio; +Cc: Paul Cercueil, Linus Walleij, Jonathan Cameron

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

This driver is built as a single module.  There is an note in the makefile
about SPI support being a reason to split the build in future. That
support has never arrived so drop these symbol exports.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/iio/gyro/mpu3050-core.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/iio/gyro/mpu3050-core.c b/drivers/iio/gyro/mpu3050-core.c
index ea387efab62d..8486261beb90 100644
--- a/drivers/iio/gyro/mpu3050-core.c
+++ b/drivers/iio/gyro/mpu3050-core.c
@@ -1261,7 +1261,6 @@ int mpu3050_common_probe(struct device *dev,
 
 	return ret;
 }
-EXPORT_SYMBOL(mpu3050_common_probe);
 
 int mpu3050_common_remove(struct device *dev)
 {
@@ -1279,7 +1278,6 @@ int mpu3050_common_remove(struct device *dev)
 
 	return 0;
 }
-EXPORT_SYMBOL(mpu3050_common_remove);
 
 #ifdef CONFIG_PM
 static int mpu3050_runtime_suspend(struct device *dev)
@@ -1299,7 +1297,6 @@ const struct dev_pm_ops mpu3050_dev_pm_ops = {
 	SET_RUNTIME_PM_OPS(mpu3050_runtime_suspend,
 			   mpu3050_runtime_resume, NULL)
 };
-EXPORT_SYMBOL(mpu3050_dev_pm_ops);
 
 MODULE_AUTHOR("Linus Walleij");
 MODULE_DESCRIPTION("MPU3050 gyroscope driver");
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] iio: gyro: mpu3050: Use pm_ptr() and DEFINE_RUNTIME_DEV_PM_OPS()
  2022-02-20 17:51 [PATCH 0/2] iio: gyro: mpu3050: Cleanup exports and PM Jonathan Cameron
  2022-02-20 17:51 ` [PATCH 1/2] iio: gyro: mpu3050: Drop unused symbol exports Jonathan Cameron
@ 2022-02-20 17:51 ` Jonathan Cameron
  2022-03-15  0:33   ` Linus Walleij
  2022-06-04 15:56 ` [PATCH 0/2] iio: gyro: mpu3050: Cleanup exports and PM Jonathan Cameron
  2 siblings, 1 reply; 6+ messages in thread
From: Jonathan Cameron @ 2022-02-20 17:51 UTC (permalink / raw)
  To: linux-iio; +Cc: Paul Cercueil, Linus Walleij, Jonathan Cameron

From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

Using this approach as opposed to CONFIG_PM guards allows the compiler to
remove the unused code instead of doing it manually.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/iio/gyro/mpu3050-core.c | 11 ++---------
 drivers/iio/gyro/mpu3050-i2c.c  |  2 +-
 2 files changed, 3 insertions(+), 10 deletions(-)

diff --git a/drivers/iio/gyro/mpu3050-core.c b/drivers/iio/gyro/mpu3050-core.c
index 8486261beb90..b3ecb5571057 100644
--- a/drivers/iio/gyro/mpu3050-core.c
+++ b/drivers/iio/gyro/mpu3050-core.c
@@ -1279,7 +1279,6 @@ int mpu3050_common_remove(struct device *dev)
 	return 0;
 }
 
-#ifdef CONFIG_PM
 static int mpu3050_runtime_suspend(struct device *dev)
 {
 	return mpu3050_power_down(iio_priv(dev_get_drvdata(dev)));
@@ -1289,15 +1288,9 @@ static int mpu3050_runtime_resume(struct device *dev)
 {
 	return mpu3050_power_up(iio_priv(dev_get_drvdata(dev)));
 }
-#endif /* CONFIG_PM */
-
-const struct dev_pm_ops mpu3050_dev_pm_ops = {
-	SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
-				pm_runtime_force_resume)
-	SET_RUNTIME_PM_OPS(mpu3050_runtime_suspend,
-			   mpu3050_runtime_resume, NULL)
-};
 
+DEFINE_RUNTIME_DEV_PM_OPS(mpu3050_dev_pm_ops, mpu3050_runtime_suspend,
+			  mpu3050_runtime_resume, NULL);
 MODULE_AUTHOR("Linus Walleij");
 MODULE_DESCRIPTION("MPU3050 gyroscope driver");
 MODULE_LICENSE("GPL");
diff --git a/drivers/iio/gyro/mpu3050-i2c.c b/drivers/iio/gyro/mpu3050-i2c.c
index ef5bcbc4b45b..820133cad601 100644
--- a/drivers/iio/gyro/mpu3050-i2c.c
+++ b/drivers/iio/gyro/mpu3050-i2c.c
@@ -114,7 +114,7 @@ static struct i2c_driver mpu3050_i2c_driver = {
 	.driver = {
 		.of_match_table = mpu3050_i2c_of_match,
 		.name = "mpu3050-i2c",
-		.pm = &mpu3050_dev_pm_ops,
+		.pm = pm_ptr(&mpu3050_dev_pm_ops),
 	},
 };
 module_i2c_driver(mpu3050_i2c_driver);
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] iio: gyro: mpu3050: Drop unused symbol exports.
  2022-02-20 17:51 ` [PATCH 1/2] iio: gyro: mpu3050: Drop unused symbol exports Jonathan Cameron
@ 2022-03-15  0:32   ` Linus Walleij
  0 siblings, 0 replies; 6+ messages in thread
From: Linus Walleij @ 2022-03-15  0:32 UTC (permalink / raw)
  To: Jonathan Cameron; +Cc: linux-iio, Paul Cercueil, Jonathan Cameron

On Sun, Feb 20, 2022 at 6:45 PM Jonathan Cameron <jic23@kernel.org> wrote:

> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
>
> This driver is built as a single module.  There is an note in the makefile
> about SPI support being a reason to split the build in future. That
> support has never arrived so drop these symbol exports.
>
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> Cc: Linus Walleij <linus.walleij@linaro.org>

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/2] iio: gyro: mpu3050: Use pm_ptr() and DEFINE_RUNTIME_DEV_PM_OPS()
  2022-02-20 17:51 ` [PATCH 2/2] iio: gyro: mpu3050: Use pm_ptr() and DEFINE_RUNTIME_DEV_PM_OPS() Jonathan Cameron
@ 2022-03-15  0:33   ` Linus Walleij
  0 siblings, 0 replies; 6+ messages in thread
From: Linus Walleij @ 2022-03-15  0:33 UTC (permalink / raw)
  To: Jonathan Cameron; +Cc: linux-iio, Paul Cercueil, Jonathan Cameron

On Sun, Feb 20, 2022 at 6:45 PM Jonathan Cameron <jic23@kernel.org> wrote:

> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
>
> Using this approach as opposed to CONFIG_PM guards allows the compiler to
> remove the unused code instead of doing it manually.
>
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> Cc: Linus Walleij <linus.walleij@linaro.org>

Very nice!
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 0/2] iio: gyro: mpu3050: Cleanup exports and PM
  2022-02-20 17:51 [PATCH 0/2] iio: gyro: mpu3050: Cleanup exports and PM Jonathan Cameron
  2022-02-20 17:51 ` [PATCH 1/2] iio: gyro: mpu3050: Drop unused symbol exports Jonathan Cameron
  2022-02-20 17:51 ` [PATCH 2/2] iio: gyro: mpu3050: Use pm_ptr() and DEFINE_RUNTIME_DEV_PM_OPS() Jonathan Cameron
@ 2022-06-04 15:56 ` Jonathan Cameron
  2 siblings, 0 replies; 6+ messages in thread
From: Jonathan Cameron @ 2022-06-04 15:56 UTC (permalink / raw)
  To: linux-iio; +Cc: Paul Cercueil, Linus Walleij, Jonathan Cameron

On Sun, 20 Feb 2022 17:51:47 +0000
Jonathan Cameron <jic23@kernel.org> wrote:

> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> 
> Paul Cercueil happened to chose this driver as his example for
> EXPORT_RUNTIME_DEV_PM_OPS() in his recent patch set to cleanup
> how we handle dev_pm_ops.
> 
> https://lore.kernel.org/linux-pm/20220105101106.00005ae0@Huawei.com/
> 
> Whilst reviewing that I noticed that there were a bunch of exports
> in this driver that are only used by other files compiled into the same
> module.  Paul found another driver to demo his new infrastructure.
> 
> This series is cleaning up that oddity by first dropping the exports
> and then using the new pm_ptr() and DEFINE_RUNTIME_PM_DEV_OPS() to allow
> the compiler to be responsible for removing the unused code for us rather
> than requiring manual CONFIG_PM guards.
> 
Oops. Lost my own series down the back of the sofa.  No idea why
I didn't apply these when Linus reviewed them back in March.

Anyhow, now applied to the togreg branch of iio.git (with some fuzz)
and pushed out as testing to see if 0-day is happy with them.

Thanks,

Jonathan

> Jonathan Cameron (2):
>   iio: gyro: mpu3050: Drop unused symbol exports.
>   iio: gyro: mpu3050: Use pm_ptr() and DEFINE_RUNTIME_DEV_PM_OPS()
> 
>  drivers/iio/gyro/mpu3050-core.c | 14 ++------------
>  drivers/iio/gyro/mpu3050-i2c.c  |  2 +-
>  2 files changed, 3 insertions(+), 13 deletions(-)
> 


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-06-04 15:47 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-02-20 17:51 [PATCH 0/2] iio: gyro: mpu3050: Cleanup exports and PM Jonathan Cameron
2022-02-20 17:51 ` [PATCH 1/2] iio: gyro: mpu3050: Drop unused symbol exports Jonathan Cameron
2022-03-15  0:32   ` Linus Walleij
2022-02-20 17:51 ` [PATCH 2/2] iio: gyro: mpu3050: Use pm_ptr() and DEFINE_RUNTIME_DEV_PM_OPS() Jonathan Cameron
2022-03-15  0:33   ` Linus Walleij
2022-06-04 15:56 ` [PATCH 0/2] iio: gyro: mpu3050: Cleanup exports and PM Jonathan Cameron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox