media: nxp: ignore unused suspend operations

Message ID 20230418071605.2971866-1-arnd@kernel.org
State New
Headers
Series media: nxp: ignore unused suspend operations |

Commit Message

Arnd Bergmann April 18, 2023, 7:15 a.m. UTC
  From: Arnd Bergmann <arnd@arndb.de>

gcc warns about some functions being unused when CONFIG_PM is
disabled:

drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c:328:12: error: 'mxc_isi_pm_resume' defined but not used [-Werror=unused-function]
  328 | static int mxc_isi_pm_resume(struct device *dev)
      |            ^~~~~~~~~~~~~~~~~
drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c:314:12: error: 'mxc_isi_pm_suspend' defined but not used [-Werror=unused-function]
  314 | static int mxc_isi_pm_suspend(struct device *dev)
      |            ^~~~~~~~~~~~~~~~~~

Use the modern SYSTEM_SLEEP_PM_OPS()/RUNTIME_PM_OPS() helpers in place
of the old SET_SYSTEM_SLEEP_PM_OPS()/SET_RUNTIME_PM_OPS() ones, and add
a pm_ptr() check to ensure they get dropped by the compiler.

Fixes: cf21f328fcaf ("media: nxp: Add i.MX8 ISI driver")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
  

Comments

Laurent Pinchart April 18, 2023, 7:30 a.m. UTC | #1
Hi Arnd,

Thank you for the patch.

On Tue, Apr 18, 2023 at 09:15:51AM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> gcc warns about some functions being unused when CONFIG_PM is
> disabled:
> 
> drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c:328:12: error: 'mxc_isi_pm_resume' defined but not used [-Werror=unused-function]
>   328 | static int mxc_isi_pm_resume(struct device *dev)
>       |            ^~~~~~~~~~~~~~~~~
> drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c:314:12: error: 'mxc_isi_pm_suspend' defined but not used [-Werror=unused-function]
>   314 | static int mxc_isi_pm_suspend(struct device *dev)
>       |            ^~~~~~~~~~~~~~~~~~
> 
> Use the modern SYSTEM_SLEEP_PM_OPS()/RUNTIME_PM_OPS() helpers in place
> of the old SET_SYSTEM_SLEEP_PM_OPS()/SET_RUNTIME_PM_OPS() ones, and add
> a pm_ptr() check to ensure they get dropped by the compiler.

I've also sent a patch for this one :-) See
https://lore.kernel.org/linux-media/20230417053949.7395-2-laurent.pinchart@ideasonboard.com/T/#u.

Your patch looks better, so

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> Fixes: cf21f328fcaf ("media: nxp: Add i.MX8 ISI driver")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
> index 238521622b75..253e77189b69 100644
> --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
> +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
> @@ -378,8 +378,8 @@ static int mxc_isi_runtime_resume(struct device *dev)
>  }
>  
>  static const struct dev_pm_ops mxc_isi_pm_ops = {
> -	SET_SYSTEM_SLEEP_PM_OPS(mxc_isi_pm_suspend, mxc_isi_pm_resume)
> -	SET_RUNTIME_PM_OPS(mxc_isi_runtime_suspend, mxc_isi_runtime_resume, NULL)
> +	SYSTEM_SLEEP_PM_OPS(mxc_isi_pm_suspend, mxc_isi_pm_resume)
> +	RUNTIME_PM_OPS(mxc_isi_runtime_suspend, mxc_isi_runtime_resume, NULL)
>  };
>  
>  /* -----------------------------------------------------------------------------
> @@ -528,7 +528,7 @@ static struct platform_driver mxc_isi_driver = {
>  	.driver = {
>  		.of_match_table = mxc_isi_of_match,
>  		.name		= MXC_ISI_DRIVER_NAME,
> -		.pm		= &mxc_isi_pm_ops,
> +		.pm		= pm_ptr(&mxc_isi_pm_ops),
>  	}
>  };
>  module_platform_driver(mxc_isi_driver);
  
Hans Verkuil April 18, 2023, 8:04 a.m. UTC | #2
Hi Arnd,

On 18/04/2023 09:15, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> gcc warns about some functions being unused when CONFIG_PM is
> disabled:

???

The Kconfig has a:

        depends on HAS_DMA && PM

So how can this be compiled with CONFIG_PM not set?

Am I missing something?

	Hans

> 
> drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c:328:12: error: 'mxc_isi_pm_resume' defined but not used [-Werror=unused-function]
>   328 | static int mxc_isi_pm_resume(struct device *dev)
>       |            ^~~~~~~~~~~~~~~~~
> drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c:314:12: error: 'mxc_isi_pm_suspend' defined but not used [-Werror=unused-function]
>   314 | static int mxc_isi_pm_suspend(struct device *dev)
>       |            ^~~~~~~~~~~~~~~~~~
> 
> Use the modern SYSTEM_SLEEP_PM_OPS()/RUNTIME_PM_OPS() helpers in place
> of the old SET_SYSTEM_SLEEP_PM_OPS()/SET_RUNTIME_PM_OPS() ones, and add
> a pm_ptr() check to ensure they get dropped by the compiler.
> 
> Fixes: cf21f328fcaf ("media: nxp: Add i.MX8 ISI driver")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
> index 238521622b75..253e77189b69 100644
> --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
> +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
> @@ -378,8 +378,8 @@ static int mxc_isi_runtime_resume(struct device *dev)
>  }
>  
>  static const struct dev_pm_ops mxc_isi_pm_ops = {
> -	SET_SYSTEM_SLEEP_PM_OPS(mxc_isi_pm_suspend, mxc_isi_pm_resume)
> -	SET_RUNTIME_PM_OPS(mxc_isi_runtime_suspend, mxc_isi_runtime_resume, NULL)
> +	SYSTEM_SLEEP_PM_OPS(mxc_isi_pm_suspend, mxc_isi_pm_resume)
> +	RUNTIME_PM_OPS(mxc_isi_runtime_suspend, mxc_isi_runtime_resume, NULL)
>  };
>  
>  /* -----------------------------------------------------------------------------
> @@ -528,7 +528,7 @@ static struct platform_driver mxc_isi_driver = {
>  	.driver = {
>  		.of_match_table = mxc_isi_of_match,
>  		.name		= MXC_ISI_DRIVER_NAME,
> -		.pm		= &mxc_isi_pm_ops,
> +		.pm		= pm_ptr(&mxc_isi_pm_ops),
>  	}
>  };
>  module_platform_driver(mxc_isi_driver);
  
Arnd Bergmann April 18, 2023, 8:09 a.m. UTC | #3
On Tue, Apr 18, 2023, at 10:04, Hans Verkuil wrote:
> On 18/04/2023 09:15, Arnd Bergmann wrote:
>> From: Arnd Bergmann <arnd@arndb.de>
>> 
>> gcc warns about some functions being unused when CONFIG_PM is
>> disabled:
>
> ???
>
> The Kconfig has a:
>
>         depends on HAS_DMA && PM
>
> So how can this be compiled with CONFIG_PM not set?
>
> Am I missing something?

My mistake, the warning only shows up when CONFIG_PM_SLEEP is
disabled.

     Arnd
  
Laurent Pinchart April 18, 2023, 8:19 a.m. UTC | #4
On Tue, Apr 18, 2023 at 10:04:13AM +0200, Hans Verkuil wrote:
> Hi Arnd,
> 
> On 18/04/2023 09:15, Arnd Bergmann wrote:
> > From: Arnd Bergmann <arnd@arndb.de>
> > 
> > gcc warns about some functions being unused when CONFIG_PM is
> > disabled:
> 
> ???
> 
> The Kconfig has a:
> 
>         depends on HAS_DMA && PM
> 
> So how can this be compiled with CONFIG_PM not set?
> 
> Am I missing something?

The warning appears when CONFIG_PM_SLEEP is disabled. The pm_ptr()
change is thus not useful, but the switch to SYSTEM_SLEEP_PM_OPS() and
RUNTIME_PM_OPS() make a difference.

> > drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c:328:12: error: 'mxc_isi_pm_resume' defined but not used [-Werror=unused-function]
> >   328 | static int mxc_isi_pm_resume(struct device *dev)
> >       |            ^~~~~~~~~~~~~~~~~
> > drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c:314:12: error: 'mxc_isi_pm_suspend' defined but not used [-Werror=unused-function]
> >   314 | static int mxc_isi_pm_suspend(struct device *dev)
> >       |            ^~~~~~~~~~~~~~~~~~
> > 
> > Use the modern SYSTEM_SLEEP_PM_OPS()/RUNTIME_PM_OPS() helpers in place
> > of the old SET_SYSTEM_SLEEP_PM_OPS()/SET_RUNTIME_PM_OPS() ones, and add
> > a pm_ptr() check to ensure they get dropped by the compiler.
> > 
> > Fixes: cf21f328fcaf ("media: nxp: Add i.MX8 ISI driver")
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> > ---
> >  drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c | 6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
> > index 238521622b75..253e77189b69 100644
> > --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
> > +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
> > @@ -378,8 +378,8 @@ static int mxc_isi_runtime_resume(struct device *dev)
> >  }
> >  
> >  static const struct dev_pm_ops mxc_isi_pm_ops = {
> > -	SET_SYSTEM_SLEEP_PM_OPS(mxc_isi_pm_suspend, mxc_isi_pm_resume)
> > -	SET_RUNTIME_PM_OPS(mxc_isi_runtime_suspend, mxc_isi_runtime_resume, NULL)
> > +	SYSTEM_SLEEP_PM_OPS(mxc_isi_pm_suspend, mxc_isi_pm_resume)
> > +	RUNTIME_PM_OPS(mxc_isi_runtime_suspend, mxc_isi_runtime_resume, NULL)
> >  };
> >  
> >  /* -----------------------------------------------------------------------------
> > @@ -528,7 +528,7 @@ static struct platform_driver mxc_isi_driver = {
> >  	.driver = {
> >  		.of_match_table = mxc_isi_of_match,
> >  		.name		= MXC_ISI_DRIVER_NAME,
> > -		.pm		= &mxc_isi_pm_ops,
> > +		.pm		= pm_ptr(&mxc_isi_pm_ops),
> >  	}
> >  };
> >  module_platform_driver(mxc_isi_driver);
  
Hans Verkuil April 18, 2023, 8:23 a.m. UTC | #5
Hi Arnd,

On 18/04/2023 10:19, Laurent Pinchart wrote:
> On Tue, Apr 18, 2023 at 10:04:13AM +0200, Hans Verkuil wrote:
>> Hi Arnd,
>>
>> On 18/04/2023 09:15, Arnd Bergmann wrote:
>>> From: Arnd Bergmann <arnd@arndb.de>
>>>
>>> gcc warns about some functions being unused when CONFIG_PM is
>>> disabled:
>>
>> ???
>>
>> The Kconfig has a:
>>
>>         depends on HAS_DMA && PM
>>
>> So how can this be compiled with CONFIG_PM not set?
>>
>> Am I missing something?
> 
> The warning appears when CONFIG_PM_SLEEP is disabled. The pm_ptr()
> change is thus not useful, but the switch to SYSTEM_SLEEP_PM_OPS() and
> RUNTIME_PM_OPS() make a difference.

Can you post a v3?

Thank you!

	Hans

> 
>>> drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c:328:12: error: 'mxc_isi_pm_resume' defined but not used [-Werror=unused-function]
>>>   328 | static int mxc_isi_pm_resume(struct device *dev)
>>>       |            ^~~~~~~~~~~~~~~~~
>>> drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c:314:12: error: 'mxc_isi_pm_suspend' defined but not used [-Werror=unused-function]
>>>   314 | static int mxc_isi_pm_suspend(struct device *dev)
>>>       |            ^~~~~~~~~~~~~~~~~~
>>>
>>> Use the modern SYSTEM_SLEEP_PM_OPS()/RUNTIME_PM_OPS() helpers in place
>>> of the old SET_SYSTEM_SLEEP_PM_OPS()/SET_RUNTIME_PM_OPS() ones, and add
>>> a pm_ptr() check to ensure they get dropped by the compiler.
>>>
>>> Fixes: cf21f328fcaf ("media: nxp: Add i.MX8 ISI driver")
>>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>>> ---
>>>  drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c | 6 +++---
>>>  1 file changed, 3 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
>>> index 238521622b75..253e77189b69 100644
>>> --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
>>> +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
>>> @@ -378,8 +378,8 @@ static int mxc_isi_runtime_resume(struct device *dev)
>>>  }
>>>  
>>>  static const struct dev_pm_ops mxc_isi_pm_ops = {
>>> -	SET_SYSTEM_SLEEP_PM_OPS(mxc_isi_pm_suspend, mxc_isi_pm_resume)
>>> -	SET_RUNTIME_PM_OPS(mxc_isi_runtime_suspend, mxc_isi_runtime_resume, NULL)
>>> +	SYSTEM_SLEEP_PM_OPS(mxc_isi_pm_suspend, mxc_isi_pm_resume)
>>> +	RUNTIME_PM_OPS(mxc_isi_runtime_suspend, mxc_isi_runtime_resume, NULL)
>>>  };
>>>  
>>>  /* -----------------------------------------------------------------------------
>>> @@ -528,7 +528,7 @@ static struct platform_driver mxc_isi_driver = {
>>>  	.driver = {
>>>  		.of_match_table = mxc_isi_of_match,
>>>  		.name		= MXC_ISI_DRIVER_NAME,
>>> -		.pm		= &mxc_isi_pm_ops,
>>> +		.pm		= pm_ptr(&mxc_isi_pm_ops),
>>>  	}
>>>  };
>>>  module_platform_driver(mxc_isi_driver);
>
  
Arnd Bergmann April 18, 2023, 9:20 a.m. UTC | #6
On Tue, Apr 18, 2023, at 10:19, Laurent Pinchart wrote:
> On Tue, Apr 18, 2023 at 10:04:13AM +0200, Hans Verkuil wrote:
>> Hi Arnd,
>> 
>> On 18/04/2023 09:15, Arnd Bergmann wrote:
>> > From: Arnd Bergmann <arnd@arndb.de>
>> > 
>> > gcc warns about some functions being unused when CONFIG_PM is
>> > disabled:
>> 
>> ???
>> 
>> The Kconfig has a:
>> 
>>         depends on HAS_DMA && PM
>> 
>> So how can this be compiled with CONFIG_PM not set?
>> 
>> Am I missing something?
>
> The warning appears when CONFIG_PM_SLEEP is disabled. The pm_ptr()
> change is thus not useful, but the switch to SYSTEM_SLEEP_PM_OPS() and
> RUNTIME_PM_OPS() make a difference.

I sent a v3 now. I ended up leaving the pm_ptr() in here, based on
the recommended usage of the new macros.

    Arnd
  

Patch

diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
index 238521622b75..253e77189b69 100644
--- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
+++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
@@ -378,8 +378,8 @@  static int mxc_isi_runtime_resume(struct device *dev)
 }
 
 static const struct dev_pm_ops mxc_isi_pm_ops = {
-	SET_SYSTEM_SLEEP_PM_OPS(mxc_isi_pm_suspend, mxc_isi_pm_resume)
-	SET_RUNTIME_PM_OPS(mxc_isi_runtime_suspend, mxc_isi_runtime_resume, NULL)
+	SYSTEM_SLEEP_PM_OPS(mxc_isi_pm_suspend, mxc_isi_pm_resume)
+	RUNTIME_PM_OPS(mxc_isi_runtime_suspend, mxc_isi_runtime_resume, NULL)
 };
 
 /* -----------------------------------------------------------------------------
@@ -528,7 +528,7 @@  static struct platform_driver mxc_isi_driver = {
 	.driver = {
 		.of_match_table = mxc_isi_of_match,
 		.name		= MXC_ISI_DRIVER_NAME,
-		.pm		= &mxc_isi_pm_ops,
+		.pm		= pm_ptr(&mxc_isi_pm_ops),
 	}
 };
 module_platform_driver(mxc_isi_driver);