mmc: sdhci: Add new quirk to use PIO for eMMC tuning commands
Some controllers have an issue using ADMA for tuning commands. Add a quirk - SDHCI_QUIRK2_USE_PIO_FOR_EMMC_TUNING to use PIO mode for tuning commands on those host controllers. Change-Id: Id9625167d7e235fb3a20a6193889c1654b5c0cd8 Signed-off-by: Sahitya Tummala <stummala@codeaurora.org> [subhashj@codeaurora.org: fixed trivial merge conflicts] Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
This commit is contained in:
parent
7b9f9abcda
commit
f8fb46ff55
2 changed files with 10 additions and 0 deletions
|
@ -858,6 +858,10 @@ static void sdhci_prepare_data(struct sdhci_host *host, struct mmc_command *cmd)
|
||||||
if (host->flags & (SDHCI_USE_SDMA | SDHCI_USE_ADMA))
|
if (host->flags & (SDHCI_USE_SDMA | SDHCI_USE_ADMA))
|
||||||
host->flags |= SDHCI_REQ_USE_DMA;
|
host->flags |= SDHCI_REQ_USE_DMA;
|
||||||
|
|
||||||
|
if ((host->quirks2 & SDHCI_QUIRK2_USE_PIO_FOR_EMMC_TUNING) &&
|
||||||
|
cmd->opcode == MMC_SEND_TUNING_BLOCK_HS200)
|
||||||
|
host->flags &= ~SDHCI_REQ_USE_DMA;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* FIXME: This doesn't account for merging when mapping the
|
* FIXME: This doesn't account for merging when mapping the
|
||||||
* scatterlist.
|
* scatterlist.
|
||||||
|
|
|
@ -507,6 +507,12 @@ struct sdhci_host {
|
||||||
* phase.
|
* phase.
|
||||||
*/
|
*/
|
||||||
#define SDHCI_QUIRK2_NON_STANDARD_TUNING (1 << 28)
|
#define SDHCI_QUIRK2_NON_STANDARD_TUNING (1 << 28)
|
||||||
|
/*
|
||||||
|
* Some controllers may use PIO mode to workaround HW issues in ADMA for
|
||||||
|
* eMMC tuning commands.
|
||||||
|
*/
|
||||||
|
#define SDHCI_QUIRK2_USE_PIO_FOR_EMMC_TUNING (1 << 23)
|
||||||
|
|
||||||
|
|
||||||
int irq; /* Device IRQ */
|
int irq; /* Device IRQ */
|
||||||
void __iomem *ioaddr; /* Mapped address */
|
void __iomem *ioaddr; /* Mapped address */
|
||||||
|
|
Loading…
Add table
Reference in a new issue