* [PATCH 1/3] s3c6410: Add new quirk in sdhci driver and update ADMA descriptor build. [not found] <cover.1272966142.git.mcuelenaere@gmail.com> @ 2010-05-04 9:43 ` Maurus Cuelenaere 2010-05-05 14:59 ` Ben Dooks 2010-05-04 9:43 ` [PATCH 2/3] s3c6410: Enable ADMA feature in 6410 sdhci controller Maurus Cuelenaere 2010-05-04 9:43 ` [PATCH 3/3] SDHCI: Enable multiblock transfers in sdhci-s3c Maurus Cuelenaere 2 siblings, 1 reply; 5+ messages in thread From: Maurus Cuelenaere @ 2010-05-04 9:43 UTC (permalink / raw) To: linux-samsung-soc, pierre, linux-mmc, akpm, sdhci-devel Cc: ben-linux, thomas.ab The s3c6410 sdhci controller does not support the 'End' attribute and NOP attribute in the same 8-Byte ADMA descriptor. This patch adds a new quirk to identify sdhci host contollers with such behaviour. In addition to this, for controllers using the new quirk, the last entry in the ADMA descritor table is marked with the 'End' attribute (instead of using a NOP descriptor with 'End' attribute). Signed-off-by: Thomas Abraham <thomas.ab@samsung.com> Acked-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Maurus Cuelenaere <mcuelenaere@gmail.com> --- drivers/mmc/host/sdhci.c | 20 +++++++++++++++----- drivers/mmc/host/sdhci.h | 2 ++ 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index 9d4fdfa..db5d566 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c @@ -496,12 +496,22 @@ static int sdhci_adma_table_pre(struct sdhci_host *host, WARN_ON((desc - host->adma_desc) > (128 * 2 + 1) * 4); } - /* - * Add a terminating entry. - */ + if (host->quirks & SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC) { + /* + * Mark the last descriptor as the terminating descriptor + */ + if (desc != host->adma_desc) { + desc -= 8; + desc[0] |= 0x2; /* end */ + } + } else { + /* + * Add a terminating entry. + */ - /* nop, end, valid */ - sdhci_set_adma_desc(desc, 0, 0, 0x3); + /* nop, end, valid */ + sdhci_set_adma_desc(desc, 0, 0, 0x3); + } /* * Resync align buffer as we might have changed it. diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h index 842f46f..7ba0006 100644 --- a/drivers/mmc/host/sdhci.h +++ b/drivers/mmc/host/sdhci.h @@ -236,6 +236,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 support End Attribute in NOP ADMA descriptor */ +#define SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC (1<<25) int irq; /* Device IRQ */ void __iomem * ioaddr; /* Mapped address */ -- 1.7.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/3] s3c6410: Add new quirk in sdhci driver and update ADMA descriptor build. 2010-05-04 9:43 ` [PATCH 1/3] s3c6410: Add new quirk in sdhci driver and update ADMA descriptor build Maurus Cuelenaere @ 2010-05-05 14:59 ` Ben Dooks 2010-05-05 15:06 ` Maurus Cuelenaere 0 siblings, 1 reply; 5+ messages in thread From: Ben Dooks @ 2010-05-05 14:59 UTC (permalink / raw) To: Maurus Cuelenaere Cc: linux-samsung-soc, pierre, linux-mmc, akpm, sdhci-devel, ben-linux, thomas.ab On Tue, May 04, 2010 at 11:43:22AM +0200, Maurus Cuelenaere wrote: The 'From:' line seems to have been lost? > The s3c6410 sdhci controller does not support the 'End' attribute and > NOP attribute in the same 8-Byte ADMA descriptor. This patch adds a > new quirk to identify sdhci host contollers with such behaviour. > In addition to this, for controllers using the new quirk, the last > entry in the ADMA descritor table is marked with the 'End' attribute > (instead of using a NOP descriptor with 'End' attribute). > > Signed-off-by: Thomas Abraham <thomas.ab@samsung.com> > Acked-by: Ben Dooks <ben-linux@fluff.org> > Signed-off-by: Maurus Cuelenaere <mcuelenaere@gmail.com> > --- > drivers/mmc/host/sdhci.c | 20 +++++++++++++++----- > drivers/mmc/host/sdhci.h | 2 ++ > 2 files changed, 17 insertions(+), 5 deletions(-) > > diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c > index 9d4fdfa..db5d566 100644 > --- a/drivers/mmc/host/sdhci.c > +++ b/drivers/mmc/host/sdhci.c > @@ -496,12 +496,22 @@ static int sdhci_adma_table_pre(struct sdhci_host *host, > WARN_ON((desc - host->adma_desc) > (128 * 2 + 1) * 4); > } > > - /* > - * Add a terminating entry. > - */ > + if (host->quirks & SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC) { > + /* > + * Mark the last descriptor as the terminating descriptor > + */ > + if (desc != host->adma_desc) { > + desc -= 8; > + desc[0] |= 0x2; /* end */ > + } > + } else { > + /* > + * Add a terminating entry. > + */ > > - /* nop, end, valid */ > - sdhci_set_adma_desc(desc, 0, 0, 0x3); > + /* nop, end, valid */ > + sdhci_set_adma_desc(desc, 0, 0, 0x3); > + } > > /* > * Resync align buffer as we might have changed it. > diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h > index 842f46f..7ba0006 100644 > --- a/drivers/mmc/host/sdhci.h > +++ b/drivers/mmc/host/sdhci.h > @@ -236,6 +236,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 support End Attribute in NOP ADMA descriptor */ > +#define SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC (1<<25) > > int irq; /* Device IRQ */ > void __iomem * ioaddr; /* Mapped address */ > -- > 1.7.1 > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- -- Ben Q: What's a light-year? A: One-third less calories than a regular year. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/3] s3c6410: Add new quirk in sdhci driver and update ADMA descriptor build. 2010-05-05 14:59 ` Ben Dooks @ 2010-05-05 15:06 ` Maurus Cuelenaere 0 siblings, 0 replies; 5+ messages in thread From: Maurus Cuelenaere @ 2010-05-05 15:06 UTC (permalink / raw) To: Ben Dooks Cc: linux-samsung-soc, pierre, linux-mmc, akpm, sdhci-devel, thomas.ab Op 05-05-10 16:59, Ben Dooks schreef: > On Tue, May 04, 2010 at 11:43:22AM +0200, Maurus Cuelenaere wrote: > > The 'From:' line seems to have been lost? > Hmm that's odd, I'm sure it was in the patch though.. Perhaps Thunderbird/Gmail stripped it while sending.. To be clear: the original author of this patch (and PATCH 2/3) is Thomas Abraham <thomas.ab@samsung.com>, not me. I wrote PATCH 3/3. >> The s3c6410 sdhci controller does not support the 'End' attribute and >> NOP attribute in the same 8-Byte ADMA descriptor. This patch adds a >> new quirk to identify sdhci host contollers with such behaviour. >> In addition to this, for controllers using the new quirk, the last >> entry in the ADMA descritor table is marked with the 'End' attribute >> (instead of using a NOP descriptor with 'End' attribute). >> >> Signed-off-by: Thomas Abraham <thomas.ab@samsung.com> >> Acked-by: Ben Dooks <ben-linux@fluff.org> >> Signed-off-by: Maurus Cuelenaere <mcuelenaere@gmail.com> >> --- >> drivers/mmc/host/sdhci.c | 20 +++++++++++++++----- >> drivers/mmc/host/sdhci.h | 2 ++ >> 2 files changed, 17 insertions(+), 5 deletions(-) >> >> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c >> index 9d4fdfa..db5d566 100644 >> --- a/drivers/mmc/host/sdhci.c >> +++ b/drivers/mmc/host/sdhci.c >> @@ -496,12 +496,22 @@ static int sdhci_adma_table_pre(struct sdhci_host *host, >> WARN_ON((desc - host->adma_desc) > (128 * 2 + 1) * 4); >> } >> >> - /* >> - * Add a terminating entry. >> - */ >> + if (host->quirks & SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC) { >> + /* >> + * Mark the last descriptor as the terminating descriptor >> + */ >> + if (desc != host->adma_desc) { >> + desc -= 8; >> + desc[0] |= 0x2; /* end */ >> + } >> + } else { >> + /* >> + * Add a terminating entry. >> + */ >> >> - /* nop, end, valid */ >> - sdhci_set_adma_desc(desc, 0, 0, 0x3); >> + /* nop, end, valid */ >> + sdhci_set_adma_desc(desc, 0, 0, 0x3); >> + } >> >> /* >> * Resync align buffer as we might have changed it. >> diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h >> index 842f46f..7ba0006 100644 >> --- a/drivers/mmc/host/sdhci.h >> +++ b/drivers/mmc/host/sdhci.h >> @@ -236,6 +236,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 support End Attribute in NOP ADMA descriptor */ >> +#define SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC (1<<25) >> >> int irq; /* Device IRQ */ >> void __iomem * ioaddr; /* Mapped address */ >> -- >> 1.7.1 >> >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> > -- Maurus Cuelenaere ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/3] s3c6410: Enable ADMA feature in 6410 sdhci controller. [not found] <cover.1272966142.git.mcuelenaere@gmail.com> 2010-05-04 9:43 ` [PATCH 1/3] s3c6410: Add new quirk in sdhci driver and update ADMA descriptor build Maurus Cuelenaere @ 2010-05-04 9:43 ` Maurus Cuelenaere 2010-05-04 9:43 ` [PATCH 3/3] SDHCI: Enable multiblock transfers in sdhci-s3c Maurus Cuelenaere 2 siblings, 0 replies; 5+ messages in thread From: Maurus Cuelenaere @ 2010-05-04 9:43 UTC (permalink / raw) To: linux-samsung-soc, pierre, linux-mmc, akpm, sdhci-devel Cc: ben-linux, thomas.ab This patch enables ADMA feature in 6410 SDHCI controller driver. Signed-off-by: Thomas Abraham <thomas.ab@samsung.com> Acked-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Maurus Cuelenaere <mcuelenaere@gmail.com> --- drivers/mmc/host/sdhci-s3c.c | 7 +------ 1 files changed, 1 insertions(+), 6 deletions(-) diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c index 2136794..ad3a78e 100644 --- a/drivers/mmc/host/sdhci-s3c.c +++ b/drivers/mmc/host/sdhci-s3c.c @@ -317,12 +317,7 @@ static int __devinit sdhci_s3c_probe(struct platform_device *pdev) host->irq = irq; /* Setup quirks for the controller */ - - /* Currently with ADMA enabled we are getting some length - * interrupts that are not being dealt with, do disable - * ADMA until this is sorted out. */ - host->quirks |= SDHCI_QUIRK_BROKEN_ADMA; - host->quirks |= SDHCI_QUIRK_32BIT_ADMA_SIZE; + host->quirks |= SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC; #ifndef CONFIG_MMC_SDHCI_S3C_DMA -- 1.7.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/3] SDHCI: Enable multiblock transfers in sdhci-s3c [not found] <cover.1272966142.git.mcuelenaere@gmail.com> 2010-05-04 9:43 ` [PATCH 1/3] s3c6410: Add new quirk in sdhci driver and update ADMA descriptor build Maurus Cuelenaere 2010-05-04 9:43 ` [PATCH 2/3] s3c6410: Enable ADMA feature in 6410 sdhci controller Maurus Cuelenaere @ 2010-05-04 9:43 ` Maurus Cuelenaere 2 siblings, 0 replies; 5+ messages in thread From: Maurus Cuelenaere @ 2010-05-04 9:43 UTC (permalink / raw) To: linux-samsung-soc, pierre, linux-mmc, akpm, sdhci-devel Cc: ben-linux, thomas.ab Wifi over SDIO doesn't work correctly without multiblock, so enable this. This patch depends on the following patches: [PATCH] s3c6410: Enable ADMA feature in 6410 sdhci controller. [PATCH] s3c6410: Add new quirk in sdhci driver and update ADMA descriptor build. Signed-off-by: Maurus Cuelenaere <mcuelenaere@gmail.com> --- drivers/mmc/host/sdhci-s3c.c | 3 --- 1 files changed, 0 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c index 2136794..2c1a618 100644 --- a/drivers/mmc/host/sdhci-s3c.c +++ b/drivers/mmc/host/sdhci-s3c.c @@ -330,9 +330,6 @@ static int __devinit sdhci_s3c_probe(struct platform_device *pdev) * support as well. */ host->quirks |= SDHCI_QUIRK_BROKEN_DMA; - /* PIO currently has problems with multi-block IO */ - host->quirks |= SDHCI_QUIRK_NO_MULTIBLOCK; - #endif /* CONFIG_MMC_SDHCI_S3C_DMA */ /* It seems we do not get an DATA transfer complete on non-busy -- 1.7.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2010-05-05 15:06 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <cover.1272966142.git.mcuelenaere@gmail.com>
2010-05-04 9:43 ` [PATCH 1/3] s3c6410: Add new quirk in sdhci driver and update ADMA descriptor build Maurus Cuelenaere
2010-05-05 14:59 ` Ben Dooks
2010-05-05 15:06 ` Maurus Cuelenaere
2010-05-04 9:43 ` [PATCH 2/3] s3c6410: Enable ADMA feature in 6410 sdhci controller Maurus Cuelenaere
2010-05-04 9:43 ` [PATCH 3/3] SDHCI: Enable multiblock transfers in sdhci-s3c Maurus Cuelenaere
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).