Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Ragner Magalhaes and committed by
Pierre Ossman
0107a4b3 a0e1d1d0

+3 -21
+3 -21
drivers/mmc/host/omap.c
··· 522 522 } 523 523 524 524 if (status & OMAP_MMC_STAT_CARD_ERR) { 525 - if (host->cmd && host->cmd->opcode == MMC_STOP_TRANSMISSION) { 526 - u32 response = OMAP_MMC_READ(host, RSP6) 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", 525 + dev_dbg(mmc_dev(host->mmc), 526 + "ignoring card status error (CMD%d)\n", 538 527 host->cmd->opcode); 539 - if (host->cmd) { 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 - } 528 + end_command = 1; 547 529 } 548 530 549 531 /*