PM / devfreq: Convert to DEFINE_SIMPLE_DEV_PM_OPS()
Commit Message
Convert the 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 suspend and
resume callbacks, and reduces kernel size in case CONFIG_PM or
CONFIG_PM_SLEEP is disabled.
Signed-off-by: Triet Hoang <triet.hoang.dev@gmail.com>
---
drivers/devfreq/rk3399_dmc.c | 8 ++++----
drivers/devfreq/sun8i-a33-mbus.c | 8 ++++----
2 files changed, 8 insertions(+), 8 deletions(-)
Comments
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] The drivers incorrectly use `pm_sleep_ptr()` instead of `pm_ptr()` for assigning the `dev_pm_ops` structure pointer to the driver's `.pm` field.
--
--- Patch [1]: [PATCH] PM / devfreq: Convert to DEFINE_SIMPLE_DEV_PM_OPS() ---
commit a6ee24f192dd2bca22b18dedee330c5384183db0
Author: Triet Hoang <triet.hoang.dev@gmail.com>
PM / devfreq: Convert to DEFINE_SIMPLE_DEV_PM_OPS()
This commit converts the deprecated SIMPLE_DEV_PM_OPS to
DEFINE_SIMPLE_DEV_PM_OPS and drops __maybe_unused annotations. It also
updates the pm assignments to reduce kernel size when PM configs are
disabled.
> diff --git a/drivers/devfreq/rk3399_dmc.c b/drivers/devfreq/rk3399_dmc.c
> index dbdce7636ca5b..3ebc817fa6084 100644
> --- a/drivers/devfreq/rk3399_dmc.c
> +++ b/drivers/devfreq/rk3399_dmc.c
[ ... ]
> @@ -477,7 +477,7 @@ static struct platform_driver rk3399_dmcfreq_driver = {
> .remove = rk3399_dmcfreq_remove,
> .driver = {
> .name = "rk3399-dmc-freq",
> - .pm = &rk3399_dmcfreq_pm,
> + .pm = pm_sleep_ptr(&rk3399_dmcfreq_pm),
[Severity: Low]
Should this use pm_ptr() instead of pm_sleep_ptr() for the structure pointer?
According to PM subsystem guidelines, pm_sleep_ptr() is intended for sleep
callbacks, while pm_ptr() should be used for the dev_pm_ops structure pointer
itself.
> .of_match_table = rk3399dmc_devfreq_of_match,
> },
> };
> diff --git a/drivers/devfreq/sun8i-a33-mbus.c b/drivers/devfreq/sun8i-a33-mbus.c
> index 4bd5657558d6b..1636501c753ee 100644
> --- a/drivers/devfreq/sun8i-a33-mbus.c
> +++ b/drivers/devfreq/sun8i-a33-mbus.c
[ ... ]
> @@ -479,7 +479,7 @@ static struct platform_driver sun8i_a33_mbus_driver = {
> .driver = {
> .name = "sun8i-a33-mbus",
> .of_match_table = sun8i_a33_mbus_of_match,
> - .pm = pm_ptr(&sun8i_a33_mbus_pm_ops),
> + .pm = pm_sleep_ptr(&sun8i_a33_mbus_pm_ops),
[Severity: Low]
Similar to the rk3399_dmc driver above, should this remain pm_ptr() for the
structure pointer instead of being changed to pm_sleep_ptr()?
> },
> };
@@ -243,7 +243,7 @@ static int rk3399_dmcfreq_get_cur_freq(struct device *dev, unsigned long *freq)
return 0;
}
-static __maybe_unused int rk3399_dmcfreq_suspend(struct device *dev)
+static int rk3399_dmcfreq_suspend(struct device *dev)
{
struct rk3399_dmcfreq *dmcfreq = dev_get_drvdata(dev);
int ret = 0;
@@ -263,7 +263,7 @@ static __maybe_unused int rk3399_dmcfreq_suspend(struct device *dev)
return 0;
}
-static __maybe_unused int rk3399_dmcfreq_resume(struct device *dev)
+static int rk3399_dmcfreq_resume(struct device *dev)
{
struct rk3399_dmcfreq *dmcfreq = dev_get_drvdata(dev);
int ret = 0;
@@ -282,7 +282,7 @@ static __maybe_unused int rk3399_dmcfreq_resume(struct device *dev)
return ret;
}
-static SIMPLE_DEV_PM_OPS(rk3399_dmcfreq_pm, rk3399_dmcfreq_suspend,
+static DEFINE_SIMPLE_DEV_PM_OPS(rk3399_dmcfreq_pm, rk3399_dmcfreq_suspend,
rk3399_dmcfreq_resume);
static int rk3399_dmcfreq_of_props(struct rk3399_dmcfreq *data,
@@ -477,7 +477,7 @@ static struct platform_driver rk3399_dmcfreq_driver = {
.remove = rk3399_dmcfreq_remove,
.driver = {
.name = "rk3399-dmc-freq",
- .pm = &rk3399_dmcfreq_pm,
+ .pm = pm_sleep_ptr(&rk3399_dmcfreq_pm),
.of_match_table = rk3399dmc_devfreq_of_match,
},
};
@@ -312,7 +312,7 @@ static int sun8i_a33_mbus_hw_init(struct device *dev,
return 0;
}
-static int __maybe_unused sun8i_a33_mbus_suspend(struct device *dev)
+static int sun8i_a33_mbus_suspend(struct device *dev)
{
struct sun8i_a33_mbus *priv = dev_get_drvdata(dev);
@@ -321,7 +321,7 @@ static int __maybe_unused sun8i_a33_mbus_suspend(struct device *dev)
return 0;
}
-static int __maybe_unused sun8i_a33_mbus_resume(struct device *dev)
+static int sun8i_a33_mbus_resume(struct device *dev)
{
struct sun8i_a33_mbus *priv = dev_get_drvdata(dev);
@@ -470,7 +470,7 @@ static const struct of_device_id sun8i_a33_mbus_of_match[] = {
};
MODULE_DEVICE_TABLE(of, sun8i_a33_mbus_of_match);
-static SIMPLE_DEV_PM_OPS(sun8i_a33_mbus_pm_ops,
+static DEFINE_SIMPLE_DEV_PM_OPS(sun8i_a33_mbus_pm_ops,
sun8i_a33_mbus_suspend, sun8i_a33_mbus_resume);
static struct platform_driver sun8i_a33_mbus_driver = {
@@ -479,7 +479,7 @@ static struct platform_driver sun8i_a33_mbus_driver = {
.driver = {
.name = "sun8i-a33-mbus",
.of_match_table = sun8i_a33_mbus_of_match,
- .pm = pm_ptr(&sun8i_a33_mbus_pm_ops),
+ .pm = pm_sleep_ptr(&sun8i_a33_mbus_pm_ops),
},
};
module_platform_driver(sun8i_a33_mbus_driver);