Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 01b9a929 authored by Sahitya Tummala's avatar Sahitya Tummala Committed by Xiaonian Wang
Browse files

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: default avatarSahitya Tummala <stummala@codeaurora.org>
[subhashj@codeaurora.org: fixed trivial merge conflicts]
Signed-off-by: default avatarSubhash Jadavani <subhashj@codeaurora.org>
[xiaonian@codeaurora.org: fixed trivial merge conflicts]
Signed-off-by: default avatarXiaonian Wang <xiaonian@codeaurora.org>
parent 43fb3376
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -898,6 +898,10 @@ static void sdhci_prepare_data(struct sdhci_host *host, struct mmc_command *cmd)

		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
		 * scatterlist.
+6 −0
Original line number Diff line number Diff line
@@ -514,6 +514,12 @@ struct sdhci_host {
 * phase.
 */
#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 */
	void __iomem *ioaddr;	/* Mapped address */