* Re: [PATCH] mmc: Do not send status of send_status is false
2022-07-14 23:58 ` [PATCH] mmc: Do not send status of send_status is false Marek Vasut
@ 2022-07-15 8:49 ` Marek Behún
2022-07-15 10:17 ` Marek Vasut
2022-07-26 8:28 ` Jaehoon Chung
2022-08-10 21:50 ` Tom Rini
2 siblings, 1 reply; 5+ messages in thread
From: Marek Behún @ 2022-07-15 8:49 UTC (permalink / raw)
To: Marek Vasut
Cc: u-boot, Jaehoon Chung, Kirill Kapranov, Pantelis Antoniou, Ye Li
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/0f3466f52fbacce67e147b9234e6323edff26a6d
?
Marek
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH] mmc: Do not send status of send_status is false
2022-07-15 8:49 ` Marek Behún
@ 2022-07-15 10:17 ` Marek Vasut
0 siblings, 0 replies; 5+ messages in thread
From: Marek Vasut @ 2022-07-15 10:17 UTC (permalink / raw)
To: Marek Behún
Cc: u-boot, Jaehoon Chung, Kirill Kapranov, Pantelis Antoniou, Ye Li
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/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.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] mmc: Do not send status of send_status is false
2022-07-14 23:58 ` [PATCH] mmc: Do not send status of send_status is false Marek Vasut
2022-07-15 8:49 ` Marek Behún
@ 2022-07-26 8:28 ` Jaehoon Chung
2022-08-10 21:50 ` Tom Rini
2 siblings, 0 replies; 5+ messages in thread
From: Jaehoon Chung @ 2022-07-26 8:28 UTC (permalink / raw)
To: Marek Vasut, u-boot
Cc: Kirill Kapranov, Marek Behún, Pantelis Antoniou, Ye Li
On 7/15/22 08:58, Marek Vasut 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>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
Best Regards,
Jaehoon Chung
> ---
> drivers/mmc/mmc.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
> index 12d29da528a..b62baca8457 100644
> --- a/drivers/mmc/mmc.c
> +++ b/drivers/mmc/mmc.c
> @@ -831,6 +831,9 @@ static int __mmc_switch(struct mmc *mmc, u8 set, u8 index, u8 value,
> return 0;
> }
>
> + if (!send_status)
> + return 0;
> +
> /* Finally wait until the card is ready or indicates a failure
> * to switch. It doesn't hurt to use CMD13 here even if send_status
> * is false, because by now (after 'timeout_ms' ms) the bus should be
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH] mmc: Do not send status of send_status is false
2022-07-14 23:58 ` [PATCH] mmc: Do not send status of send_status is false Marek Vasut
2022-07-15 8:49 ` Marek Behún
2022-07-26 8:28 ` Jaehoon Chung
@ 2022-08-10 21:50 ` Tom Rini
2 siblings, 0 replies; 5+ messages in thread
From: Tom Rini @ 2022-08-10 21:50 UTC (permalink / raw)
To: Marek Vasut
Cc: u-boot, Jaehoon Chung, Kirill Kapranov, Marek Behún,
Pantelis Antoniou, Ye Li
[-- Attachment #1: Type: text/plain, Size: 1063 bytes --]
On Fri, Jul 15, 2022 at 01:58:24AM +0200, Marek Vasut 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>
> Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
Applied to u-boot/master, thanks!
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread