Message ID | 20230418071605.2971866-1-arnd@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | media: nxp: ignore unused suspend operations | expand |
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);
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);
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
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);
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); >
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
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);