diff options
author | Ragner Magalhaes <ragner.magalhaes@indt.org.br> | 2007-06-13 13:09:28 -0400 |
---|---|---|
committer | Pierre Ossman <drzeus@drzeus.cx> | 2007-06-13 13:11:14 -0400 |
commit | 0107a4b32e36dccd4456e2c5e34c5cd22c94e094 (patch) | |
tree | 38b048641160336f8d2ea453e38e339e10ed9fd6 /drivers/mmc/host/omap.c | |
parent | a0e1d1d075cc0efe9a3ac8579bce9393d070e09f (diff) |
mmc-omap: fix sd response type 6 vs. 1
Ignoring OMAP_MMC_STAT_CARD_ERR, treating it as if the command
completed correctly.
Signed-off-by: Ragner Magalhaes <ragner.magalhaes@indt.org.br>
Signed-off-by: Carlos Eduardo Aguiar <carlos.aguiar@indt.org.br>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Diffstat (limited to 'drivers/mmc/host/omap.c')
-rw-r--r-- | drivers/mmc/host/omap.c | 24 |
1 files changed, 3 insertions, 21 deletions
diff --git a/drivers/mmc/host/omap.c b/drivers/mmc/host/omap.c index 1914e65d4db1..b0824a38f425 100644 --- a/drivers/mmc/host/omap.c +++ b/drivers/mmc/host/omap.c | |||
@@ -522,28 +522,10 @@ static irqreturn_t mmc_omap_irq(int irq, void *dev_id) | |||
522 | } | 522 | } |
523 | 523 | ||
524 | if (status & OMAP_MMC_STAT_CARD_ERR) { | 524 | if (status & OMAP_MMC_STAT_CARD_ERR) { |
525 | if (host->cmd && host->cmd->opcode == MMC_STOP_TRANSMISSION) { | 525 | dev_dbg(mmc_dev(host->mmc), |
526 | u32 response = OMAP_MMC_READ(host, RSP6) | 526 | "ignoring card status error (CMD%d)\n", |
527 | | (OMAP_MMC_READ(host, RSP7) << 16); | ||
528 | /* STOP sometimes sets must-ignore bits */ | ||
529 | if (!(response & (R1_CC_ERROR | ||
530 | | R1_ILLEGAL_COMMAND | ||
531 | | R1_COM_CRC_ERROR))) { | ||
532 | end_command = 1; | ||
533 | continue; | ||
534 | } | ||
535 | } | ||
536 | |||
537 | dev_dbg(mmc_dev(host->mmc), "card status error (CMD%d)\n", | ||
538 | host->cmd->opcode); | 527 | host->cmd->opcode); |
539 | if (host->cmd) { | 528 | end_command = 1; |
540 | host->cmd->error = MMC_ERR_FAILED; | ||
541 | end_command = 1; | ||
542 | } | ||
543 | if (host->data) { | ||
544 | host->data->error = MMC_ERR_FAILED; | ||
545 | transfer_error = 1; | ||
546 | } | ||
547 | } | 529 | } |
548 | 530 | ||
549 | /* | 531 | /* |