mmc: tmio: Fix SCC error detection
authorMasaharu Hayakawa <masaharu.hayakawa.ry@renesas.com>
Wed, 29 Aug 2018 23:32:07 +0000 (01:32 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 24 Nov 2019 07:23:20 +0000 (08:23 +0100)
[ Upstream commit b85fb0a1c8aeaaa40d08945d51a6656b512173f0 ]

SDR104, HS200 and HS400 need to check for SCC error. If SCC error is
detected, retuning is necessary.

Signed-off-by: Masaharu Hayakawa <masaharu.hayakawa.ry@renesas.com>
[Niklas: update commit message]
Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/mmc/host/tmio_mmc_core.c

index 2437fcde915a75edf041f80a7bd9ef95048615c1..01e51b7945750782911a315bf864879dfa4beff7 100644 (file)
@@ -914,8 +914,8 @@ static void tmio_mmc_finish_request(struct tmio_mmc_host *host)
        if (mrq->cmd->error || (mrq->data && mrq->data->error))
                tmio_mmc_abort_dma(host);
 
-       if (host->check_scc_error)
-               host->check_scc_error(host);
+       if (host->check_scc_error && host->check_scc_error(host))
+               mrq->cmd->error = -EILSEQ;
 
        /* If SET_BLOCK_COUNT, continue with main command */
        if (host->mrq && !mrq->cmd->error) {