[PATCH] soc: mediatek: SVS: Use DEFINE_SIMPLE_DEV_PM_OPS for svs_pm_ops

Matthias Brugger matthias.bgg at gmail.com
Thu Jun 23 05:04:49 PDT 2022



On 22/06/2022 19:56, Nathan Chancellor wrote:
> When building this driver for an architecture that does not support
> CONFIG_PM_SLEEP, such as hexagon, the following warnings occur:
> 
>    drivers/soc/mediatek/mtk-svs.c:1481:12: error: unused function 'svs_suspend' [-Werror,-Wunused-function]
>    static int svs_suspend(struct device *dev)
>               ^
>    drivers/soc/mediatek/mtk-svs.c:1515:12: error: unused function 'svs_resume' [-Werror,-Wunused-function]
>    static int svs_resume(struct device *dev)
>               ^
>    2 errors generated.
> 
> This happens because SIMPLE_DEV_PM_OPS uses SET_SYSTEM_SLEEP_PM_OPS,
> which evaluates to nothing when CONFIG_PM_SLEEP is not set, leaving the
> functions unused in the eyes of the compiler.
> 
> This problem was rectified in commit 1a3c7bb08826 ("PM: core: Add new
> *_PM_OPS macros, deprecate old ones") with new macros. Use
> DEFINE_SIMPLE_DEV_PM_OPS to fix the warning while not changing
> svs_pm_ops when CONFIG_PM_SLEEP is set.
> 
> Fixes: 681a02e95000 ("soc: mediatek: SVS: introduce MTK SVS engine")
> Signed-off-by: Nathan Chancellor <nathan at kernel.org>

Thanks for the patch. The same issue was addressed by Jin Xiayun here:
https://lore.kernel.org/linux-mediatek/20220623030931.2816013-1-jinxiaoyun2@huawei.com/T/#u

I'm happy for any review help.

Regards,
Matthias

> ---
>   drivers/soc/mediatek/mtk-svs.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/soc/mediatek/mtk-svs.c b/drivers/soc/mediatek/mtk-svs.c
> index 606a00a2e57d..d70903f45ddf 100644
> --- a/drivers/soc/mediatek/mtk-svs.c
> +++ b/drivers/soc/mediatek/mtk-svs.c
> @@ -2381,7 +2381,7 @@ static int svs_probe(struct platform_device *pdev)
>   	return ret;
>   }
>   
> -static SIMPLE_DEV_PM_OPS(svs_pm_ops, svs_suspend, svs_resume);
> +static DEFINE_SIMPLE_DEV_PM_OPS(svs_pm_ops, svs_suspend, svs_resume);
>   
>   static struct platform_driver svs_driver = {
>   	.probe	= svs_probe,
> 
> base-commit: 71eaf1887203d0a59c92fd9dd3436b8d8489d68c



More information about the linux-arm-kernel mailing list