Commit 90e07d9f authored by Nicolas Pitre's avatar Nicolas Pitre Committed by Pierre Ossman

pxamci: fix PXA27x MMC workaround for bad CRC with 136 bit response

... and make it depend on the response flag instead of the command type.
Signed-off-by: default avatarNicolas Pitre <npitre@mvista.com>
Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
parent fe6b4c88
...@@ -232,20 +232,14 @@ static int pxamci_cmd_done(struct pxamci_host *host, unsigned int stat) ...@@ -232,20 +232,14 @@ static int pxamci_cmd_done(struct pxamci_host *host, unsigned int stat)
/* /*
* workaround for erratum #42: * workaround for erratum #42:
* Intel PXA27x Family Processor Specification Update Rev 001 * Intel PXA27x Family Processor Specification Update Rev 001
* A bogus CRC error can appear if the msb of a 136 bit
* response is a one.
*/ */
if (cmd->opcode == MMC_ALL_SEND_CID || if (cmd->flags & MMC_RSP_136 && cmd->resp[0] & 0x80000000) {
cmd->opcode == MMC_SEND_CSD || pr_debug("ignoring CRC from command %d - *risky*\n", cmd->opcode);
cmd->opcode == MMC_SEND_CID) { } else
/* a bogus CRC error can appear if the msb of
the 15 byte response is a one */
if ((cmd->resp[0] & 0x80000000) == 0)
cmd->error = MMC_ERR_BADCRC;
} else {
pr_debug("ignoring CRC from command %d - *risky*\n",cmd->opcode);
}
#else
cmd->error = MMC_ERR_BADCRC;
#endif #endif
cmd->error = MMC_ERR_BADCRC;
} }
pxamci_disable_irq(host, END_CMD_RES); pxamci_disable_irq(host, END_CMD_RES);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment