From: Hai Pham Date: Mon, 19 Jun 2023 22:38:25 +0000 (+0200) Subject: mmc: renesas-sdhi: Send stop when MMC tuning command fails X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=99ab3d8dc45c184dcec692fd7130f8732e8c25e4;p=u-boot.git mmc: renesas-sdhi: Send stop when MMC tuning command fails When tuning command (CMD21) fails with command error, call mmc_send_stop_transmission() to send stop command (CMD12). Reviewed-by: Takeshi Kihara Reviewed-by: Marek Vasut Signed-off-by: Hai Pham Signed-off-by: Marek Vasut [Marek: Add dev_dbg() message in case tuning abort fails Move tuning opcode check from mmc_abort_tuning()] Reviewed-by: Peng Fan --- diff --git a/drivers/mmc/renesas-sdhi.c b/drivers/mmc/renesas-sdhi.c index 280d96dbc2..8e716f7449 100644 --- a/drivers/mmc/renesas-sdhi.c +++ b/drivers/mmc/renesas-sdhi.c @@ -611,6 +611,17 @@ int renesas_sdhi_execute_tuning(struct udevice *dev, uint opcode) priv->smpcmp |= BIT(i); mdelay(1); + + /* + * eMMC specification specifies that CMD12 can be used to stop a tuning + * command, but SD specification does not, so do nothing unless it is + * eMMC. + */ + if (ret && (opcode == MMC_CMD_SEND_TUNING_BLOCK_HS200)) { + ret = mmc_send_stop_transmission(mmc, false); + if (ret < 0) + dev_dbg(dev, "Tuning abort fail (%d)\n", ret); + } } ret = renesas_sdhi_select_tuning(priv, taps);