diff mbox series

soc: mediatek: SVS: Use DEFINE_SIMPLE_DEV_PM_OPS for svs_pm_ops

Message ID 20220622175649.1856337-1-nathan@kernel.org (mailing list archive)
State New, archived
Headers show
Series soc: mediatek: SVS: Use DEFINE_SIMPLE_DEV_PM_OPS for svs_pm_ops | expand

Commit Message

Nathan Chancellor June 22, 2022, 5:56 p.m. UTC
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@kernel.org>
---
 drivers/soc/mediatek/mtk-svs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


base-commit: 71eaf1887203d0a59c92fd9dd3436b8d8489d68c

Comments

Matthias Brugger June 23, 2022, 12:04 p.m. UTC | #1
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@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
Matthias Brugger July 7, 2022, 8:25 a.m. UTC | #2
On 23/06/2022 14:04, Matthias Brugger wrote:
> 
> 
> 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@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.
> 

As there was no progress on the other patch, I now applied yours.

Thanks!
Matthias

> 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
diff mbox series

Patch

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,