diff mbox

[RFC,14/21] mmc: sdhci-esdhc-imx: remove SDHCI_QUIRK_BROKEN_CARD_DETECTION

Message ID 1453871318-3888-1-git-send-email-shawn.lin@rock-chips.com (mailing list archive)
State New, archived
Headers show

Commit Message

Shawn Lin Jan. 27, 2016, 5:08 a.m. UTC
sdhci_esdhc_imx_pdata need SDHCI_QUIRK_BROKEN_CARD_DETECTION,
so we replace it with MMC_CAP_NEEDS_POLL while probing. For other
cases, we directly remove SDHCI_QUIRK_BROKEN_CARD_DETECTION.

Cc: Dong Aisheng <aisheng.dong@freescale.com>
Cc: Haibo Chen <haibo.chen@freescale.com>
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
---

 drivers/mmc/host/sdhci-esdhc-imx.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

Comments

Bough Chen Jan. 27, 2016, 6:54 a.m. UTC | #1
Hi Shawn, 

Comments below.



> -----Original Message-----
> From: Shawn Lin [mailto:shawn.lin@rock-chips.com]
> Sent: Wednesday, January 27, 2016 1:09 PM
> To: Ulf Hansson <ulf.hansson@linaro.org>
> Cc: bcm-kernel-feedback-list@broadcom.com; linux-rpi-
> kernel@lists.infradead.org; linux-mmc@vger.kernel.org; linux-
> kernel@vger.kernel.org; Shawn Lin <shawn.lin@rock-chips.com>; Dong
> Aisheng <aisheng.dong@freescale.com>; Haibo Chen
> <haibo.chen@freescale.com>
> Subject: [RFC PATCH 14/21] mmc: sdhci-esdhc-imx: remove
> SDHCI_QUIRK_BROKEN_CARD_DETECTION
> 
> sdhci_esdhc_imx_pdata need SDHCI_QUIRK_BROKEN_CARD_DETECTION,
> so we replace it with MMC_CAP_NEEDS_POLL while probing. For other cases,
> we directly remove SDHCI_QUIRK_BROKEN_CARD_DETECTION.
> 
> Cc: Dong Aisheng <aisheng.dong@freescale.com>
> Cc: Haibo Chen <haibo.chen@freescale.com>
> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
> ---
> 
>  drivers/mmc/host/sdhci-esdhc-imx.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-
> esdhc-imx.c
> index f25f292..5705be1 100644
> --- a/drivers/mmc/host/sdhci-esdhc-imx.c
> +++ b/drivers/mmc/host/sdhci-esdhc-imx.c
> @@ -952,8 +952,7 @@ static struct sdhci_ops sdhci_esdhc_ops = {  static const
> struct sdhci_pltfm_data sdhci_esdhc_imx_pdata = {
>  	.quirks = ESDHC_DEFAULT_QUIRKS | SDHCI_QUIRK_NO_HISPD_BIT
>  			| SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC
> -			| SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC
> -			| SDHCI_QUIRK_BROKEN_CARD_DETECTION,
> +			| SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC,
>  	.ops = &sdhci_esdhc_ops,
>  };
> 
> @@ -1012,7 +1011,7 @@ sdhci_esdhc_imx_probe_dt(struct platform_device
> *pdev,
>  		return ret;
> 
>  	if (!IS_ERR_VALUE(mmc_gpio_get_cd(host->mmc)))
> -		host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION;
> +		host->mmc->caps &= MMC_CAP_NEEDS_POLL;

You miss ' ~', seems you need to change to:
host->mmc->caps &=~ MMC_CAP_NEEDS_POLL;

> 
>  	return 0;
>  }
> @@ -1064,7 +1063,7 @@ static int sdhci_esdhc_imx_probe_nondt(struct
> platform_device *pdev,
> 
>  	case ESDHC_CD_CONTROLLER:
>  		/* we have a working card_detect back */
> -		host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION;
> +		host->mmc->caps &= MMC_CAP_NEEDS_POLL;

The same issue.

>  		break;
> 
>  	case ESDHC_CD_PERMANENT:
> @@ -1104,6 +1103,8 @@ static int sdhci_esdhc_imx_probe(struct
> platform_device *pdev)
>  	if (IS_ERR(host))
>  		return PTR_ERR(host);
> 
> +	host->mmc->caps |= MMC_CAP_NEEDS_POLL;
> +
>  	pltfm_host = sdhci_priv(host);
> 
>  	imx_data = devm_kzalloc(&pdev->dev, sizeof(*imx_data),
> GFP_KERNEL);
> --
> 2.3.7
> 

--
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
Shawn Lin Jan. 27, 2016, 6:58 a.m. UTC | #2
On 2016/1/27 14:54, Haibo Chen wrote:
> Hi Shawn,
>
> Comments below.
>

[...]

>>   		return ret;
>>
>>   	if (!IS_ERR_VALUE(mmc_gpio_get_cd(host->mmc)))
>> -		host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION;
>> +		host->mmc->caps &= MMC_CAP_NEEDS_POLL;
>
> You miss ' ~', seems you need to change to:
> host->mmc->caps &=~ MMC_CAP_NEEDS_POLL;
>

Thanks for pointing out. I will fix this for the next version.

>>
>>   	return 0;
>>   }
>> @@ -1064,7 +1063,7 @@ static int sdhci_esdhc_imx_probe_nondt(struct
>> platform_device *pdev,
>>
>>   	case ESDHC_CD_CONTROLLER:
>>   		/* we have a working card_detect back */
>> -		host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION;
>> +		host->mmc->caps &= MMC_CAP_NEEDS_POLL;
>
> The same issue.
>
>>   		break;
>>
>>   	case ESDHC_CD_PERMANENT:
>> @@ -1104,6 +1103,8 @@ static int sdhci_esdhc_imx_probe(struct
>> platform_device *pdev)
>>   	if (IS_ERR(host))
>>   		return PTR_ERR(host);
>>
>> +	host->mmc->caps |= MMC_CAP_NEEDS_POLL;
>> +
>>   	pltfm_host = sdhci_priv(host);
>>
>>   	imx_data = devm_kzalloc(&pdev->dev, sizeof(*imx_data),
>> GFP_KERNEL);
>> --
>> 2.3.7
>>
>
>
>
>
diff mbox

Patch

diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
index f25f292..5705be1 100644
--- a/drivers/mmc/host/sdhci-esdhc-imx.c
+++ b/drivers/mmc/host/sdhci-esdhc-imx.c
@@ -952,8 +952,7 @@  static struct sdhci_ops sdhci_esdhc_ops = {
 static const struct sdhci_pltfm_data sdhci_esdhc_imx_pdata = {
 	.quirks = ESDHC_DEFAULT_QUIRKS | SDHCI_QUIRK_NO_HISPD_BIT
 			| SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC
-			| SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC
-			| SDHCI_QUIRK_BROKEN_CARD_DETECTION,
+			| SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC,
 	.ops = &sdhci_esdhc_ops,
 };
 
@@ -1012,7 +1011,7 @@  sdhci_esdhc_imx_probe_dt(struct platform_device *pdev,
 		return ret;
 
 	if (!IS_ERR_VALUE(mmc_gpio_get_cd(host->mmc)))
-		host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION;
+		host->mmc->caps &= MMC_CAP_NEEDS_POLL;
 
 	return 0;
 }
@@ -1064,7 +1063,7 @@  static int sdhci_esdhc_imx_probe_nondt(struct platform_device *pdev,
 
 	case ESDHC_CD_CONTROLLER:
 		/* we have a working card_detect back */
-		host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION;
+		host->mmc->caps &= MMC_CAP_NEEDS_POLL;
 		break;
 
 	case ESDHC_CD_PERMANENT:
@@ -1104,6 +1103,8 @@  static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
 	if (IS_ERR(host))
 		return PTR_ERR(host);
 
+	host->mmc->caps |= MMC_CAP_NEEDS_POLL;
+
 	pltfm_host = sdhci_priv(host);
 
 	imx_data = devm_kzalloc(&pdev->dev, sizeof(*imx_data), GFP_KERNEL);