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: Scott Branden <sbranden@broadcom.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
eeed7026b4
commit
3bfa6f030a
|
@ -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 {
|
||||
|
|
|
@ -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 */
|
||||
|
|
Loading…
Reference in New Issue