[PATCH] media: nxp: ignore unused suspend operations

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Apr 18 01:19:59 PDT 2023


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 at 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 at 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);

-- 
Regards,

Laurent Pinchart



More information about the linux-arm-kernel mailing list