Re: [PATCH RFC 14/14] ahci: sata_rcar: Switch from CONFIG_PM_SLEEP guards to pm_sleep_ptr()

From: Geert Uytterhoeven
Date: Mon Jan 27 2025 - 08:45:46 EST


Hi Raphael,

On Mon, 27 Jan 2025 at 13:46, Raphael Gallais-Pou <rgallaispou@xxxxxxxxx> 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@xxxxxxxxx>

Thanks for your patch!

The subsystem prefix is "ata", not "ahci" (not all ATA-drivers are
AHCI-drivers).

> --- a/drivers/ata/sata_rcar.c
> +++ b/drivers/ata/sata_rcar.c
> @@ -927,7 +927,6 @@ static void sata_rcar_remove(struct platform_device *pdev)
> pm_runtime_disable(&pdev->dev);
> }
>
> -#ifdef CONFIG_PM_SLEEP
> static int sata_rcar_suspend(struct device *dev)
> {
> struct ata_host *host = dev_get_drvdata(dev);
> @@ -1005,7 +1004,6 @@ static const struct dev_pm_ops sata_rcar_pm_ops = {
> .poweroff = sata_rcar_suspend,
> .restore = sata_rcar_restore,
> };
> -#endif

If CONFIG_PM_SLEEP is disabled (e.g. m68k allyesconfig):

drivers/ata/sata_rcar.c: In function ‘sata_rcar_suspend’:
drivers/ata/sata_rcar.c:936:9: error: implicit declaration of
function ‘ata_host_suspend’; did you mean ‘sata_rcar_suspend’?
[-Werror=implicit-function-declaration]
936 | ata_host_suspend(host, PMSG_SUSPEND);
| ^~~~~~~~~~~~~~~~
| sata_rcar_suspend
drivers/ata/sata_rcar.c: In function ‘sata_rcar_resume’:
drivers/ata/sata_rcar.c:973:9: error: implicit declaration of
function ‘ata_host_resume’; did you mean ‘sata_rcar_resume’?
[-Werror=implicit-function-declaration]
973 | ata_host_resume(host);
| ^~~~~~~~~~~~~~~
| sata_rcar_resume

>
> static struct platform_driver sata_rcar_driver = {
> .probe = sata_rcar_probe,
> @@ -1013,9 +1011,7 @@ static struct platform_driver sata_rcar_driver = {
> .driver = {
> .name = DRV_NAME,
> .of_match_table = sata_rcar_match,
> -#ifdef CONFIG_PM_SLEEP
> - .pm = &sata_rcar_pm_ops,
> -#endif
> + .pm = pm_sleep_ptr(&sata_rcar_pm_ops),
> },
> };

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

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