mmc: Do not send status of send_status is false
authorMarek Vasut <marex@denx.de>
Thu, 14 Jul 2022 23:58:24 +0000 (01:58 +0200)
committerTom Rini <trini@konsulko.com>
Wed, 10 Aug 2022 17:38:29 +0000 (13:38 -0400)
commit2349ecffec5fc91d3c8964725865132c73d68f15
treea1a3b5c3c248bc6e88f4dbbf4ab2adac46a8c76c
parent3dd4e916324efc825a7ee8e412f5cf1ded839021
mmc: Do not send status of send_status is false

Commit 44645f87de5 ("mmc: Fix mmc_switch excessive timeout") introduced
a side effect where CMD13 SEND_STATUS is issued in case mmc_wait_dat0()
does not return -ENOSYS and $send_status is not set. This happens on all
hardware which does implement .mmc_wait_dat0 callback, e.g. i.MX8M .

This leads to lengthy timeout before booting OS in case of eMMC in one
of the HS200/HS400 modes, since the card cannot respond to CMD13 while
downgrading from HS200/HS400 to regular HS mode.

Fix this by adding the missing conditional.

Fixes: 44645f87de5 ("mmc: Fix mmc_switch excessive timeout")
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Jaehoon Chung <jh80.chung@samsung.com>
Cc: Kirill Kapranov <kirill.kapranov@compulab.co.il>
Cc: Marek BehĂșn <marek.behun@nic.cz>
Cc: Pantelis Antoniou <panto@antoniou-consulting.com>
Cc: Ye Li <ye.li@nxp.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
drivers/mmc/mmc.c