diff options
author | Pierre Ossman <drzeus@drzeus.cx> | 2007-07-20 12:20:36 -0400 |
---|---|---|
committer | Pierre Ossman <drzeus@drzeus.cx> | 2007-07-20 12:51:44 -0400 |
commit | 964f9ce2ff42dc47cf40fbd2f5c81cd60689e384 (patch) | |
tree | dbc1d3a7a34af1d34324b629617bd68d35ce1a6e | |
parent | 63b66438860f246f25f5563cde4978cf255cb810 (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>
-rw-r--r-- | drivers/mmc/host/sdhci.c | 2 | ||||
-rw-r--r-- | drivers/mmc/host/sdhci.h | 1 |
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 |