diff options
author | Richard Zhu <r65037@freescale.com> | 2010-04-02 15:14:03 +0800 |
---|---|---|
committer | Alejandro Gonzalez <alex.gonzalez@digi.com> | 2010-05-25 11:20:20 +0200 |
commit | 37534f63c0ed79883cce170f89b3619d5ceb8151 (patch) | |
tree | 68a790c6f9dd0a81d40ecb19f88f0e45ccf4f53b /drivers | |
parent | 1a6eee95b01974edb5dae8db32ee643b6d98a961 (diff) |
ENGR00122018 [MX53] SDIO wifi use result in error msg flooding
Disable the ACMD12 error status INT when SDIO wifi
used the multi-blk transfer mode
Signed-off-by: Richard Zhu <r65037@freescale.com>
Signed-off-by: Alejandro Gonzalez <alex.gonzalez@digi.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mmc/host/mx_sdhci.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/mmc/host/mx_sdhci.c b/drivers/mmc/host/mx_sdhci.c index e8d8fc871e10..b36a3ef8b005 100644 --- a/drivers/mmc/host/mx_sdhci.c +++ b/drivers/mmc/host/mx_sdhci.c @@ -634,7 +634,7 @@ static void sdhci_finish_data(struct sdhci_host *host) static void sdhci_send_command(struct sdhci_host *host, struct mmc_command *cmd) { - int flags; + int flags, tmp; u32 mask; u32 mode = 0; unsigned long timeout; @@ -678,8 +678,18 @@ static void sdhci_send_command(struct sdhci_host *host, struct mmc_command *cmd) /* Set up the transfer mode */ if (cmd->data != NULL) { mode = SDHCI_TRNS_BLK_CNT_EN | SDHCI_TRNS_DPSEL; - if (cmd->data->blocks > 1) + if (cmd->data->blocks > 1) { mode |= SDHCI_TRNS_MULTI | SDHCI_TRNS_ACMD12; + if (cmd->opcode == 0x35) { + tmp = readl(host->ioaddr + SDHCI_INT_ENABLE); + tmp &= ~SDHCI_INT_ACMD12ERR; + writel(tmp, host->ioaddr + SDHCI_INT_ENABLE); + } else { + tmp = readl(host->ioaddr + SDHCI_INT_ENABLE); + tmp |= SDHCI_INT_ACMD12ERR; + writel(tmp, host->ioaddr + SDHCI_INT_ENABLE); + } + } if (cmd->data->flags & MMC_DATA_READ) mode |= SDHCI_TRNS_READ; else |