linux-mmc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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

* [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 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

* 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).