aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc
diff options
context:
space:
mode:
authorPierre Ossman <drzeus@drzeus.cx>2007-07-20 12:20:36 -0400
committerPierre Ossman <drzeus@drzeus.cx>2007-07-20 12:51:44 -0400
commit964f9ce2ff42dc47cf40fbd2f5c81cd60689e384 (patch)
treedbc1d3a7a34af1d34324b629617bd68d35ce1a6e /drivers/mmc
parent63b66438860f246f25f5563cde4978cf255cb810 (diff)
sdhci: make sure to clear the error interrupt
The controller has a bit indicating that one of the higher bits (the error bits) are set. A previous bug caused this bit to be masked, but since that bug has been fixed we have to clear it explicictly. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/host/sdhci.c2
-rw-r--r--drivers/mmc/host/sdhci.h1
2 files changed, 3 insertions, 0 deletions
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index 10d15c39d003..4a24db028d87 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -1024,6 +1024,8 @@ static irqreturn_t sdhci_irq(int irq, void *dev_id)
1024 1024
1025 intmask &= ~(SDHCI_INT_CMD_MASK | SDHCI_INT_DATA_MASK); 1025 intmask &= ~(SDHCI_INT_CMD_MASK | SDHCI_INT_DATA_MASK);
1026 1026
1027 intmask &= ~SDHCI_INT_ERROR;
1028
1027 if (intmask & SDHCI_INT_BUS_POWER) { 1029 if (intmask & SDHCI_INT_BUS_POWER) {
1028 printk(KERN_ERR "%s: Card is consuming too much power!\n", 1030 printk(KERN_ERR "%s: Card is consuming too much power!\n",
1029 mmc_hostname(host->mmc)); 1031 mmc_hostname(host->mmc));
diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
index 7400f4bc114f..a6c870480b8a 100644
--- a/drivers/mmc/host/sdhci.h
+++ b/drivers/mmc/host/sdhci.h
@@ -107,6 +107,7 @@
107#define SDHCI_INT_CARD_INSERT 0x00000040 107#define SDHCI_INT_CARD_INSERT 0x00000040
108#define SDHCI_INT_CARD_REMOVE 0x00000080 108#define SDHCI_INT_CARD_REMOVE 0x00000080
109#define SDHCI_INT_CARD_INT 0x00000100 109#define SDHCI_INT_CARD_INT 0x00000100
110#define SDHCI_INT_ERROR 0x00008000
110#define SDHCI_INT_TIMEOUT 0x00010000 111#define SDHCI_INT_TIMEOUT 0x00010000
111#define SDHCI_INT_CRC 0x00020000 112#define SDHCI_INT_CRC 0x00020000
112#define SDHCI_INT_END_BIT 0x00040000 113#define SDHCI_INT_END_BIT 0x00040000