* [PATCH] spi: st: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() @ 2025-06-09 21:21 Raphael Gallais-Pou 2025-07-13 13:56 ` Raphaël Gallais-Pou ` (2 more replies) 0 siblings, 3 replies; 7+ messages in thread From: Raphael Gallais-Pou @ 2025-06-09 21:21 UTC (permalink / raw) To: Mark Brown; +Cc: linux-spi, linux-kernel Letting the compiler remove these functions when the kernel is built without CONFIG_PM_SLEEP support is simpler and less error prone than the use of #ifdef based kernel configuration guards. Signed-off-by: Raphael Gallais-Pou <rgallaispou@gmail.com> --- drivers/spi/spi-st-ssc4.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/drivers/spi/spi-st-ssc4.c b/drivers/spi/spi-st-ssc4.c index 4cff976ab16fbdf3708ab870176a04f2628b501b..49ab4c515156fbabe0761028a5cb4770b61ca508 100644 --- a/drivers/spi/spi-st-ssc4.c +++ b/drivers/spi/spi-st-ssc4.c @@ -378,8 +378,7 @@ static void spi_st_remove(struct platform_device *pdev) pinctrl_pm_select_sleep_state(&pdev->dev); } -#ifdef CONFIG_PM -static int spi_st_runtime_suspend(struct device *dev) +static int __maybe_unused spi_st_runtime_suspend(struct device *dev) { struct spi_controller *host = dev_get_drvdata(dev); struct spi_st *spi_st = spi_controller_get_devdata(host); @@ -392,7 +391,7 @@ static int spi_st_runtime_suspend(struct device *dev) return 0; } -static int spi_st_runtime_resume(struct device *dev) +static int __maybe_unused spi_st_runtime_resume(struct device *dev) { struct spi_controller *host = dev_get_drvdata(dev); struct spi_st *spi_st = spi_controller_get_devdata(host); @@ -403,10 +402,8 @@ static int spi_st_runtime_resume(struct device *dev) return ret; } -#endif -#ifdef CONFIG_PM_SLEEP -static int spi_st_suspend(struct device *dev) +static int __maybe_unused spi_st_suspend(struct device *dev) { struct spi_controller *host = dev_get_drvdata(dev); int ret; @@ -418,7 +415,7 @@ static int spi_st_suspend(struct device *dev) return pm_runtime_force_suspend(dev); } -static int spi_st_resume(struct device *dev) +static int __maybe_unused spi_st_resume(struct device *dev) { struct spi_controller *host = dev_get_drvdata(dev); int ret; @@ -429,7 +426,6 @@ static int spi_st_resume(struct device *dev) return pm_runtime_force_resume(dev); } -#endif static const struct dev_pm_ops spi_st_pm = { SET_SYSTEM_SLEEP_PM_OPS(spi_st_suspend, spi_st_resume) @@ -445,7 +441,7 @@ MODULE_DEVICE_TABLE(of, stm_spi_match); static struct platform_driver spi_st_driver = { .driver = { .name = "spi-st", - .pm = &spi_st_pm, + .pm = pm_sleep_ptr(&spi_st_pm), .of_match_table = of_match_ptr(stm_spi_match), }, .probe = spi_st_probe, --- base-commit: 475c850a7fdd0915b856173186d5922899d65686 change-id: 20250609-update_pm_macro-b6def2446904 Best regards, -- Raphael Gallais-Pou <rgallaispou@gmail.com> ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] spi: st: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() 2025-06-09 21:21 [PATCH] spi: st: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() Raphael Gallais-Pou @ 2025-07-13 13:56 ` Raphaël Gallais-Pou 2025-07-13 21:39 ` Mark Brown 2025-07-15 21:18 ` Mark Brown 2025-07-28 7:35 ` Geert Uytterhoeven 2 siblings, 1 reply; 7+ messages in thread From: Raphaël Gallais-Pou @ 2025-07-13 13:56 UTC (permalink / raw) To: Mark Brown; +Cc: linux-spi, linux-kernel Le 09/06/2025 à 23:21, Raphael Gallais-Pou a écrit : > Letting the compiler remove these functions when the kernel is built > without CONFIG_PM_SLEEP support is simpler and less error prone than the > use of #ifdef based kernel configuration guards. > > Signed-off-by: Raphael Gallais-Pou <rgallaispou@gmail.com> Hi Mark, Gentle ping ! :) Thanks, Raphaël > --- > drivers/spi/spi-st-ssc4.c | 14 +++++--------- > 1 file changed, 5 insertions(+), 9 deletions(-) > > diff --git a/drivers/spi/spi-st-ssc4.c b/drivers/spi/spi-st-ssc4.c > index 4cff976ab16fbdf3708ab870176a04f2628b501b..49ab4c515156fbabe0761028a5cb4770b61ca508 100644 > --- a/drivers/spi/spi-st-ssc4.c > +++ b/drivers/spi/spi-st-ssc4.c > @@ -378,8 +378,7 @@ static void spi_st_remove(struct platform_device *pdev) > pinctrl_pm_select_sleep_state(&pdev->dev); > } > > -#ifdef CONFIG_PM > -static int spi_st_runtime_suspend(struct device *dev) > +static int __maybe_unused spi_st_runtime_suspend(struct device *dev) > { > struct spi_controller *host = dev_get_drvdata(dev); > struct spi_st *spi_st = spi_controller_get_devdata(host); > @@ -392,7 +391,7 @@ static int spi_st_runtime_suspend(struct device *dev) > return 0; > } > > -static int spi_st_runtime_resume(struct device *dev) > +static int __maybe_unused spi_st_runtime_resume(struct device *dev) > { > struct spi_controller *host = dev_get_drvdata(dev); > struct spi_st *spi_st = spi_controller_get_devdata(host); > @@ -403,10 +402,8 @@ static int spi_st_runtime_resume(struct device *dev) > > return ret; > } > -#endif > > -#ifdef CONFIG_PM_SLEEP > -static int spi_st_suspend(struct device *dev) > +static int __maybe_unused spi_st_suspend(struct device *dev) > { > struct spi_controller *host = dev_get_drvdata(dev); > int ret; > @@ -418,7 +415,7 @@ static int spi_st_suspend(struct device *dev) > return pm_runtime_force_suspend(dev); > } > > -static int spi_st_resume(struct device *dev) > +static int __maybe_unused spi_st_resume(struct device *dev) > { > struct spi_controller *host = dev_get_drvdata(dev); > int ret; > @@ -429,7 +426,6 @@ static int spi_st_resume(struct device *dev) > > return pm_runtime_force_resume(dev); > } > -#endif > > static const struct dev_pm_ops spi_st_pm = { > SET_SYSTEM_SLEEP_PM_OPS(spi_st_suspend, spi_st_resume) > @@ -445,7 +441,7 @@ MODULE_DEVICE_TABLE(of, stm_spi_match); > static struct platform_driver spi_st_driver = { > .driver = { > .name = "spi-st", > - .pm = &spi_st_pm, > + .pm = pm_sleep_ptr(&spi_st_pm), > .of_match_table = of_match_ptr(stm_spi_match), > }, > .probe = spi_st_probe, > > --- > base-commit: 475c850a7fdd0915b856173186d5922899d65686 > change-id: 20250609-update_pm_macro-b6def2446904 > > Best regards, ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] spi: st: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() 2025-07-13 13:56 ` Raphaël Gallais-Pou @ 2025-07-13 21:39 ` Mark Brown 0 siblings, 0 replies; 7+ messages in thread From: Mark Brown @ 2025-07-13 21:39 UTC (permalink / raw) To: Raphaël Gallais-Pou; +Cc: linux-spi, linux-kernel [-- Attachment #1: Type: text/plain, Size: 1207 bytes --] On Sun, Jul 13, 2025 at 03:56:48PM +0200, Raphaël Gallais-Pou wrote: > Le 09/06/2025 à 23:21, Raphael Gallais-Pou a écrit : > > Letting the compiler remove these functions when the kernel is built > > without CONFIG_PM_SLEEP support is simpler and less error prone than the > > use of #ifdef based kernel configuration guards. > > > > Signed-off-by: Raphael Gallais-Pou <rgallaispou@gmail.com> > > Hi Mark, > > Gentle ping ! :) Please don't send content free pings and please allow a reasonable time for review. People get busy, go on holiday, attend conferences and so on so unless there is some reason for urgency (like critical bug fixes) please allow at least a couple of weeks for review. If there have been review comments then people may be waiting for those to be addressed. Sending content free pings adds to the mail volume (if they are seen at all) which is often the problem and since they can't be reviewed directly if something has gone wrong you'll have to resend the patches anyway, so sending again is generally a better approach though there are some other maintainers who like them - if in doubt look at how patches for the subsystem are normally handled. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] spi: st: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() 2025-06-09 21:21 [PATCH] spi: st: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() Raphael Gallais-Pou 2025-07-13 13:56 ` Raphaël Gallais-Pou @ 2025-07-15 21:18 ` Mark Brown 2025-07-28 7:35 ` Geert Uytterhoeven 2 siblings, 0 replies; 7+ messages in thread From: Mark Brown @ 2025-07-15 21:18 UTC (permalink / raw) To: Raphael Gallais-Pou; +Cc: linux-spi, linux-kernel On Mon, 09 Jun 2025 23:21:09 +0200, Raphael Gallais-Pou wrote: > Letting the compiler remove these functions when the kernel is built > without CONFIG_PM_SLEEP support is simpler and less error prone than the > use of #ifdef based kernel configuration guards. > > Applied to https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next Thanks! [1/1] spi: st: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() commit: 6f8584a4826f01a55d3d0c4bbad5961f1de52fc9 All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted. You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed. If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced. Please add any relevant lists and maintainers to the CCs when replying to this mail. Thanks, Mark ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] spi: st: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() 2025-06-09 21:21 [PATCH] spi: st: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() Raphael Gallais-Pou 2025-07-13 13:56 ` Raphaël Gallais-Pou 2025-07-15 21:18 ` Mark Brown @ 2025-07-28 7:35 ` Geert Uytterhoeven 2025-07-30 15:38 ` Raphaël Gallais-Pou 2 siblings, 1 reply; 7+ messages in thread From: Geert Uytterhoeven @ 2025-07-28 7:35 UTC (permalink / raw) To: Raphael Gallais-Pou; +Cc: Mark Brown, linux-spi, linux-kernel Hi Raphael, On Tue, 10 Jun 2025 at 16:59, Raphael Gallais-Pou <rgallaispou@gmail.com> wrote: > Letting the compiler remove these functions when the kernel is built > without CONFIG_PM_SLEEP support is simpler and less error prone than the > use of #ifdef based kernel configuration guards. > > Signed-off-by: Raphael Gallais-Pou <rgallaispou@gmail.com> Thanks for your patch, which is now commit 7d61715c58a39edc ("spi: rspi: Convert to DEFINE_SIMPLE_DEV_PM_OPS()") in spi/for-next. > --- a/drivers/spi/spi-st-ssc4.c > +++ b/drivers/spi/spi-st-ssc4.c > @@ -378,8 +378,7 @@ static void spi_st_remove(struct platform_device *pdev) > pinctrl_pm_select_sleep_state(&pdev->dev); > } > > -#ifdef CONFIG_PM > -static int spi_st_runtime_suspend(struct device *dev) > +static int __maybe_unused spi_st_runtime_suspend(struct device *dev) The __maybe_unused can be removed, too... > @@ -429,7 +426,6 @@ static int spi_st_resume(struct device *dev) > > return pm_runtime_force_resume(dev); > } > -#endif > > static const struct dev_pm_ops spi_st_pm = { > SET_SYSTEM_SLEEP_PM_OPS(spi_st_suspend, spi_st_resume) ... if you would update these, too: - SET_SYSTEM_SLEEP_PM_OPS(spi_st_suspend, spi_st_resume) - SET_RUNTIME_PM_OPS(spi_st_runtime_suspend, spi_st_runtime_resume, NULL) + SYSTEM_SLEEP_PM_OPS(spi_st_suspend, spi_st_resume) + RUNTIME_PM_OPS(spi_st_runtime_suspend, spi_st_runtime_resume, NULL) > @@ -445,7 +441,7 @@ MODULE_DEVICE_TABLE(of, stm_spi_match); > static struct platform_driver spi_st_driver = { > .driver = { > .name = "spi-st", > - .pm = &spi_st_pm, > + .pm = pm_sleep_ptr(&spi_st_pm), This should use pm_ptr() instead, as spi_st_pm defines not only system sleep ops, but also Runtime PM ops. > .of_match_table = of_match_ptr(stm_spi_match), > }, > .probe = spi_st_probe, Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] spi: st: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() 2025-07-28 7:35 ` Geert Uytterhoeven @ 2025-07-30 15:38 ` Raphaël Gallais-Pou 2025-07-30 18:32 ` Geert Uytterhoeven 0 siblings, 1 reply; 7+ messages in thread From: Raphaël Gallais-Pou @ 2025-07-30 15:38 UTC (permalink / raw) To: Geert Uytterhoeven; +Cc: Mark Brown, linux-spi, linux-kernel Le 28/07/2025 à 09:35, Geert Uytterhoeven a écrit : > Hi Raphael, > > On Tue, 10 Jun 2025 at 16:59, Raphael Gallais-Pou <rgallaispou@gmail.com> wrote: >> Letting the compiler remove these functions when the kernel is built >> without CONFIG_PM_SLEEP support is simpler and less error prone than the >> use of #ifdef based kernel configuration guards. >> >> Signed-off-by: Raphael Gallais-Pou <rgallaispou@gmail.com> > > Thanks for your patch, which is now commit 7d61715c58a39edc ("spi: > rspi: Convert to DEFINE_SIMPLE_DEV_PM_OPS()") in spi/for-next. Hi Geert, Did you mean commit 6f8584a4826f ("spi: st: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr()", 2025-06-09) ? 7d61715c58a39edc ("spi: rspi: Convert to DEFINE_SIMPLE_DEV_PM_OPS()") points to another reference, authored by you. :)> >> --- a/drivers/spi/spi-st-ssc4.c >> +++ b/drivers/spi/spi-st-ssc4.c >> @@ -378,8 +378,7 @@ static void spi_st_remove(struct platform_device *pdev) >> pinctrl_pm_select_sleep_state(&pdev->dev); >> } >> >> -#ifdef CONFIG_PM >> -static int spi_st_runtime_suspend(struct device *dev) >> +static int __maybe_unused spi_st_runtime_suspend(struct device *dev) > > The __maybe_unused can be removed, too... > >> @@ -429,7 +426,6 @@ static int spi_st_resume(struct device *dev) >> >> return pm_runtime_force_resume(dev); >> } >> -#endif >> >> static const struct dev_pm_ops spi_st_pm = { >> SET_SYSTEM_SLEEP_PM_OPS(spi_st_suspend, spi_st_resume) > > ... if you would update these, too: > > - SET_SYSTEM_SLEEP_PM_OPS(spi_st_suspend, spi_st_resume) > - SET_RUNTIME_PM_OPS(spi_st_runtime_suspend, spi_st_runtime_resume, NULL) > + SYSTEM_SLEEP_PM_OPS(spi_st_suspend, spi_st_resume) > + RUNTIME_PM_OPS(spi_st_runtime_suspend, spi_st_runtime_resume, NULL) > >> @@ -445,7 +441,7 @@ MODULE_DEVICE_TABLE(of, stm_spi_match); >> static struct platform_driver spi_st_driver = { >> .driver = { >> .name = "spi-st", >> - .pm = &spi_st_pm, >> + .pm = pm_sleep_ptr(&spi_st_pm), > > This should use pm_ptr() instead, as spi_st_pm defines not only system > sleep ops, but also Runtime PM ops. Anyway, that is indeed a good catch. I actually got lost between CONFIG_PM and CONFIG_PM_SLEEP, which is now clarified. I made a fix, but will send it after my summer break. Thanks, Best regards, Raphaël> >> .of_match_table = of_match_ptr(stm_spi_match), >> }, >> .probe = spi_st_probe, > > Gr{oetje,eeting}s, > > Geert > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] spi: st: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() 2025-07-30 15:38 ` Raphaël Gallais-Pou @ 2025-07-30 18:32 ` Geert Uytterhoeven 0 siblings, 0 replies; 7+ messages in thread From: Geert Uytterhoeven @ 2025-07-30 18:32 UTC (permalink / raw) To: Raphaël Gallais-Pou; +Cc: Mark Brown, linux-spi, linux-kernel Hi Raphaël, On Wed, 30 Jul 2025 at 17:38, Raphaël Gallais-Pou <rgallaispou@gmail.com> wrote: > Le 28/07/2025 à 09:35, Geert Uytterhoeven a écrit : > > On Tue, 10 Jun 2025 at 16:59, Raphael Gallais-Pou <rgallaispou@gmail.com> wrote: > >> Letting the compiler remove these functions when the kernel is built > >> without CONFIG_PM_SLEEP support is simpler and less error prone than the > >> use of #ifdef based kernel configuration guards. > >> > >> Signed-off-by: Raphael Gallais-Pou <rgallaispou@gmail.com> > > > > Thanks for your patch, which is now commit 7d61715c58a39edc ("spi: > > rspi: Convert to DEFINE_SIMPLE_DEV_PM_OPS()") in spi/for-next. > > Did you mean commit 6f8584a4826f ("spi: st: Switch from CONFIG_PM_SLEEP > guards to pm_sleep_ptr()", 2025-06-09) ? Oops, you are right. Sorry for the confusion. > 7d61715c58a39edc ("spi: rspi: Convert to DEFINE_SIMPLE_DEV_PM_OPS()") > points to another reference, authored by you. :)> > >> --- a/drivers/spi/spi-st-ssc4.c > >> +++ b/drivers/spi/spi-st-ssc4.c > >> @@ -378,8 +378,7 @@ static void spi_st_remove(struct platform_device *pdev) > >> pinctrl_pm_select_sleep_state(&pdev->dev); > >> } > >> > >> -#ifdef CONFIG_PM > >> -static int spi_st_runtime_suspend(struct device *dev) > >> +static int __maybe_unused spi_st_runtime_suspend(struct device *dev) > > > > The __maybe_unused can be removed, too... > > > >> @@ -429,7 +426,6 @@ static int spi_st_resume(struct device *dev) > >> > >> return pm_runtime_force_resume(dev); > >> } > >> -#endif > >> > >> static const struct dev_pm_ops spi_st_pm = { > >> SET_SYSTEM_SLEEP_PM_OPS(spi_st_suspend, spi_st_resume) > > > > ... if you would update these, too: > > > > - SET_SYSTEM_SLEEP_PM_OPS(spi_st_suspend, spi_st_resume) > > - SET_RUNTIME_PM_OPS(spi_st_runtime_suspend, spi_st_runtime_resume, NULL) > > + SYSTEM_SLEEP_PM_OPS(spi_st_suspend, spi_st_resume) > > + RUNTIME_PM_OPS(spi_st_runtime_suspend, spi_st_runtime_resume, NULL) > > > >> @@ -445,7 +441,7 @@ MODULE_DEVICE_TABLE(of, stm_spi_match); > >> static struct platform_driver spi_st_driver = { > >> .driver = { > >> .name = "spi-st", > >> - .pm = &spi_st_pm, > >> + .pm = pm_sleep_ptr(&spi_st_pm), > > > > This should use pm_ptr() instead, as spi_st_pm defines not only system > > sleep ops, but also Runtime PM ops. > > > Anyway, that is indeed a good catch. I actually got lost between > CONFIG_PM and CONFIG_PM_SLEEP, which is now clarified. > > I made a fix, but will send it after my summer break. OK, looking forward to it! Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2025-07-30 18:32 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-06-09 21:21 [PATCH] spi: st: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr() Raphael Gallais-Pou 2025-07-13 13:56 ` Raphaël Gallais-Pou 2025-07-13 21:39 ` Mark Brown 2025-07-15 21:18 ` Mark Brown 2025-07-28 7:35 ` Geert Uytterhoeven 2025-07-30 15:38 ` Raphaël Gallais-Pou 2025-07-30 18:32 ` Geert Uytterhoeven
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).