diff mbox

mmc: sdhci-msm: Do not reset the controller if no card in the slot

Message ID 1466785499-7563-1-git-send-email-georgi.djakov@linaro.org (mailing list archive)
State New, archived
Headers show

Commit Message

Georgi Djakov June 24, 2016, 4:24 p.m. UTC
The controller does not clear the "reset bit" when it is reset without
a card in the slot. Because of this, the following error message is seen
while booting with no plugged SD card.

mmc1: Reset 0x1 never completed.

Add the SDHCI_QUIRK_NO_CARD_NO_RESET quirk to avoid this.

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
---
 drivers/mmc/host/sdhci-msm.c |    1 +
 1 file changed, 1 insertion(+)

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

Bjorn Andersson July 18, 2016, 5:46 p.m. UTC | #1
On Fri 24 Jun 09:24 PDT 2016, Georgi Djakov wrote:

> The controller does not clear the "reset bit" when it is reset without
> a card in the slot. Because of this, the following error message is seen
> while booting with no plugged SD card.
> 
> mmc1: Reset 0x1 never completed.
> 
> Add the SDHCI_QUIRK_NO_CARD_NO_RESET quirk to avoid this.
> 
> Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
> Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>

Tested-by: Bjorn Andersson <bjorn.andersson@linaro.org>

Regards,
Bjorn

> ---
>  drivers/mmc/host/sdhci-msm.c |    1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
> index ac5700233e12..c613137ae91e 100644
> --- a/drivers/mmc/host/sdhci-msm.c
> +++ b/drivers/mmc/host/sdhci-msm.c
> @@ -477,6 +477,7 @@ static const struct sdhci_ops sdhci_msm_ops = {
>  
>  static const struct sdhci_pltfm_data sdhci_msm_pdata = {
>  	.quirks = SDHCI_QUIRK_BROKEN_CARD_DETECTION |
> +		  SDHCI_QUIRK_NO_CARD_NO_RESET |
>  		  SDHCI_QUIRK_SINGLE_POWER_WRITE,
>  	.ops = &sdhci_msm_ops,
>  };
--
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
Adrian Hunter July 20, 2016, 10:57 a.m. UTC | #2
On 18/07/16 20:46, Bjorn Andersson wrote:
> On Fri 24 Jun 09:24 PDT 2016, Georgi Djakov wrote:
> 
>> The controller does not clear the "reset bit" when it is reset without
>> a card in the slot. Because of this, the following error message is seen
>> while booting with no plugged SD card.
>>
>> mmc1: Reset 0x1 never completed.
>>
>> Add the SDHCI_QUIRK_NO_CARD_NO_RESET quirk to avoid this.
>>
>> Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
>> Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
> 
> Tested-by: Bjorn Andersson <bjorn.andersson@linaro.org>

Be aware that SDHCI_QUIRK_NO_CARD_NO_RESET is not well implemented.  It can
result in ->get_cd() being called under spinlock which could be a problem if
a card detect GPIO is used and might sleep.  On the other hand, if you are
not using a card detect GPIO then it shouldn't be a problem.

Otherwise:

Acked-by: Adrian Hunter <adrian.hunter@intel.com>

> 
> Regards,
> Bjorn
> 
>> ---
>>  drivers/mmc/host/sdhci-msm.c |    1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
>> index ac5700233e12..c613137ae91e 100644
>> --- a/drivers/mmc/host/sdhci-msm.c
>> +++ b/drivers/mmc/host/sdhci-msm.c
>> @@ -477,6 +477,7 @@ static const struct sdhci_ops sdhci_msm_ops = {
>>  
>>  static const struct sdhci_pltfm_data sdhci_msm_pdata = {
>>  	.quirks = SDHCI_QUIRK_BROKEN_CARD_DETECTION |
>> +		  SDHCI_QUIRK_NO_CARD_NO_RESET |
>>  		  SDHCI_QUIRK_SINGLE_POWER_WRITE,
>>  	.ops = &sdhci_msm_ops,
>>  };
> 

--
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
Ulf Hansson July 23, 2016, 9:37 a.m. UTC | #3
On 24 June 2016 at 18:24, Georgi Djakov <georgi.djakov@linaro.org> wrote:
> The controller does not clear the "reset bit" when it is reset without
> a card in the slot. Because of this, the following error message is seen
> while booting with no plugged SD card.
>
> mmc1: Reset 0x1 never completed.
>
> Add the SDHCI_QUIRK_NO_CARD_NO_RESET quirk to avoid this.
>
> Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
> Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>

Thanks, applied for next!

Kind regards
Uffe

> ---
>  drivers/mmc/host/sdhci-msm.c |    1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
> index ac5700233e12..c613137ae91e 100644
> --- a/drivers/mmc/host/sdhci-msm.c
> +++ b/drivers/mmc/host/sdhci-msm.c
> @@ -477,6 +477,7 @@ static const struct sdhci_ops sdhci_msm_ops = {
>
>  static const struct sdhci_pltfm_data sdhci_msm_pdata = {
>         .quirks = SDHCI_QUIRK_BROKEN_CARD_DETECTION |
> +                 SDHCI_QUIRK_NO_CARD_NO_RESET |
>                   SDHCI_QUIRK_SINGLE_POWER_WRITE,
>         .ops = &sdhci_msm_ops,
>  };
--
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-msm.c b/drivers/mmc/host/sdhci-msm.c
index ac5700233e12..c613137ae91e 100644
--- a/drivers/mmc/host/sdhci-msm.c
+++ b/drivers/mmc/host/sdhci-msm.c
@@ -477,6 +477,7 @@  static const struct sdhci_ops sdhci_msm_ops = {
 
 static const struct sdhci_pltfm_data sdhci_msm_pdata = {
 	.quirks = SDHCI_QUIRK_BROKEN_CARD_DETECTION |
+		  SDHCI_QUIRK_NO_CARD_NO_RESET |
 		  SDHCI_QUIRK_SINGLE_POWER_WRITE,
 	.ops = &sdhci_msm_ops,
 };