diff mbox

[v3] mmc: sdhci-acpi: support deferred probe

Message ID 1484305415.2221.45.camel@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Zhang Rui Jan. 13, 2017, 11:03 a.m. UTC
From c889f737322b797b743c63eda241d0283696d3f5 Mon Sep 17 00:00:00 2001
From: Zhang Rui <rui.zhang@intel.com>
Date: Wed, 7 Dec 2016 13:13:31 +0800
Subject: [PATCH v3] mmc: sdhci-acpi: support deferred probe

With commit 67bf5156edc4 ("gpio / ACPI: fix returned error from
acpi_dev_gpio_irq_get()"), mmc_gpiod_request_cd() returns -EPROBE_DEFER if
GPIO is not ready when sdhci-acpi driver is probed, and sdhci-acpi driver
should be probed again later in this case.

This fixes an order issue when both GPIO and sdhci-acpi drivers are built
as modules.

CC: stable@vger.kernel.org # v4.9
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=177101
Tested-by: Jonas Aaberg <cja@gmx.net>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
---
 drivers/mmc/host/sdhci-acpi.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

-- 
2.7.4

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Ulf Hansson Jan. 17, 2017, 2:23 p.m. UTC | #1
On 13 January 2017 at 12:03, Zhang Rui <rui.zhang@intel.com> wrote:
> From c889f737322b797b743c63eda241d0283696d3f5 Mon Sep 17 00:00:00 2001
> From: Zhang Rui <rui.zhang@intel.com>
> Date: Wed, 7 Dec 2016 13:13:31 +0800
> Subject: [PATCH v3] mmc: sdhci-acpi: support deferred probe
>
> With commit 67bf5156edc4 ("gpio / ACPI: fix returned error from
> acpi_dev_gpio_irq_get()"), mmc_gpiod_request_cd() returns -EPROBE_DEFER if
> GPIO is not ready when sdhci-acpi driver is probed, and sdhci-acpi driver
> should be probed again later in this case.
>
> This fixes an order issue when both GPIO and sdhci-acpi drivers are built
> as modules.
>
> CC: stable@vger.kernel.org # v4.9
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=177101
> Tested-by: Jonas Aaberg <cja@gmx.net>
> Signed-off-by: Zhang Rui <rui.zhang@intel.com>
> Acked-by: Adrian Hunter <adrian.hunter@intel.com>

I strongly encourage you to run checkpatch of all your change before
submitting patches. Below is the output, it gave me. It prevents me
from applying the change. Please fix and re-spin!

ERROR: Please use git commit description style 'commit <12+ chars of
sha1> ("<title line>")' - ie: 'commit fatal: bad o
("da241d0283696d3f5")'
#14:
>From c889f737322b797b743c63eda241d0283696d3f5 Mon Sep 17 00:00:00 2001

ERROR: patch seems to be corrupt (line wrapped?)
#49: FILE: drivers/mmc/host/sdhci-acpi.c:465:
     if (sdhci_acpi_flag(c, SDHCI_ACPI_SD_CD)) {

total: 2 errors, 0 warnings, 11 lines checked

Kind regards
Uffe

> ---
>  drivers/mmc/host/sdhci-acpi.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/sdhci-acpi.c b/drivers/mmc/host/sdhci-acpi.c
> index 160f695cc09c..5440323894ee 100644
> --- a/drivers/mmc/host/sdhci-acpi.c
> +++ b/drivers/mmc/host/sdhci-acpi.c
> @@ -466,7 +466,10 @@ static int sdhci_acpi_probe(struct platform_device *pdev)
>         if (sdhci_acpi_flag(c, SDHCI_ACPI_SD_CD)) {
>                 bool v = sdhci_acpi_flag(c, SDHCI_ACPI_SD_CD_OVERRIDE_LEVEL);
>
> -               if (mmc_gpiod_request_cd(host->mmc, NULL, 0, v, 0, NULL)) {
> +               err = mmc_gpiod_request_cd(host->mmc, NULL, 0, v, 0, NULL);
> +               if (err) {
> +                       if (err == -EPROBE_DEFER)
> +                               goto err_free;
>                         dev_warn(dev, "failed to setup card detect gpio\n");
>                         c->use_runtime_pm = false;
>                 }
> --
> 2.7.4
>
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Zhang Rui Jan. 18, 2017, 9:45 a.m. UTC | #2
Hi, Uffe,

On Tue, 2017-01-17 at 15:23 +0100, Ulf Hansson wrote:
> On 13 January 2017 at 12:03, Zhang Rui <rui.zhang@intel.com> wrote:
> > 
> > From c889f737322b797b743c63eda241d0283696d3f5 Mon Sep 17 00:00:00
> > 2001
> > From: Zhang Rui <rui.zhang@intel.com>
> > Date: Wed, 7 Dec 2016 13:13:31 +0800
> > Subject: [PATCH v3] mmc: sdhci-acpi: support deferred probe
> > 
> > With commit 67bf5156edc4 ("gpio / ACPI: fix returned error from
> > acpi_dev_gpio_irq_get()"), mmc_gpiod_request_cd() returns
> > -EPROBE_DEFER if
> > GPIO is not ready when sdhci-acpi driver is probed, and sdhci-acpi
> > driver
> > should be probed again later in this case.
> > 
> > This fixes an order issue when both GPIO and sdhci-acpi drivers are
> > built
> > as modules.
> > 
> > CC: stable@vger.kernel.org # v4.9
> > Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=177101
> > Tested-by: Jonas Aaberg <cja@gmx.net>
> > Signed-off-by: Zhang Rui <rui.zhang@intel.com>
> > Acked-by: Adrian Hunter <adrian.hunter@intel.com>
> I strongly encourage you to run checkpatch of all your change before
> submitting patches.
>  Below is the output, it gave me. It prevents me
> from applying the change. Please fix and re-spin!
> 
Sorry for bring the trouble.
In fact, I indeed run checkpatch before sending it out.

> ERROR: Please use git commit description style 'commit <12+ chars of
> sha1> ("<title line>")' - ie: 'commit fatal: bad o
> ("da241d0283696d3f5")'
> #14:
> > 
> > From c889f737322b797b743c63eda241d0283696d3f5 Mon Sep 17 00:00:00
> > 2001
> ERROR: patch seems to be corrupt (line wrapped?)
> #49: FILE: drivers/mmc/host/sdhci-acpi.c:465:
>      if (sdhci_acpi_flag(c, SDHCI_ACPI_SD_CD)) {
> 
> total: 2 errors, 0 warnings, 11 lines checked
> 
I tried to resend the patch to myself, and find out the patch is
corrupted when it's sent via evolution. Although I have not used
evolution to send patch for a long time, but it indeed works for me
before.

Patch resent. Sorry again for the noise.

thanks,
rui

> Kind regards
> Uffe
> 
> > 
> > ---
> >  drivers/mmc/host/sdhci-acpi.c | 5 ++++-
> >  1 file changed, 4 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/mmc/host/sdhci-acpi.c
> > b/drivers/mmc/host/sdhci-acpi.c
> > index 160f695cc09c..5440323894ee 100644
> > --- a/drivers/mmc/host/sdhci-acpi.c
> > +++ b/drivers/mmc/host/sdhci-acpi.c
> > @@ -466,7 +466,10 @@ static int sdhci_acpi_probe(struct
> > platform_device *pdev)
> >         if (sdhci_acpi_flag(c, SDHCI_ACPI_SD_CD)) {
> >                 bool v = sdhci_acpi_flag(c,
> > SDHCI_ACPI_SD_CD_OVERRIDE_LEVEL);
> > 
> > -               if (mmc_gpiod_request_cd(host->mmc, NULL, 0, v, 0,
> > NULL)) {
> > +               err = mmc_gpiod_request_cd(host->mmc, NULL, 0, v,
> > 0, NULL);
> > +               if (err) {
> > +                       if (err == -EPROBE_DEFER)
> > +                               goto err_free;
> >                         dev_warn(dev, "failed to setup card detect
> > gpio\n");
> >                         c->use_runtime_pm = false;
> >                 }
> > --
> > 2.7.4
> > 
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/mmc/host/sdhci-acpi.c b/drivers/mmc/host/sdhci-acpi.c
index 160f695cc09c..5440323894ee 100644
--- a/drivers/mmc/host/sdhci-acpi.c
+++ b/drivers/mmc/host/sdhci-acpi.c
@@ -466,7 +466,10 @@  static int sdhci_acpi_probe(struct platform_device *pdev)
 	if (sdhci_acpi_flag(c, SDHCI_ACPI_SD_CD)) {
 		bool v = sdhci_acpi_flag(c, SDHCI_ACPI_SD_CD_OVERRIDE_LEVEL);
 
-		if (mmc_gpiod_request_cd(host->mmc, NULL, 0, v, 0, NULL)) {
+		err = mmc_gpiod_request_cd(host->mmc, NULL, 0, v, 0, NULL);
+		if (err) {
+			if (err == -EPROBE_DEFER)
+				goto err_free;
 			dev_warn(dev, "failed to setup card detect gpio\n");
 			c->use_runtime_pm = false;
 		}