> -----Original Message-----
> From: linux-mmc-ow...@vger.kernel.org [mailto:linux-mmc-ow...@vger.kernel.org]
> On Behalf Of Anton Vorontsov
> Sent: Friday, July 22, 2011 18:15 PM
> To: Zang Roy-R61911
> Cc: linux-...@vger.kernel.org; linuxppc-dev@lists.ozlabs.org; akpm@linux-
> foundation.org; Xu Lei-B33228; Kumar Gala
> Subject: Re: [PATCH 2/2 v2] eSDHC: Fix errors when booting kernel with fsl 
> esdhc
> 
> On Fri, Jul 22, 2011 at 06:15:17PM +0800, Roy Zang wrote:
> [...]
> >     if (host->version >= SDHCI_SPEC_200) {
> > -           ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
> > -           ctrl &= ~SDHCI_CTRL_DMA_MASK;
> > -           if ((host->flags & SDHCI_REQ_USE_DMA) &&
> > -                   (host->flags & SDHCI_USE_ADMA))
> > -                   ctrl |= SDHCI_CTRL_ADMA32;
> > -           else
> > -                   ctrl |= SDHCI_CTRL_SDMA;
> > -           sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL);
> > +           if (host->quirks & SDHCI_QUIRK_QORIQ_PROCTL_WEIRD) {
> > +#define ESDHCI_PROCTL_DMAS_MASK            0x00000300
> > +#define ESDHCI_PROCTL_ADMA32               0x00000200
> > +#define ESDHCI_PROCTL_SDMA         0x00000000
> > +                   ctrl = sdhci_readl(host, SDHCI_HOST_CONTROL);
> > +                   ctrl &= ~ESDHCI_PROCTL_DMAS_MASK;
> > +                   if ((host->flags & SDHCI_REQ_USE_DMA) &&
> > +                           (host->flags & SDHCI_USE_ADMA))
> > +                           ctrl |= ESDHCI_PROCTL_ADMA32;
> > +                   else
> > +                           ctrl |= ESDHCI_PROCTL_SDMA;
> > +                   sdhci_writel(host, ctrl, SDHCI_HOST_CONTROL);
> > +           } else {
> > +                   ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
> > +                   ctrl &= ~SDHCI_CTRL_DMA_MASK;
> > +                   if ((host->flags & SDHCI_REQ_USE_DMA) &&
> > +                           (host->flags & SDHCI_USE_ADMA))
> > +                           ctrl |= SDHCI_CTRL_ADMA32;
> > +                   else
> > +                           ctrl |= SDHCI_CTRL_SDMA;
> > +                   sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL);
> 
> We try to not pollute generic sdhci.c driver with chip-specific
> quirks.
> 
> Maybe you can do the fixups via IO accessors? Or by introducing
> some additional sdhci op?
Anton,
thanks for the comment, as we discussed, the original code use 8 bit byte 
operation,
while in fact, on some powerpc platform, 32 bit operation is needed. 
should it be possible fixed by adding some wrapper in IO accessors or introduce 
additional sdhci op?
Please advice more. 
Thanks.
Roy
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to