Message ID | 1453871318-3888-1-git-send-email-shawn.lin@rock-chips.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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
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 --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);
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(-)