On Mon, Aug 2, 2010 at 9:11 PM, Roy Zang <tie-fei.zang@xxxxxxxxxxxxx> wrote: > From: Jerry Huang <Chang-Ming.Huang@xxxxxxxxxxxxx> > > Add auto CMD12 command support for eSDHC driver. > This is needed by P4080 and P1022 for block read/write. > Manual asynchronous CMD12 abort operation causes protocol violations on > these silicons. > > Signed-off-by: Jerry Huang <Chang-Ming.Huang@xxxxxxxxxxxxx> > Signed-off-by: Roy Zang <tie-fei.zang@xxxxxxxxxxxxx> > --- > drivers/mmc/host/sdhci-of-core.c | 4 ++++ > drivers/mmc/host/sdhci.c | 14 ++++++++++++-- > drivers/mmc/host/sdhci.h | 2 ++ > 3 files changed, 18 insertions(+), 2 deletions(-) > > diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c > index c6d1bd8..a92566e 100644 > --- a/drivers/mmc/host/sdhci.c > +++ b/drivers/mmc/host/sdhci.c > @@ -817,8 +817,12 @@ static void sdhci_set_transfer_mode(struct sdhci_host *host, > WARN_ON(!host->data); > > mode = SDHCI_TRNS_BLK_CNT_EN; > - if (data->blocks > 1) > - mode |= SDHCI_TRNS_MULTI; > + if (data->blocks > 1) { > + if (host->quirks & SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12) > + mode |= SDHCI_TRNS_MULTI | SDHCI_TRNS_ACMD12; > + else > + mode |= SDHCI_TRNS_MULTI; nit: + mode |= SDHCI_TRNS_MULTI; + if (host->quirks & SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12) + mode |= SDHCI_TRNS_ACMD12; Clearer, no? > + } > if (data->flags & MMC_DATA_READ) > mode |= SDHCI_TRNS_READ; > if (host->flags & SDHCI_REQ_USE_DMA) -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html