Enable interrupt mode to detect card instead of polling mode
for P1020/P4080/P5020/P5040/T1040 by removing the quirk
SDHCI_QUIRK_BROKEN_CARD_DETECTION. This could improve data
transferring performance and avoid the call trace caused by
polling card status sometime.
Signed-off-by: Yangbo Lu <[email protected]>
---
drivers/mmc/host/sdhci-pltfm.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/mmc/host/sdhci-pltfm.c b/drivers/mmc/host/sdhci-pltfm.c
index c5b01d6..62f4049 100644
--- a/drivers/mmc/host/sdhci-pltfm.c
+++ b/drivers/mmc/host/sdhci-pltfm.c
@@ -102,6 +102,13 @@ void sdhci_get_of_property(struct platform_device *pdev)
of_device_is_compatible(np, "fsl,mpc8536-esdhc"))
host->quirks |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL;
+ if (of_device_is_compatible(np, "fsl,p5040-esdhc") ||
+ of_device_is_compatible(np, "fsl,p5020-esdhc") ||
+ of_device_is_compatible(np, "fsl,p4080-esdhc") ||
+ of_device_is_compatible(np, "fsl,p1020-esdhc") ||
+ of_device_is_compatible(np, "fsl,t1040-esdhc"))
+ host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION;
+
clk = of_get_property(np, "clock-frequency", &size);
if (clk && size == sizeof(*clk) && *clk)
pltfm_host->clock = be32_to_cpup(clk);
--
2.1.0.27.g96db324
On Wed, 2015-05-13 at 16:20 +0800, Yangbo Lu wrote:
> Enable interrupt mode to detect card instead of polling mode
> for P1020/P4080/P5020/P5040/T1040 by removing the quirk
> SDHCI_QUIRK_BROKEN_CARD_DETECTION. This could improve data
> transferring performance and avoid the call trace caused by
> polling card status sometime.
>
> Signed-off-by: Yangbo Lu <[email protected]>
> ---
> drivers/mmc/host/sdhci-pltfm.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/mmc/host/sdhci-pltfm.c b/drivers/mmc/host/sdhci-pltfm.c
> index c5b01d6..62f4049 100644
> --- a/drivers/mmc/host/sdhci-pltfm.c
> +++ b/drivers/mmc/host/sdhci-pltfm.c
> @@ -102,6 +102,13 @@ void sdhci_get_of_property(struct platform_device *pdev)
> of_device_is_compatible(np, "fsl,mpc8536-esdhc"))
> host->quirks |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL;
>
> + if (of_device_is_compatible(np, "fsl,p5040-esdhc") ||
> + of_device_is_compatible(np, "fsl,p5020-esdhc") ||
> + of_device_is_compatible(np, "fsl,p4080-esdhc") ||
> + of_device_is_compatible(np, "fsl,p1020-esdhc") ||
> + of_device_is_compatible(np, "fsl,t1040-esdhc"))
> + host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION;
Please don't line up continuation lines with the if-body. All of the
"of_device_is_compatibles" should start in the same column.
Given that you need to modify the device tree for this, why not just use
SVR?
-Scott
On Thu, 2015-05-14 at 01:29 -0500, Lu Yangbo-B47093 wrote:
>
>
> > -----Original Message-----
> > From: Wood Scott-B07421
> > Sent: Thursday, May 14, 2015 12:37 AM
> > To: Lu Yangbo-B47093
> > Cc: [email protected]; [email protected]
> > Subject: Re: [PATCH 2/2] mmc: sdhci-pltfm: enable interrupt mode to
> > detect card
> >
> > On Wed, 2015-05-13 at 16:20 +0800, Yangbo Lu wrote:
> > > Enable interrupt mode to detect card instead of polling mode for
> > > P1020/P4080/P5020/P5040/T1040 by removing the quirk
> > > SDHCI_QUIRK_BROKEN_CARD_DETECTION. This could improve data
> > > transferring performance and avoid the call trace caused by polling
> > > card status sometime.
> > >
> > > Signed-off-by: Yangbo Lu <[email protected]>
> > > ---
> > > drivers/mmc/host/sdhci-pltfm.c | 7 +++++++
> > > 1 file changed, 7 insertions(+)
> > >
> > > diff --git a/drivers/mmc/host/sdhci-pltfm.c
> > > b/drivers/mmc/host/sdhci-pltfm.c index c5b01d6..62f4049 100644
> > > --- a/drivers/mmc/host/sdhci-pltfm.c
> > > +++ b/drivers/mmc/host/sdhci-pltfm.c
> > > @@ -102,6 +102,13 @@ void sdhci_get_of_property(struct platform_device
> > *pdev)
> > > of_device_is_compatible(np, "fsl,mpc8536-esdhc"))
> > > host->quirks |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL;
> > >
> > > + if (of_device_is_compatible(np, "fsl,p5040-esdhc") ||
> > > + of_device_is_compatible(np, "fsl,p5020-esdhc") ||
> > > + of_device_is_compatible(np, "fsl,p4080-esdhc") ||
> > > + of_device_is_compatible(np, "fsl,p1020-esdhc") ||
> > > + of_device_is_compatible(np, "fsl,t1040-esdhc"))
> > > + host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION;
> >
> > Please don't line up continuation lines with the if-body. All of the
> > "of_device_is_compatibles" should start in the same column.
> Ok, thanks.
> >
> > Given that you need to modify the device tree for this, why not just use
> > SVR?
> The drivers/mmc/host/sdhci-pltfm.c is not only used by freescale platform. So we couldn’t to use SVR here.
> Thanks.
I'm sure there'd be ways of rearranging it to make it work, but OK.
Please send these patches to the MMC list and maintainer (and CC me). I
can ACK the first one or apply it separately.
-Scott