Message ID | 20250410140921.849213-1-arnd@kernel.org |
---|---|
State | New |
Headers | show |
Series | mmc: esdhc-imx: convert to modern PM_OPS | expand |
On 11/04/25 08:45, Arnd Bergmann wrote: > On Fri, Apr 11, 2025, at 04:45, Bough Chen wrote: >>> From: Arnd Bergmann <arnd@kernel.org> >>> drivers/mmc/host/sdhci-esdhc-imx.c:1586:13: error: unused function >>> 'sdhc_esdhc_tuning_save' [-Werror,-Wunused-function] >>> 1586 | static void sdhc_esdhc_tuning_save(struct sdhci_host *host) >>> | ^~~~~~~~~~~~~~~~~~~~~~ >>> drivers/mmc/host/sdhci-esdhc-imx.c:1608:13: error: unused function >>> 'sdhc_esdhc_tuning_restore' [-Werror,-Wunused-function] >>> 1608 | static void sdhc_esdhc_tuning_restore(struct sdhci_host *host) >>> | ^~~~~~~~~~~~~~~~~~~~~~~~~ >>> >>> Remove the #ifdef checks and instead use the better macros that silently drop >>> the unused functions when PM is disabled. >> >> Thanks for this catching. >> >> How about add __maybe_unused to define this tuning_save/retore function? > > That sounds counterproductive. > > The new macros were introduced to allow removing all the pointless > __maybe_unused annotations, I see no reason to stick with the > legacy helpers here. > > I did make a small mistake and ran into another warning later, > but this fixup should address that: > > --- a/drivers/mmc/host/sdhci-esdhc-imx.c > +++ b/drivers/mmc/host/sdhci-esdhc-imx.c > @@ -2112,7 +2112,7 @@ static struct platform_driver sdhci_esdhc_imx_driver = { > .name = "sdhci-esdhc-imx", > .probe_type = PROBE_PREFER_ASYNCHRONOUS, > .of_match_table = imx_esdhc_dt_ids, > - .pm = &sdhci_esdhc_pmops, > + .pm = pm_ptr(&sdhci_esdhc_pmops), > }, > .probe = sdhci_esdhc_imx_probe, > .remove = sdhci_esdhc_imx_remove, > Can someone provide a Tested-by?
diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c index 7e8addaed697..8742622da55a 100644 --- a/drivers/mmc/host/sdhci-esdhc-imx.c +++ b/drivers/mmc/host/sdhci-esdhc-imx.c @@ -1942,7 +1942,6 @@ static void sdhci_esdhc_imx_remove(struct platform_device *pdev) sdhci_pltfm_free(pdev); } -#ifdef CONFIG_PM_SLEEP static int sdhci_esdhc_suspend(struct device *dev) { struct sdhci_host *host = dev_get_drvdata(dev); @@ -2021,9 +2020,7 @@ static int sdhci_esdhc_resume(struct device *dev) return ret; } -#endif -#ifdef CONFIG_PM static int sdhci_esdhc_runtime_suspend(struct device *dev) { struct sdhci_host *host = dev_get_drvdata(dev); @@ -2103,11 +2100,10 @@ static int sdhci_esdhc_runtime_resume(struct device *dev) cpu_latency_qos_remove_request(&imx_data->pm_qos_req); return err; } -#endif static const struct dev_pm_ops sdhci_esdhc_pmops = { - SET_SYSTEM_SLEEP_PM_OPS(sdhci_esdhc_suspend, sdhci_esdhc_resume) - SET_RUNTIME_PM_OPS(sdhci_esdhc_runtime_suspend, + SYSTEM_SLEEP_PM_OPS(sdhci_esdhc_suspend, sdhci_esdhc_resume) + RUNTIME_PM_OPS(sdhci_esdhc_runtime_suspend, sdhci_esdhc_runtime_resume, NULL) };