diff options
| -rw-r--r-- | drivers/mmc/host/pxamci.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/mmc/host/pxamci.c b/drivers/mmc/host/pxamci.c index 3c5483b75da4..3000422f4d81 100644 --- a/drivers/mmc/host/pxamci.c +++ b/drivers/mmc/host/pxamci.c | |||
| @@ -251,18 +251,17 @@ static int pxamci_cmd_done(struct pxamci_host *host, unsigned int stat) | |||
| 251 | if (stat & STAT_TIME_OUT_RESPONSE) { | 251 | if (stat & STAT_TIME_OUT_RESPONSE) { |
| 252 | cmd->error = -ETIMEDOUT; | 252 | cmd->error = -ETIMEDOUT; |
| 253 | } else if (stat & STAT_RES_CRC_ERR && cmd->flags & MMC_RSP_CRC) { | 253 | } else if (stat & STAT_RES_CRC_ERR && cmd->flags & MMC_RSP_CRC) { |
| 254 | #ifdef CONFIG_PXA27x | ||
| 255 | /* | 254 | /* |
| 256 | * workaround for erratum #42: | 255 | * workaround for erratum #42: |
| 257 | * Intel PXA27x Family Processor Specification Update Rev 001 | 256 | * Intel PXA27x Family Processor Specification Update Rev 001 |
| 258 | * A bogus CRC error can appear if the msb of a 136 bit | 257 | * A bogus CRC error can appear if the msb of a 136 bit |
| 259 | * response is a one. | 258 | * response is a one. |
| 260 | */ | 259 | */ |
| 261 | if (cmd->flags & MMC_RSP_136 && cmd->resp[0] & 0x80000000) { | 260 | if (cpu_is_pxa27x() && |
| 261 | (cmd->flags & MMC_RSP_136 && cmd->resp[0] & 0x80000000)) | ||
| 262 | pr_debug("ignoring CRC from command %d - *risky*\n", cmd->opcode); | 262 | pr_debug("ignoring CRC from command %d - *risky*\n", cmd->opcode); |
| 263 | } else | 263 | else |
| 264 | #endif | 264 | cmd->error = -EILSEQ; |
| 265 | cmd->error = -EILSEQ; | ||
| 266 | } | 265 | } |
| 267 | 266 | ||
| 268 | pxamci_disable_irq(host, END_CMD_RES); | 267 | pxamci_disable_irq(host, END_CMD_RES); |
