diff options
author | Richard Zhu <r65037@freescale.com> | 2010-04-02 15:14:03 +0800 |
---|---|---|
committer | Richard Zhu <r65037@freescale.com> | 2010-04-02 16:57:53 +0800 |
commit | b9cd0e9360abeb1e83df755ac24e0888277a8e48 (patch) | |
tree | 2c2a5a84481b9f82cd4dfb7203d92a27f2289df5 | |
parent | 08aabfa5a61c9d6e047bf5d3e4732599603a0b48 (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>
-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 6f5d5ef84f2b..805c3e91748d 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 |