* [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* 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
* [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 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