
On 7/15/22 10:49, Marek BehĂșn wrote:
On Fri, 15 Jul 2022 01:58:24 +0200 Marek Vasut marex@denx.de wrote:
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
Does the lenghty timeout occur even on xenon with the patch https://source.denx.de/u-boot/u-boot/-/commit/0f3466f52fbacce67e147b9234e632... ?
Unlikely, you will get -ENOSYS from wait on dat0 and bail out, i.e. you'd hit the condition before this one because wait on dat0 is not implemented.