summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorRichard Zhu <r65037@freescale.com>2010-04-02 15:14:03 +0800
committerAlejandro Gonzalez <alex.gonzalez@digi.com>2010-05-25 11:20:20 +0200
commit37534f63c0ed79883cce170f89b3619d5ceb8151 (patch)
tree68a790c6f9dd0a81d40ecb19f88f0e45ccf4f53b /drivers
parent1a6eee95b01974edb5dae8db32ee643b6d98a961 (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.c14
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