mmc: core: Flag re-tuning is needed on CRC errors
CRC errors could possibly be alleviated by re-tuning so flag re-tuning needed in those cases. Note this has no effect if re-tuning has not been enabled. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
Родитель
66c39dfc92
Коммит
bd11e8bd03
|
@ -133,6 +133,12 @@ void mmc_request_done(struct mmc_host *host, struct mmc_request *mrq)
|
||||||
struct mmc_command *cmd = mrq->cmd;
|
struct mmc_command *cmd = mrq->cmd;
|
||||||
int err = cmd->error;
|
int err = cmd->error;
|
||||||
|
|
||||||
|
/* Flag re-tuning needed on CRC errors */
|
||||||
|
if (err == -EILSEQ || (mrq->sbc && mrq->sbc->error == -EILSEQ) ||
|
||||||
|
(mrq->data && mrq->data->error == -EILSEQ) ||
|
||||||
|
(mrq->stop && mrq->stop->error == -EILSEQ))
|
||||||
|
mmc_retune_needed(host);
|
||||||
|
|
||||||
if (err && cmd->retries && mmc_host_is_spi(host)) {
|
if (err && cmd->retries && mmc_host_is_spi(host)) {
|
||||||
if (cmd->resp[0] & R1_SPI_ILLEGAL_COMMAND)
|
if (cmd->resp[0] & R1_SPI_ILLEGAL_COMMAND)
|
||||||
cmd->retries = 0;
|
cmd->retries = 0;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче