* [PATCH v1 0/2] mmc: sdhci-acpi: Spring cleanup @ 2024-04-12 18:46 Andy Shevchenko 2024-04-12 18:46 ` [PATCH v1 1/2] mmc: sdhci-acpi: Switch to SYSTEM_SLEEP_PM_OPS()/RUNTIME_PM_OPS() and pm_ptr() Andy Shevchenko 2024-04-12 18:46 ` [PATCH v1 2/2] mmc: sdhci-acpi: Use devm_platform_ioremap_resource() Andy Shevchenko 0 siblings, 2 replies; 6+ messages in thread From: Andy Shevchenko @ 2024-04-12 18:46 UTC (permalink / raw) To: Andy Shevchenko, linux-mmc, linux-kernel; +Cc: Adrian Hunter, Ulf Hansson Two independent cleanups for the driver because of new available APIs. Andy Shevchenko (2): mmc: sdhci-acpi: Switch to SYSTEM_SLEEP_PM_OPS()/RUNTIME_PM_OPS() and pm_ptr() mmc: sdhci-acpi: Use devm_platform_ioremap_resource() drivers/mmc/host/sdhci-acpi.c | 35 ++++++----------------------------- 1 file changed, 6 insertions(+), 29 deletions(-) -- 2.43.0.rc1.1336.g36b5255a03ac ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v1 1/2] mmc: sdhci-acpi: Switch to SYSTEM_SLEEP_PM_OPS()/RUNTIME_PM_OPS() and pm_ptr() 2024-04-12 18:46 [PATCH v1 0/2] mmc: sdhci-acpi: Spring cleanup Andy Shevchenko @ 2024-04-12 18:46 ` Andy Shevchenko 2024-04-15 5:10 ` kernel test robot 2024-04-12 18:46 ` [PATCH v1 2/2] mmc: sdhci-acpi: Use devm_platform_ioremap_resource() Andy Shevchenko 1 sibling, 1 reply; 6+ messages in thread From: Andy Shevchenko @ 2024-04-12 18:46 UTC (permalink / raw) To: Andy Shevchenko, linux-mmc, linux-kernel; +Cc: Adrian Hunter, Ulf Hansson SET_SYSTEM_SLEEP_PM_OPS() and SET_RUNTIME_PM_OPS() are deprecated now and require an ifdeffery protection against unused function warnings. The usage of pm_ptr() and SYSTEM_SLEEP_PM_OPS()/RUNTIME_PM_OPS() allows the compiler to see the functions, thus suppressing the warning. Thus drop the ifdeffery protection. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- drivers/mmc/host/sdhci-acpi.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/drivers/mmc/host/sdhci-acpi.c b/drivers/mmc/host/sdhci-acpi.c index acf5fc3ad7e4..32ae6f763c1d 100644 --- a/drivers/mmc/host/sdhci-acpi.c +++ b/drivers/mmc/host/sdhci-acpi.c @@ -957,8 +957,6 @@ static void __maybe_unused sdhci_acpi_reset_signal_voltage_if_needed( } } -#ifdef CONFIG_PM_SLEEP - static int sdhci_acpi_suspend(struct device *dev) { struct sdhci_acpi_host *c = dev_get_drvdata(dev); @@ -985,10 +983,6 @@ static int sdhci_acpi_resume(struct device *dev) return sdhci_resume_host(c->host); } -#endif - -#ifdef CONFIG_PM - static int sdhci_acpi_runtime_suspend(struct device *dev) { struct sdhci_acpi_host *c = dev_get_drvdata(dev); @@ -1015,12 +1009,9 @@ static int sdhci_acpi_runtime_resume(struct device *dev) return sdhci_runtime_resume_host(c->host, 0); } -#endif - static const struct dev_pm_ops sdhci_acpi_pm_ops = { - SET_SYSTEM_SLEEP_PM_OPS(sdhci_acpi_suspend, sdhci_acpi_resume) - SET_RUNTIME_PM_OPS(sdhci_acpi_runtime_suspend, - sdhci_acpi_runtime_resume, NULL) + SYSTEM_SLEEP_PM_OPS(sdhci_acpi_suspend, sdhci_acpi_resume) + RUNTIME_PM_OPS(sdhci_acpi_runtime_suspend, sdhci_acpi_runtime_resume, NULL) }; static struct platform_driver sdhci_acpi_driver = { @@ -1028,7 +1019,7 @@ static struct platform_driver sdhci_acpi_driver = { .name = "sdhci-acpi", .probe_type = PROBE_PREFER_ASYNCHRONOUS, .acpi_match_table = sdhci_acpi_ids, - .pm = &sdhci_acpi_pm_ops, + .pm = pm_ptr(&sdhci_acpi_pm_ops), }, .probe = sdhci_acpi_probe, .remove_new = sdhci_acpi_remove, -- 2.43.0.rc1.1336.g36b5255a03ac ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v1 1/2] mmc: sdhci-acpi: Switch to SYSTEM_SLEEP_PM_OPS()/RUNTIME_PM_OPS() and pm_ptr() 2024-04-12 18:46 ` [PATCH v1 1/2] mmc: sdhci-acpi: Switch to SYSTEM_SLEEP_PM_OPS()/RUNTIME_PM_OPS() and pm_ptr() Andy Shevchenko @ 2024-04-15 5:10 ` kernel test robot 0 siblings, 0 replies; 6+ messages in thread From: kernel test robot @ 2024-04-15 5:10 UTC (permalink / raw) To: Andy Shevchenko, linux-mmc, linux-kernel Cc: llvm, oe-kbuild-all, Adrian Hunter, Ulf Hansson Hi Andy, kernel test robot noticed the following build errors: [auto build test ERROR on linus/master] [also build test ERROR on v6.9-rc4 next-20240412] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Andy-Shevchenko/mmc-sdhci-acpi-Switch-to-SYSTEM_SLEEP_PM_OPS-RUNTIME_PM_OPS-and-pm_ptr/20240415-093843 base: linus/master patch link: https://lore.kernel.org/r/20240412184706.366879-3-andriy.shevchenko%40linux.intel.com patch subject: [PATCH v1 1/2] mmc: sdhci-acpi: Switch to SYSTEM_SLEEP_PM_OPS()/RUNTIME_PM_OPS() and pm_ptr() config: i386-randconfig-002-20240415 (https://download.01.org/0day-ci/archive/20240415/202404151250.mJXR8RpZ-lkp@intel.com/config) compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240415/202404151250.mJXR8RpZ-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202404151250.mJXR8RpZ-lkp@intel.com/ All errors (new ones prefixed by >>): >> drivers/mmc/host/sdhci-acpi.c:969:8: error: call to undeclared function 'sdhci_suspend_host'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 969 | ret = sdhci_suspend_host(host); | ^ >> drivers/mmc/host/sdhci-acpi.c:983:9: error: call to undeclared function 'sdhci_resume_host'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 983 | return sdhci_resume_host(c->host); | ^ drivers/mmc/host/sdhci-acpi.c:983:9: note: did you mean 'sdhci_remove_host'? drivers/mmc/host/sdhci.h:771:6: note: 'sdhci_remove_host' declared here 771 | void sdhci_remove_host(struct sdhci_host *host, int dead); | ^ >> drivers/mmc/host/sdhci-acpi.c:995:8: error: call to undeclared function 'sdhci_runtime_suspend_host'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 995 | ret = sdhci_runtime_suspend_host(host); | ^ >> drivers/mmc/host/sdhci-acpi.c:1009:9: error: call to undeclared function 'sdhci_runtime_resume_host'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 1009 | return sdhci_runtime_resume_host(c->host, 0); | ^ 4 errors generated. vim +/sdhci_suspend_host +969 drivers/mmc/host/sdhci-acpi.c 84d49b3d08a1d3 Hans de Goede 2020-03-16 959 c4e050376c69bb Adrian Hunter 2012-11-23 960 static int sdhci_acpi_suspend(struct device *dev) c4e050376c69bb Adrian Hunter 2012-11-23 961 { c4e050376c69bb Adrian Hunter 2012-11-23 962 struct sdhci_acpi_host *c = dev_get_drvdata(dev); d38dcad4e7b48f Adrian Hunter 2017-03-20 963 struct sdhci_host *host = c->host; 84d49b3d08a1d3 Hans de Goede 2020-03-16 964 int ret; c4e050376c69bb Adrian Hunter 2012-11-23 965 d38dcad4e7b48f Adrian Hunter 2017-03-20 966 if (host->tuning_mode != SDHCI_TUNING_MODE_3) d38dcad4e7b48f Adrian Hunter 2017-03-20 967 mmc_retune_needed(host->mmc); d38dcad4e7b48f Adrian Hunter 2017-03-20 968 84d49b3d08a1d3 Hans de Goede 2020-03-16 @969 ret = sdhci_suspend_host(host); 84d49b3d08a1d3 Hans de Goede 2020-03-16 970 if (ret) 84d49b3d08a1d3 Hans de Goede 2020-03-16 971 return ret; 84d49b3d08a1d3 Hans de Goede 2020-03-16 972 84d49b3d08a1d3 Hans de Goede 2020-03-16 973 sdhci_acpi_reset_signal_voltage_if_needed(dev); 84d49b3d08a1d3 Hans de Goede 2020-03-16 974 return 0; c4e050376c69bb Adrian Hunter 2012-11-23 975 } c4e050376c69bb Adrian Hunter 2012-11-23 976 c4e050376c69bb Adrian Hunter 2012-11-23 977 static int sdhci_acpi_resume(struct device *dev) c4e050376c69bb Adrian Hunter 2012-11-23 978 { c4e050376c69bb Adrian Hunter 2012-11-23 979 struct sdhci_acpi_host *c = dev_get_drvdata(dev); c4e050376c69bb Adrian Hunter 2012-11-23 980 6e1c7d6103fe70 Adrian Hunter 2016-04-15 981 sdhci_acpi_byt_setting(&c->pdev->dev); 6e1c7d6103fe70 Adrian Hunter 2016-04-15 982 c4e050376c69bb Adrian Hunter 2012-11-23 @983 return sdhci_resume_host(c->host); c4e050376c69bb Adrian Hunter 2012-11-23 984 } c4e050376c69bb Adrian Hunter 2012-11-23 985 c4e050376c69bb Adrian Hunter 2012-11-23 986 static int sdhci_acpi_runtime_suspend(struct device *dev) c4e050376c69bb Adrian Hunter 2012-11-23 987 { c4e050376c69bb Adrian Hunter 2012-11-23 988 struct sdhci_acpi_host *c = dev_get_drvdata(dev); d38dcad4e7b48f Adrian Hunter 2017-03-20 989 struct sdhci_host *host = c->host; 84d49b3d08a1d3 Hans de Goede 2020-03-16 990 int ret; d38dcad4e7b48f Adrian Hunter 2017-03-20 991 d38dcad4e7b48f Adrian Hunter 2017-03-20 992 if (host->tuning_mode != SDHCI_TUNING_MODE_3) d38dcad4e7b48f Adrian Hunter 2017-03-20 993 mmc_retune_needed(host->mmc); c4e050376c69bb Adrian Hunter 2012-11-23 994 84d49b3d08a1d3 Hans de Goede 2020-03-16 @995 ret = sdhci_runtime_suspend_host(host); 84d49b3d08a1d3 Hans de Goede 2020-03-16 996 if (ret) 84d49b3d08a1d3 Hans de Goede 2020-03-16 997 return ret; 84d49b3d08a1d3 Hans de Goede 2020-03-16 998 84d49b3d08a1d3 Hans de Goede 2020-03-16 999 sdhci_acpi_reset_signal_voltage_if_needed(dev); 84d49b3d08a1d3 Hans de Goede 2020-03-16 1000 return 0; c4e050376c69bb Adrian Hunter 2012-11-23 1001 } c4e050376c69bb Adrian Hunter 2012-11-23 1002 c4e050376c69bb Adrian Hunter 2012-11-23 1003 static int sdhci_acpi_runtime_resume(struct device *dev) c4e050376c69bb Adrian Hunter 2012-11-23 1004 { c4e050376c69bb Adrian Hunter 2012-11-23 1005 struct sdhci_acpi_host *c = dev_get_drvdata(dev); c4e050376c69bb Adrian Hunter 2012-11-23 1006 6e1c7d6103fe70 Adrian Hunter 2016-04-15 1007 sdhci_acpi_byt_setting(&c->pdev->dev); 6e1c7d6103fe70 Adrian Hunter 2016-04-15 1008 c6303c5d52d5ec Baolin Wang 2019-07-25 @1009 return sdhci_runtime_resume_host(c->host, 0); c4e050376c69bb Adrian Hunter 2012-11-23 1010 } c4e050376c69bb Adrian Hunter 2012-11-23 1011 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v1 2/2] mmc: sdhci-acpi: Use devm_platform_ioremap_resource() 2024-04-12 18:46 [PATCH v1 0/2] mmc: sdhci-acpi: Spring cleanup Andy Shevchenko 2024-04-12 18:46 ` [PATCH v1 1/2] mmc: sdhci-acpi: Switch to SYSTEM_SLEEP_PM_OPS()/RUNTIME_PM_OPS() and pm_ptr() Andy Shevchenko @ 2024-04-12 18:46 ` Andy Shevchenko 2024-04-15 5:20 ` Christophe JAILLET 1 sibling, 1 reply; 6+ messages in thread From: Andy Shevchenko @ 2024-04-12 18:46 UTC (permalink / raw) To: Andy Shevchenko, linux-mmc, linux-kernel; +Cc: Adrian Hunter, Ulf Hansson The struct resource is not used for anything else, so we can simplify the code a bit by using the helper function. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- drivers/mmc/host/sdhci-acpi.c | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/drivers/mmc/host/sdhci-acpi.c b/drivers/mmc/host/sdhci-acpi.c index 32ae6f763c1d..b9c8eb87a01a 100644 --- a/drivers/mmc/host/sdhci-acpi.c +++ b/drivers/mmc/host/sdhci-acpi.c @@ -779,8 +779,6 @@ static int sdhci_acpi_probe(struct platform_device *pdev) struct acpi_device *device; struct sdhci_acpi_host *c; struct sdhci_host *host; - struct resource *iomem; - resource_size_t len; size_t priv_size; int quirks = 0; int err; @@ -801,17 +799,6 @@ static int sdhci_acpi_probe(struct platform_device *pdev) if (sdhci_acpi_byt_defer(dev)) return -EPROBE_DEFER; - iomem = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (!iomem) - return -ENOMEM; - - len = resource_size(iomem); - if (len < 0x100) - dev_err(dev, "Invalid iomem size!\n"); - - if (!devm_request_mem_region(dev, iomem->start, len, dev_name(dev))) - return -ENOMEM; - priv_size = slot ? slot->priv_size : 0; host = sdhci_alloc_host(dev, sizeof(struct sdhci_acpi_host) + priv_size); if (IS_ERR(host)) @@ -833,10 +820,9 @@ static int sdhci_acpi_probe(struct platform_device *pdev) goto err_free; } - host->ioaddr = devm_ioremap(dev, iomem->start, - resource_size(iomem)); - if (host->ioaddr == NULL) { - err = -ENOMEM; + host->ioaddr = devm_platform_ioremap_resource(pdev, 0); + if (IS_ERR(host->ioaddr)) { + err = PTR_ERR(host->ioaddr); goto err_free; } -- 2.43.0.rc1.1336.g36b5255a03ac ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v1 2/2] mmc: sdhci-acpi: Use devm_platform_ioremap_resource() 2024-04-12 18:46 ` [PATCH v1 2/2] mmc: sdhci-acpi: Use devm_platform_ioremap_resource() Andy Shevchenko @ 2024-04-15 5:20 ` Christophe JAILLET 2024-04-15 13:40 ` Andy Shevchenko 0 siblings, 1 reply; 6+ messages in thread From: Christophe JAILLET @ 2024-04-15 5:20 UTC (permalink / raw) To: Andy Shevchenko, linux-mmc, linux-kernel; +Cc: Adrian Hunter, Ulf Hansson Le 12/04/2024 à 20:46, Andy Shevchenko a écrit : > The struct resource is not used for anything else, so we can simplify > the code a bit by using the helper function. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > drivers/mmc/host/sdhci-acpi.c | 20 +++----------------- > 1 file changed, 3 insertions(+), 17 deletions(-) > > diff --git a/drivers/mmc/host/sdhci-acpi.c b/drivers/mmc/host/sdhci-acpi.c > index 32ae6f763c1d..b9c8eb87a01a 100644 > --- a/drivers/mmc/host/sdhci-acpi.c > +++ b/drivers/mmc/host/sdhci-acpi.c > @@ -779,8 +779,6 @@ static int sdhci_acpi_probe(struct platform_device *pdev) > struct acpi_device *device; > struct sdhci_acpi_host *c; > struct sdhci_host *host; > - struct resource *iomem; > - resource_size_t len; > size_t priv_size; > int quirks = 0; > int err; > @@ -801,17 +799,6 @@ static int sdhci_acpi_probe(struct platform_device *pdev) > if (sdhci_acpi_byt_defer(dev)) > return -EPROBE_DEFER; > > - iomem = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - if (!iomem) > - return -ENOMEM; > - > - len = resource_size(iomem); > - if (len < 0x100) > - dev_err(dev, "Invalid iomem size!\n"); HI, Was this test useful? Should it be mentioned in the commit message? CJ > - > - if (!devm_request_mem_region(dev, iomem->start, len, dev_name(dev))) > - return -ENOMEM; > - > priv_size = slot ? slot->priv_size : 0; > host = sdhci_alloc_host(dev, sizeof(struct sdhci_acpi_host) + priv_size); > if (IS_ERR(host)) > @@ -833,10 +820,9 @@ static int sdhci_acpi_probe(struct platform_device *pdev) > goto err_free; > } > > - host->ioaddr = devm_ioremap(dev, iomem->start, > - resource_size(iomem)); > - if (host->ioaddr == NULL) { > - err = -ENOMEM; > + host->ioaddr = devm_platform_ioremap_resource(pdev, 0); > + if (IS_ERR(host->ioaddr)) { > + err = PTR_ERR(host->ioaddr); > goto err_free; > } > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v1 2/2] mmc: sdhci-acpi: Use devm_platform_ioremap_resource() 2024-04-15 5:20 ` Christophe JAILLET @ 2024-04-15 13:40 ` Andy Shevchenko 0 siblings, 0 replies; 6+ messages in thread From: Andy Shevchenko @ 2024-04-15 13:40 UTC (permalink / raw) To: Christophe JAILLET; +Cc: linux-mmc, linux-kernel, Adrian Hunter, Ulf Hansson On Mon, Apr 15, 2024 at 07:20:49AM +0200, Christophe JAILLET wrote: > Le 12/04/2024 à 20:46, Andy Shevchenko a écrit : ... > > - len = resource_size(iomem); > > - if (len < 0x100) > > - dev_err(dev, "Invalid iomem size!\n"); > > Was this test useful? I'm not sure. ioremap anyway works on page size granularity on many architectures, but even besides that, the check was from day 1 for unknown reasons. Perhaps can be safely removed. > Should it be mentioned in the commit message? Or in a separate patch. I'll think about it. -- With Best Regards, Andy Shevchenko ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-04-15 13:40 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2024-04-12 18:46 [PATCH v1 0/2] mmc: sdhci-acpi: Spring cleanup Andy Shevchenko 2024-04-12 18:46 ` [PATCH v1 1/2] mmc: sdhci-acpi: Switch to SYSTEM_SLEEP_PM_OPS()/RUNTIME_PM_OPS() and pm_ptr() Andy Shevchenko 2024-04-15 5:10 ` kernel test robot 2024-04-12 18:46 ` [PATCH v1 2/2] mmc: sdhci-acpi: Use devm_platform_ioremap_resource() Andy Shevchenko 2024-04-15 5:20 ` Christophe JAILLET 2024-04-15 13:40 ` Andy Shevchenko
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).