diff options
author | Tony Lin <tony.lin@freescale.com> | 2011-08-30 16:57:40 +0800 |
---|---|---|
committer | Tony Lin <tony.lin@freescale.com> | 2011-08-30 19:04:53 +0800 |
commit | dd9cafafb00985754dc42b306dd76ce2d6ab4775 (patch) | |
tree | a32e00af2b1253891dd91222af23cb6dba063247 | |
parent | 0db94f4ca3eb826ae64331942190dd4e9b1de4b3 (diff) |
ENGR00155574 [eSDHC]fix sdio irq enable bug
a counter used in sdhci_enable_sdio_irq function is not correct.
calling the function with enable flag will skip enabling the irq if it
follows two continuous calls with disable flag because of the counter.
to resolve this problem, simply set the counter to 1 or 0 instead of counting.
this bug is reported by a customer.
Signed-off-by: Tony Lin <tony.lin@freescale.com>
-rw-r--r-- | drivers/mmc/host/mx_sdhci.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/drivers/mmc/host/mx_sdhci.c b/drivers/mmc/host/mx_sdhci.c index 5c8ae5a7e467..6b3ce8d5f92a 100644 --- a/drivers/mmc/host/mx_sdhci.c +++ b/drivers/mmc/host/mx_sdhci.c @@ -1247,13 +1247,7 @@ static void sdhci_enable_sdio_irq(struct mmc_host *mmc, int enable) spin_lock_irqsave(&host->lock, flags); - if (enable) { - if (host->sdio_enable++) - goto exit_unlock; - } else { - if (--(host->sdio_enable)) - goto exit_unlock; - } + host->sdio_enable = enable; ier = readl(host->ioaddr + SDHCI_INT_ENABLE); prot = readl(host->ioaddr + SDHCI_HOST_CONTROL); |