* [PATCH 1/6] sdhci: Enable cache snooping @ 2009-09-23 9:08 Gao Guanhua 2009-09-23 9:08 ` [PATCH 2/6] P2020DS: Add sdhc support Gao Guanhua 2009-09-23 11:52 ` [PATCH 1/6] sdhci: Enable cache snooping Anton Vorontsov 0 siblings, 2 replies; 14+ messages in thread From: Gao Guanhua @ 2009-09-23 9:08 UTC (permalink / raw) To: sdhci-devel; +Cc: linuxppc-dev, Gao Guanhua This patch enable cache snooping when the sdhc is initialized. --- drivers/mmc/host/sdhci.c | 3 +++ drivers/mmc/host/sdhci.h | 4 ++++ 2 files changed, 7 insertions(+), 0 deletions(-) diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index 288e40b..cc6d45c 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c @@ -178,6 +178,9 @@ static void sdhci_init(struct sdhci_host *host) { sdhci_reset(host, SDHCI_RESET_ALL); + /* Enable cache snooping */ + sdhci_writel(host, SDHCI_CACHE_SNOOP, SDHCI_HOST_DMA_CONTROL); + sdhci_clear_set_irqs(host, SDHCI_INT_ALL_MASK, SDHCI_INT_BUS_POWER | SDHCI_INT_DATA_END_BIT | SDHCI_INT_DATA_CRC | SDHCI_INT_DATA_TIMEOUT | SDHCI_INT_INDEX | diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h index afda7f1..9ee9622 100644 --- a/drivers/mmc/host/sdhci.h +++ b/drivers/mmc/host/sdhci.h @@ -176,6 +176,10 @@ #define SDHCI_SPEC_100 0 #define SDHCI_SPEC_200 1 +/* 40C DMA control register*/ +#define SDHCI_HOST_DMA_CONTROL 0x40C +#define SDHCI_CACHE_SNOOP 0x40 + struct sdhci_ops; struct sdhci_host { -- 1.6.4 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 2/6] P2020DS: Add sdhc support 2009-09-23 9:08 [PATCH 1/6] sdhci: Enable cache snooping Gao Guanhua @ 2009-09-23 9:08 ` Gao Guanhua 2009-09-23 9:08 ` [PATCH 3/6] P2020DS: Fixup sdhc to use PIO mode Gao Guanhua 2009-09-23 11:52 ` [PATCH 1/6] sdhci: Enable cache snooping Anton Vorontsov 1 sibling, 1 reply; 14+ messages in thread From: Gao Guanhua @ 2009-09-23 9:08 UTC (permalink / raw) To: sdhci-devel; +Cc: linuxppc-dev, Gao Guanhua --- arch/powerpc/boot/dts/p2020ds.dts | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/arch/powerpc/boot/dts/p2020ds.dts b/arch/powerpc/boot/dts/p2020ds.dts index 8c1c954..be449ba 100644 --- a/arch/powerpc/boot/dts/p2020ds.dts +++ b/arch/powerpc/boot/dts/p2020ds.dts @@ -454,6 +454,14 @@ phy-connection-type = "rgmii-id"; }; + sdhci@2e000 { + compatible = "fsl,p2020-esdhc", "fsl,esdhc"; + reg = <0x2e000 0x1000>; + interrupts = <72 0x2>; + interrupt-parent = <&mpic>; + clock-frequency = <0>; + }; + serial0: serial@4500 { cell-index = <0>; device_type = "serial"; -- 1.6.4 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 3/6] P2020DS: Fixup sdhc to use PIO mode 2009-09-23 9:08 ` [PATCH 2/6] P2020DS: Add sdhc support Gao Guanhua @ 2009-09-23 9:08 ` Gao Guanhua 2009-09-23 9:08 ` [PATCH 4/6] sdhci: Fixup AHB2MAG IRQ bypass hardware workaround Gao Guanhua 2009-09-23 11:55 ` [PATCH 3/6] P2020DS: Fixup sdhc to use PIO mode Anton Vorontsov 0 siblings, 2 replies; 14+ messages in thread From: Gao Guanhua @ 2009-09-23 9:08 UTC (permalink / raw) To: sdhci-devel; +Cc: linuxppc-dev, Gao Guanhua The SDHC can not work on DMA mode because of the hardware bug, so we set a broken dma flag and use PIO mode. This patch applies to Rev1.0. --- arch/powerpc/boot/dts/p2020ds.dts | 1 + drivers/mmc/host/sdhci-of.c | 3 +++ 2 files changed, 4 insertions(+), 0 deletions(-) diff --git a/arch/powerpc/boot/dts/p2020ds.dts b/arch/powerpc/boot/dts/p2020ds.dts index be449ba..574ad4f 100644 --- a/arch/powerpc/boot/dts/p2020ds.dts +++ b/arch/powerpc/boot/dts/p2020ds.dts @@ -459,6 +459,7 @@ reg = <0x2e000 0x1000>; interrupts = <72 0x2>; interrupt-parent = <&mpic>; + fsl,sdhci-dma-broken; clock-frequency = <0>; }; diff --git a/drivers/mmc/host/sdhci-of.c b/drivers/mmc/host/sdhci-of.c index 01ab916..5879483 100644 --- a/drivers/mmc/host/sdhci-of.c +++ b/drivers/mmc/host/sdhci-of.c @@ -270,6 +270,9 @@ static int __devinit sdhci_of_probe(struct of_device *ofdev, if (sdhci_of_wp_inverted(np)) host->quirks |= SDHCI_QUIRK_INVERTED_WRITE_PROTECT; + if (of_get_property(np, "fsl,sdhci-dma-broken", NULL)) + host->quirks |= SDHCI_QUIRK_BROKEN_DMA; + clk = of_get_property(np, "clock-frequency", &size); if (clk && size == sizeof(*clk) && *clk) of_host->clock = *clk; -- 1.6.4 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 4/6] sdhci: Fixup AHB2MAG IRQ bypass hardware workaround 2009-09-23 9:08 ` [PATCH 3/6] P2020DS: Fixup sdhc to use PIO mode Gao Guanhua @ 2009-09-23 9:08 ` Gao Guanhua 2009-09-23 9:08 ` [PATCH 5/6] sdhci-of: Set the timeout to the max value Gao Guanhua 2009-09-23 11:55 ` [PATCH 3/6] P2020DS: Fixup sdhc to use PIO mode Anton Vorontsov 1 sibling, 1 reply; 14+ messages in thread From: Gao Guanhua @ 2009-09-23 9:08 UTC (permalink / raw) To: sdhci-devel; +Cc: linuxppc-dev, Gao Guanhua This patch implemnet the workaround that the bit DCR[DMA__AHB2MAG_IRQ_BYPASS] cannot be set automatically when SoC reset. --- arch/powerpc/boot/dts/p2020ds.dts | 1 + drivers/mmc/host/sdhci-of.c | 5 ++++- drivers/mmc/host/sdhci.c | 8 ++++++++ drivers/mmc/host/sdhci.h | 3 +++ 4 files changed, 16 insertions(+), 1 deletions(-) diff --git a/arch/powerpc/boot/dts/p2020ds.dts b/arch/powerpc/boot/dts/p2020ds.dts index 574ad4f..8b1056d 100644 --- a/arch/powerpc/boot/dts/p2020ds.dts +++ b/arch/powerpc/boot/dts/p2020ds.dts @@ -460,6 +460,7 @@ interrupts = <72 0x2>; interrupt-parent = <&mpic>; fsl,sdhci-dma-broken; + fsl,sdhci-ahb2mag-irq-bypass; clock-frequency = <0>; }; diff --git a/drivers/mmc/host/sdhci-of.c b/drivers/mmc/host/sdhci-of.c index 5879483..0bc75b3 100644 --- a/drivers/mmc/host/sdhci-of.c +++ b/drivers/mmc/host/sdhci-of.c @@ -272,6 +272,9 @@ static int __devinit sdhci_of_probe(struct of_device *ofdev, if (of_get_property(np, "fsl,sdhci-dma-broken", NULL)) host->quirks |= SDHCI_QUIRK_BROKEN_DMA; + + if (of_get_property(np, "fsl,sdhci-ahb2mag-irq-bypass", NULL)) + host->quirks |= SDHCI_QUIRK_SET_AHB2MAG_IRQ_BYPASS; clk = of_get_property(np, "clock-frequency", &size); if (clk && size == sizeof(*clk) && *clk) diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index cc6d45c..711cbcd 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c @@ -176,11 +176,19 @@ static void sdhci_reset(struct sdhci_host *host, u8 mask) static void sdhci_init(struct sdhci_host *host) { + u32 ctrl; + sdhci_reset(host, SDHCI_RESET_ALL); /* Enable cache snooping */ sdhci_writel(host, SDHCI_CACHE_SNOOP, SDHCI_HOST_DMA_CONTROL); + if (host->quirks & SDHCI_QUIRK_SET_AHB2MAG_IRQ_BYPASS) { + ctrl = sdhci_readl(host, SDHCI_HOST_DMA_CONTROL); + ctrl |= SDHCI_AHB2MAG_IRQ_BYPASS; + sdhci_writel(host, ctrl, SDHCI_HOST_DMA_CONTROL); + } + sdhci_clear_set_irqs(host, SDHCI_INT_ALL_MASK, SDHCI_INT_BUS_POWER | SDHCI_INT_DATA_END_BIT | SDHCI_INT_DATA_CRC | SDHCI_INT_DATA_TIMEOUT | SDHCI_INT_INDEX | diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h index 9ee9622..cb8beea 100644 --- a/drivers/mmc/host/sdhci.h +++ b/drivers/mmc/host/sdhci.h @@ -178,6 +178,7 @@ /* 40C DMA control register*/ #define SDHCI_HOST_DMA_CONTROL 0x40C +#define SDHCI_AHB2MAG_IRQ_BYPASS 0x20 #define SDHCI_CACHE_SNOOP 0x40 struct sdhci_ops; @@ -238,6 +239,8 @@ struct sdhci_host { #define SDHCI_QUIRK_DELAY_AFTER_POWER (1<<23) /* Controller uses SDCLK instead of TMCLK for data timeouts */ #define SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK (1<<24) +/* Controller cannot set DCR[DMA__AHB2MAG_IRQ_BYPASS] automatically*/ +#define SDHCI_QUIRK_SET_AHB2MAG_IRQ_BYPASS (1<<25) int irq; /* Device IRQ */ void __iomem * ioaddr; /* Mapped address */ -- 1.6.4 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 5/6] sdhci-of: Set the timeout to the max value 2009-09-23 9:08 ` [PATCH 4/6] sdhci: Fixup AHB2MAG IRQ bypass hardware workaround Gao Guanhua @ 2009-09-23 9:08 ` Gao Guanhua 2009-09-23 9:08 ` [PATCH 6/6] P2020DS: Remove sdhci-dma-broken and sdhci-ahb2mag-irq-bypass properties Gao Guanhua 0 siblings, 1 reply; 14+ messages in thread From: Gao Guanhua @ 2009-09-23 9:08 UTC (permalink / raw) To: sdhci-devel; +Cc: linuxppc-dev, Gao Guanhua When access the card, the following error is reported: mmc0: Got data interrupt 0x00000020 even though no data operation was in progress. mmc0: Got data interrupt 0x00000020 even though no data operation was in progress. so we skip the calculation of timeout and use the max value. --- arch/powerpc/boot/dts/p2020ds.dts | 1 + drivers/mmc/host/sdhci-of.c | 3 +++ 2 files changed, 4 insertions(+), 0 deletions(-) diff --git a/arch/powerpc/boot/dts/p2020ds.dts b/arch/powerpc/boot/dts/p2020ds.dts index 8b1056d..29989fb 100644 --- a/arch/powerpc/boot/dts/p2020ds.dts +++ b/arch/powerpc/boot/dts/p2020ds.dts @@ -461,6 +461,7 @@ interrupt-parent = <&mpic>; fsl,sdhci-dma-broken; fsl,sdhci-ahb2mag-irq-bypass; + fsl,sdhci-adjust-timeout; clock-frequency = <0>; }; diff --git a/drivers/mmc/host/sdhci-of.c b/drivers/mmc/host/sdhci-of.c index 0bc75b3..0ff95d8 100644 --- a/drivers/mmc/host/sdhci-of.c +++ b/drivers/mmc/host/sdhci-of.c @@ -276,6 +276,9 @@ static int __devinit sdhci_of_probe(struct of_device *ofdev, if (of_get_property(np, "fsl,sdhci-ahb2mag-irq-bypass", NULL)) host->quirks |= SDHCI_QUIRK_SET_AHB2MAG_IRQ_BYPASS; + if (of_get_property(np, "fsl,sdhci-adjust-timeout", NULL)) + host->quirks |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL; + clk = of_get_property(np, "clock-frequency", &size); if (clk && size == sizeof(*clk) && *clk) of_host->clock = *clk; -- 1.6.4 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 6/6] P2020DS: Remove sdhci-dma-broken and sdhci-ahb2mag-irq-bypass properties 2009-09-23 9:08 ` [PATCH 5/6] sdhci-of: Set the timeout to the max value Gao Guanhua @ 2009-09-23 9:08 ` Gao Guanhua 2009-09-23 11:59 ` Anton Vorontsov 0 siblings, 1 reply; 14+ messages in thread From: Gao Guanhua @ 2009-09-23 9:08 UTC (permalink / raw) To: sdhci-devel; +Cc: linuxppc-dev, Gao Guanhua The SDHC on P2020DS board use DMA mode by default. This patch remove the properties used in PIO mode. --- arch/powerpc/boot/dts/p2020ds.dts | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/boot/dts/p2020ds.dts b/arch/powerpc/boot/dts/p2020ds.dts index 29989fb..3263397 100644 --- a/arch/powerpc/boot/dts/p2020ds.dts +++ b/arch/powerpc/boot/dts/p2020ds.dts @@ -459,8 +459,6 @@ reg = <0x2e000 0x1000>; interrupts = <72 0x2>; interrupt-parent = <&mpic>; - fsl,sdhci-dma-broken; - fsl,sdhci-ahb2mag-irq-bypass; fsl,sdhci-adjust-timeout; clock-frequency = <0>; }; -- 1.6.4 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 6/6] P2020DS: Remove sdhci-dma-broken and sdhci-ahb2mag-irq-bypass properties 2009-09-23 9:08 ` [PATCH 6/6] P2020DS: Remove sdhci-dma-broken and sdhci-ahb2mag-irq-bypass properties Gao Guanhua @ 2009-09-23 11:59 ` Anton Vorontsov 2009-09-24 8:22 ` Gao Guanhua-B22826 0 siblings, 1 reply; 14+ messages in thread From: Anton Vorontsov @ 2009-09-23 11:59 UTC (permalink / raw) To: Gao Guanhua; +Cc: linuxppc-dev, sdhci-devel On Wed, Sep 23, 2009 at 05:08:12PM +0800, Gao Guanhua wrote: > The SDHC on P2020DS board use DMA mode by default. > This patch remove the properties used in PIO mode. You just added the properties in 3/6 and 4/6, and now you instantly remove them? > --- > arch/powerpc/boot/dts/p2020ds.dts | 2 -- > 1 files changed, 0 insertions(+), 2 deletions(-) > > diff --git a/arch/powerpc/boot/dts/p2020ds.dts b/arch/powerpc/boot/dts/p2020ds.dts > index 29989fb..3263397 100644 > --- a/arch/powerpc/boot/dts/p2020ds.dts > +++ b/arch/powerpc/boot/dts/p2020ds.dts > @@ -459,8 +459,6 @@ > reg = <0x2e000 0x1000>; > interrupts = <72 0x2>; > interrupt-parent = <&mpic>; > - fsl,sdhci-dma-broken; > - fsl,sdhci-ahb2mag-irq-bypass; > fsl,sdhci-adjust-timeout; > clock-frequency = <0>; > }; > -- > 1.6.4 -- Anton Vorontsov email: cbouatmailru@gmail.com irc://irc.freenode.net/bd2 ^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH 6/6] P2020DS: Remove sdhci-dma-broken and sdhci-ahb2mag-irq-bypass properties 2009-09-23 11:59 ` Anton Vorontsov @ 2009-09-24 8:22 ` Gao Guanhua-B22826 0 siblings, 0 replies; 14+ messages in thread From: Gao Guanhua-B22826 @ 2009-09-24 8:22 UTC (permalink / raw) To: avorontsov; +Cc: linuxppc-dev, sdhci-devel =20 > -----Original Message----- > From: Anton Vorontsov [mailto:avorontsov@ru.mvista.com]=20 > Sent: Wednesday, September 23, 2009 8:00 PM > To: Gao Guanhua-B22826 > Cc: sdhci-devel@lists.ossman.eu; linuxppc-dev@ozlabs.org > Subject: Re: [PATCH 6/6] P2020DS: Remove sdhci-dma-broken and=20 > sdhci-ahb2mag-irq-bypass properties >=20 > On Wed, Sep 23, 2009 at 05:08:12PM +0800, Gao Guanhua wrote: > > The SDHC on P2020DS board use DMA mode by default. > > This patch remove the properties used in PIO mode. >=20 > You just added the properties in 3/6 and 4/6, and now you=20 > instantly remove them? Add them to support the PIO mode, the board has a hardware bug, sdhc can only work in PIO mode. Then the bug has been fixed. So remove those properties. Yes, maybe I shouldnot add the property in the dts, and only support PIO in driver. Thanks. >=20 > > --- > > arch/powerpc/boot/dts/p2020ds.dts | 2 -- > > 1 files changed, 0 insertions(+), 2 deletions(-) > >=20 > > diff --git a/arch/powerpc/boot/dts/p2020ds.dts=20 > > b/arch/powerpc/boot/dts/p2020ds.dts > > index 29989fb..3263397 100644 > > --- a/arch/powerpc/boot/dts/p2020ds.dts > > +++ b/arch/powerpc/boot/dts/p2020ds.dts > > @@ -459,8 +459,6 @@ > > reg =3D <0x2e000 0x1000>; > > interrupts =3D <72 0x2>; > > interrupt-parent =3D <&mpic>; > > - fsl,sdhci-dma-broken; > > - fsl,sdhci-ahb2mag-irq-bypass; > > fsl,sdhci-adjust-timeout; > > clock-frequency =3D <0>; > > }; > > -- > > 1.6.4 >=20 > -- > Anton Vorontsov > email: cbouatmailru@gmail.com > irc://irc.freenode.net/bd2 >=20 >=20 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/6] P2020DS: Fixup sdhc to use PIO mode 2009-09-23 9:08 ` [PATCH 3/6] P2020DS: Fixup sdhc to use PIO mode Gao Guanhua 2009-09-23 9:08 ` [PATCH 4/6] sdhci: Fixup AHB2MAG IRQ bypass hardware workaround Gao Guanhua @ 2009-09-23 11:55 ` Anton Vorontsov 2009-09-24 8:28 ` Gao Guanhua-B22826 1 sibling, 1 reply; 14+ messages in thread From: Anton Vorontsov @ 2009-09-23 11:55 UTC (permalink / raw) To: Gao Guanhua; +Cc: linuxppc-dev, sdhci-devel On Wed, Sep 23, 2009 at 05:08:09PM +0800, Gao Guanhua wrote: > The SDHC can not work on DMA mode because of the hardware bug, > so we set a broken dma flag and use PIO mode. This patch applies > to Rev1.0. Signed-off-by line is missing (in all patches). > --- > arch/powerpc/boot/dts/p2020ds.dts | 1 + > drivers/mmc/host/sdhci-of.c | 3 +++ > 2 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/arch/powerpc/boot/dts/p2020ds.dts b/arch/powerpc/boot/dts/p2020ds.dts > index be449ba..574ad4f 100644 > --- a/arch/powerpc/boot/dts/p2020ds.dts > +++ b/arch/powerpc/boot/dts/p2020ds.dts > @@ -459,6 +459,7 @@ > reg = <0x2e000 0x1000>; > interrupts = <72 0x2>; > interrupt-parent = <&mpic>; > + fsl,sdhci-dma-broken; You might want to update Documentation/powerpc/dts-bindings/fsl/esdhc.txt > clock-frequency = <0>; > }; > > diff --git a/drivers/mmc/host/sdhci-of.c b/drivers/mmc/host/sdhci-of.c > index 01ab916..5879483 100644 > --- a/drivers/mmc/host/sdhci-of.c > +++ b/drivers/mmc/host/sdhci-of.c > @@ -270,6 +270,9 @@ static int __devinit sdhci_of_probe(struct of_device *ofdev, > if (sdhci_of_wp_inverted(np)) > host->quirks |= SDHCI_QUIRK_INVERTED_WRITE_PROTECT; > > + if (of_get_property(np, "fsl,sdhci-dma-broken", NULL)) > + host->quirks |= SDHCI_QUIRK_BROKEN_DMA; > + > clk = of_get_property(np, "clock-frequency", &size); > if (clk && size == sizeof(*clk) && *clk) > of_host->clock = *clk; > -- > 1.6.4 Thanks, -- Anton Vorontsov email: cbouatmailru@gmail.com irc://irc.freenode.net/bd2 ^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH 3/6] P2020DS: Fixup sdhc to use PIO mode 2009-09-23 11:55 ` [PATCH 3/6] P2020DS: Fixup sdhc to use PIO mode Anton Vorontsov @ 2009-09-24 8:28 ` Gao Guanhua-B22826 2009-11-05 13:52 ` Kumar Gala 0 siblings, 1 reply; 14+ messages in thread From: Gao Guanhua-B22826 @ 2009-09-24 8:28 UTC (permalink / raw) To: avorontsov; +Cc: linuxppc-dev, sdhci-devel Thanks, I will add them.=20 > -----Original Message----- > From: Anton Vorontsov [mailto:avorontsov@ru.mvista.com]=20 > Sent: Wednesday, September 23, 2009 7:55 PM > To: Gao Guanhua-B22826 > Cc: sdhci-devel@lists.ossman.eu; linuxppc-dev@ozlabs.org > Subject: Re: [PATCH 3/6] P2020DS: Fixup sdhc to use PIO mode >=20 > On Wed, Sep 23, 2009 at 05:08:09PM +0800, Gao Guanhua wrote: > > The SDHC can not work on DMA mode because of the hardware=20 > bug, so we=20 > > set a broken dma flag and use PIO mode. This patch applies=20 > to Rev1.0. >=20 > Signed-off-by line is missing (in all patches). >=20 > > --- > > arch/powerpc/boot/dts/p2020ds.dts | 1 + > > drivers/mmc/host/sdhci-of.c | 3 +++ > > 2 files changed, 4 insertions(+), 0 deletions(-) > >=20 > > diff --git a/arch/powerpc/boot/dts/p2020ds.dts=20 > > b/arch/powerpc/boot/dts/p2020ds.dts > > index be449ba..574ad4f 100644 > > --- a/arch/powerpc/boot/dts/p2020ds.dts > > +++ b/arch/powerpc/boot/dts/p2020ds.dts > > @@ -459,6 +459,7 @@ > > reg =3D <0x2e000 0x1000>; > > interrupts =3D <72 0x2>; > > interrupt-parent =3D <&mpic>; > > + fsl,sdhci-dma-broken; >=20 > You might want to update > Documentation/powerpc/dts-bindings/fsl/esdhc.txt >=20 > > clock-frequency =3D <0>; > > }; > > =20 > > diff --git a/drivers/mmc/host/sdhci-of.c=20 > b/drivers/mmc/host/sdhci-of.c=20 > > index 01ab916..5879483 100644 > > --- a/drivers/mmc/host/sdhci-of.c > > +++ b/drivers/mmc/host/sdhci-of.c > > @@ -270,6 +270,9 @@ static int __devinit=20 > sdhci_of_probe(struct of_device *ofdev, > > if (sdhci_of_wp_inverted(np)) > > host->quirks |=3D SDHCI_QUIRK_INVERTED_WRITE_PROTECT; > > =20 > > + if (of_get_property(np, "fsl,sdhci-dma-broken", NULL)) > > + host->quirks |=3D SDHCI_QUIRK_BROKEN_DMA; > > + > > clk =3D of_get_property(np, "clock-frequency", &size); > > if (clk && size =3D=3D sizeof(*clk) && *clk) > > of_host->clock =3D *clk; > > -- > > 1.6.4 >=20 > Thanks, >=20 > -- > Anton Vorontsov > email: cbouatmailru@gmail.com > irc://irc.freenode.net/bd2 >=20 >=20 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/6] P2020DS: Fixup sdhc to use PIO mode 2009-09-24 8:28 ` Gao Guanhua-B22826 @ 2009-11-05 13:52 ` Kumar Gala 2009-11-06 2:08 ` Gao Guanhua-B22826 2009-11-13 8:30 ` Gao Guanhua-B22826 0 siblings, 2 replies; 14+ messages in thread From: Kumar Gala @ 2009-11-05 13:52 UTC (permalink / raw) To: Gao Guanhua-B22826; +Cc: linuxppc-dev, sdhci-devel On Sep 24, 2009, at 3:28 AM, Gao Guanhua-B22826 wrote: > Thanks, I will add them. > >> -----Original Message----- >> From: Anton Vorontsov [mailto:avorontsov@ru.mvista.com] >> Sent: Wednesday, September 23, 2009 7:55 PM >> To: Gao Guanhua-B22826 >> Cc: sdhci-devel@lists.ossman.eu; linuxppc-dev@ozlabs.org >> Subject: Re: [PATCH 3/6] P2020DS: Fixup sdhc to use PIO mode >> >> On Wed, Sep 23, 2009 at 05:08:09PM +0800, Gao Guanhua wrote: >>> The SDHC can not work on DMA mode because of the hardware >> bug, so we >>> set a broken dma flag and use PIO mode. This patch applies >> to Rev1.0. >> >> Signed-off-by line is missing (in all patches). > Any plan to update & repost these patches? - k ^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH 3/6] P2020DS: Fixup sdhc to use PIO mode 2009-11-05 13:52 ` Kumar Gala @ 2009-11-06 2:08 ` Gao Guanhua-B22826 2009-11-13 8:30 ` Gao Guanhua-B22826 1 sibling, 0 replies; 14+ messages in thread From: Gao Guanhua-B22826 @ 2009-11-06 2:08 UTC (permalink / raw) To: Kumar Gala; +Cc: linuxppc-dev, sdhci-devel I will update the patch next week. Regards, --gaoguanhua > -----Original Message----- > From: Kumar Gala [mailto:galak@kernel.crashing.org]=20 > Sent: Thursday, November 05, 2009 9:52 PM > To: Gao Guanhua-B22826 > Cc: avorontsov@ru.mvista.com; linuxppc-dev@ozlabs.org;=20 > sdhci-devel@lists.ossman.eu > Subject: Re: [PATCH 3/6] P2020DS: Fixup sdhc to use PIO mode >=20 >=20 > On Sep 24, 2009, at 3:28 AM, Gao Guanhua-B22826 wrote: >=20 > > Thanks, I will add them. > > > >> -----Original Message----- > >> From: Anton Vorontsov [mailto:avorontsov@ru.mvista.com] > >> Sent: Wednesday, September 23, 2009 7:55 PM > >> To: Gao Guanhua-B22826 > >> Cc: sdhci-devel@lists.ossman.eu; linuxppc-dev@ozlabs.org > >> Subject: Re: [PATCH 3/6] P2020DS: Fixup sdhc to use PIO mode > >> > >> On Wed, Sep 23, 2009 at 05:08:09PM +0800, Gao Guanhua wrote: > >>> The SDHC can not work on DMA mode because of the hardware > >> bug, so we > >>> set a broken dma flag and use PIO mode. This patch applies > >> to Rev1.0. > >> > >> Signed-off-by line is missing (in all patches). > > >=20 > Any plan to update & repost these patches? >=20 > - k >=20 >=20 ^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH 3/6] P2020DS: Fixup sdhc to use PIO mode 2009-11-05 13:52 ` Kumar Gala 2009-11-06 2:08 ` Gao Guanhua-B22826 @ 2009-11-13 8:30 ` Gao Guanhua-B22826 1 sibling, 0 replies; 14+ messages in thread From: Gao Guanhua-B22826 @ 2009-11-13 8:30 UTC (permalink / raw) To: Kumar Gala; +Cc: linuxppc-dev, sdhci-devel Hi, Kumar, I tried to update the patch based on the latest kernel tree (2.6.32-rc6), there are some problems: 1) the P2020DS board has supported SDHC using DMA, and the latest kernel tree has included the related code, it doesn't need most of the patches I posted before. 2) I compiled the image, but the SDHC can not work, it reports error -110. I adjusted the timeout to the max value, but anther error occurred. > -----Original Message----- > From: Kumar Gala [mailto:galak@kernel.crashing.org]=20 > Sent: Thursday, November 05, 2009 9:52 PM > To: Gao Guanhua-B22826 > Cc: avorontsov@ru.mvista.com; linuxppc-dev@ozlabs.org;=20 > sdhci-devel@lists.ossman.eu > Subject: Re: [PATCH 3/6] P2020DS: Fixup sdhc to use PIO mode >=20 >=20 > On Sep 24, 2009, at 3:28 AM, Gao Guanhua-B22826 wrote: >=20 > > Thanks, I will add them. > > > >> -----Original Message----- > >> From: Anton Vorontsov [mailto:avorontsov@ru.mvista.com] > >> Sent: Wednesday, September 23, 2009 7:55 PM > >> To: Gao Guanhua-B22826 > >> Cc: sdhci-devel@lists.ossman.eu; linuxppc-dev@ozlabs.org > >> Subject: Re: [PATCH 3/6] P2020DS: Fixup sdhc to use PIO mode > >> > >> On Wed, Sep 23, 2009 at 05:08:09PM +0800, Gao Guanhua wrote: > >>> The SDHC can not work on DMA mode because of the hardware > >> bug, so we > >>> set a broken dma flag and use PIO mode. This patch applies > >> to Rev1.0. > >> > >> Signed-off-by line is missing (in all patches). > > >=20 > Any plan to update & repost these patches? >=20 > - k >=20 >=20 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/6] sdhci: Enable cache snooping 2009-09-23 9:08 [PATCH 1/6] sdhci: Enable cache snooping Gao Guanhua 2009-09-23 9:08 ` [PATCH 2/6] P2020DS: Add sdhc support Gao Guanhua @ 2009-09-23 11:52 ` Anton Vorontsov 1 sibling, 0 replies; 14+ messages in thread From: Anton Vorontsov @ 2009-09-23 11:52 UTC (permalink / raw) To: Gao Guanhua; +Cc: linuxppc-dev, sdhci-devel On Wed, Sep 23, 2009 at 05:08:07PM +0800, Gao Guanhua wrote: > This patch enable cache snooping when the sdhc is initialized. > --- > drivers/mmc/host/sdhci.c | 3 +++ > drivers/mmc/host/sdhci.h | 4 ++++ > 2 files changed, 7 insertions(+), 0 deletions(-) > > diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c > index 288e40b..cc6d45c 100644 > --- a/drivers/mmc/host/sdhci.c > +++ b/drivers/mmc/host/sdhci.c > @@ -178,6 +178,9 @@ static void sdhci_init(struct sdhci_host *host) > { > sdhci_reset(host, SDHCI_RESET_ALL); > > + /* Enable cache snooping */ > + sdhci_writel(host, SDHCI_CACHE_SNOOP, SDHCI_HOST_DMA_CONTROL); > + > sdhci_clear_set_irqs(host, SDHCI_INT_ALL_MASK, > SDHCI_INT_BUS_POWER | SDHCI_INT_DATA_END_BIT | > SDHCI_INT_DATA_CRC | SDHCI_INT_DATA_TIMEOUT | SDHCI_INT_INDEX | > diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h > index afda7f1..9ee9622 100644 > --- a/drivers/mmc/host/sdhci.h > +++ b/drivers/mmc/host/sdhci.h > @@ -176,6 +176,10 @@ > #define SDHCI_SPEC_100 0 > #define SDHCI_SPEC_200 1 > > +/* 40C DMA control register*/ > +#define SDHCI_HOST_DMA_CONTROL 0x40C SDHCI Specification doesn't mention this register, it isn't standard. Plus, we have this register and bit set already in sdhci-of.c: static int esdhc_enable_dma(struct sdhci_host *host) { setbits32(host->ioaddr + ESDHC_DMA_SYSCTL, ESDHC_DMA_SNOOP); return 0; } Do p2020 need this bit set for PIO mode too? Thanks, -- Anton Vorontsov email: cbouatmailru@gmail.com irc://irc.freenode.net/bd2 ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2009-11-13 8:30 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-09-23 9:08 [PATCH 1/6] sdhci: Enable cache snooping Gao Guanhua 2009-09-23 9:08 ` [PATCH 2/6] P2020DS: Add sdhc support Gao Guanhua 2009-09-23 9:08 ` [PATCH 3/6] P2020DS: Fixup sdhc to use PIO mode Gao Guanhua 2009-09-23 9:08 ` [PATCH 4/6] sdhci: Fixup AHB2MAG IRQ bypass hardware workaround Gao Guanhua 2009-09-23 9:08 ` [PATCH 5/6] sdhci-of: Set the timeout to the max value Gao Guanhua 2009-09-23 9:08 ` [PATCH 6/6] P2020DS: Remove sdhci-dma-broken and sdhci-ahb2mag-irq-bypass properties Gao Guanhua 2009-09-23 11:59 ` Anton Vorontsov 2009-09-24 8:22 ` Gao Guanhua-B22826 2009-09-23 11:55 ` [PATCH 3/6] P2020DS: Fixup sdhc to use PIO mode Anton Vorontsov 2009-09-24 8:28 ` Gao Guanhua-B22826 2009-11-05 13:52 ` Kumar Gala 2009-11-06 2:08 ` Gao Guanhua-B22826 2009-11-13 8:30 ` Gao Guanhua-B22826 2009-09-23 11:52 ` [PATCH 1/6] sdhci: Enable cache snooping Anton Vorontsov
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).