mirror of
https://github.com/torvalds/linux.git
synced 2024-11-12 07:01:57 +00:00
mmc: sdhci: Add quirk to indicate MMC_RSP_136 has CRC
TI's implementation of sdhci controller used in DRA7 SoC's has CRC in responses with length 136 bits. Add quirk to indicate the controller has CRC in MMC_RSP_136. If this quirk is set sdhci library shouldn't shift the response present in SDHCI_RESPONSE register. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Acked-by: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
4a5fc11945
commit
1284c248d1
@ -1182,6 +1182,9 @@ static void sdhci_read_rsp_136(struct sdhci_host *host, struct mmc_command *cmd)
|
||||
cmd->resp[i] = sdhci_readl(host, reg);
|
||||
}
|
||||
|
||||
if (host->quirks2 & SDHCI_QUIRK2_RSP_136_HAS_CRC)
|
||||
return;
|
||||
|
||||
/* CRC is stripped so we need to do some shifting */
|
||||
for (i = 0; i < 4; i++) {
|
||||
cmd->resp[i] <<= 8;
|
||||
|
@ -435,6 +435,8 @@ struct sdhci_host {
|
||||
#define SDHCI_QUIRK2_ACMD23_BROKEN (1<<14)
|
||||
/* Broken Clock divider zero in controller */
|
||||
#define SDHCI_QUIRK2_CLOCK_DIV_ZERO_BROKEN (1<<15)
|
||||
/* Controller has CRC in 136 bit Command Response */
|
||||
#define SDHCI_QUIRK2_RSP_136_HAS_CRC (1<<16)
|
||||
|
||||
int irq; /* Device IRQ */
|
||||
void __iomem *ioaddr; /* Mapped address */
|
||||
|
Loading…
Reference in New Issue
Block a user