[PATCH] mmc: Do not send status of send_status is false

Marek Vasut marex at denx.de
Fri Jul 15 12:17:16 CEST 2022


On 7/15/22 10:49, Marek Behún wrote:
> On Fri, 15 Jul 2022 01:58:24 +0200
> Marek Vasut <marex at 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 at denx.de>
>> Cc: Jaehoon Chung <jh80.chung at samsung.com>
>> Cc: Kirill Kapranov <kirill.kapranov at compulab.co.il>
>> Cc: Marek Behún <marek.behun at nic.cz>
>> Cc: Pantelis Antoniou <panto at antoniou-consulting.com>
>> Cc: Ye Li <ye.li at nxp.com>
> 
> Does the lenghty timeout occur even on xenon with the patch
> https://source.denx.de/u-boot/u-boot/-/commit/0f3466f52fbacce67e147b9234e6323edff26a6d
> ?

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.


More information about the U-Boot mailing list