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@xxxxxxxx> > > > > 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@xxxxxxxx> > > --- > > 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