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

Commit 3bfa6f03 authored by Scott Branden's avatar Scott Branden Committed by Ulf Hansson
Browse files

mmc: sdhci: add quirk for ACMD23 broken



Add quirk to handle broken auto-CMD23.
Some controllers do not respond after the first auto-CMD23 is issued.

This allows CMD23 to still work (mandatory for the faster UHS-I mode)
rather than disabling CMD23 entirely via SDHCI_QUIRK2_HOST_NO_CMD23.

Signed-off by: Corneliu Doban <cdoban@broadcom.com>
Signed-off-by: default avatarScott Branden <sbranden@broadcom.com>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent eeed7026
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -3164,7 +3164,8 @@ int sdhci_add_host(struct sdhci_host *host)
	/* Auto-CMD23 stuff only works in ADMA or PIO. */
	if ((host->version >= SDHCI_SPEC_300) &&
	    ((host->flags & SDHCI_USE_ADMA) ||
	     !(host->flags & SDHCI_USE_SDMA))) {
	     !(host->flags & SDHCI_USE_SDMA)) &&
	     !(host->quirks2 & SDHCI_QUIRK2_ACMD23_BROKEN)) {
		host->flags |= SDHCI_AUTO_CMD23;
		DBG("%s: Auto-CMD23 available\n", mmc_hostname(mmc));
	} else {
+2 −0
Original line number Diff line number Diff line
@@ -115,6 +115,8 @@ struct sdhci_host {
#define SDHCI_QUIRK2_TUNING_WORK_AROUND			(1<<12)
/* disable the block count for single block transactions */
#define SDHCI_QUIRK2_SUPPORT_SINGLE			(1<<13)
/* Controller broken with using ACMD23 */
#define SDHCI_QUIRK2_ACMD23_BROKEN			(1<<14)

	int irq;		/* Device IRQ */
	void __iomem *ioaddr;	/* Mapped address */