[PATCH] mmc:Remove thr legacy mode clock setting operation

谢飞 xf_hqu at 163.com
Mon Jun 26 08:59:28 CEST 2023


Hi,Peng.:


Has you meet any issues without removing this line? or this is just code 
inpsection?
          In practical use, when some EMMC particles switch to the hs mode below, an error message cmd8 may appear. The reason for this is that the clock operation of setting the legacy mode was performed before switching to the hs mode, which caused the clock to switch too early. At this time, the communication between the host and card is abnormal


That is to say, switching the clocks of the host and card to high speed before switching to hs mode can cause communication issues between the host and card






BTW the upper "else" will met issue if you directly remove this line.

Delete this line directly. There will indeed be issues with the else above. I did not find it on my end because I did not open the compilation macro definition above. This is the patch I resubmitted







Best wishes




Thanks








At 2023-06-26 14:54:47, xf_hqu at 163.com wrote:
>From: xiefei <xf_hqu at 163.com>
>
>Due to the need to read the register value before
>switching to hs mode, the standard protocol does
>not explicitly specify that the setting before
>switching to hs mode is in legacy mode. Therefore,
>the code at this point may cause communication
>abnormalities between the host and card
>
>Signed-off-by: xiefei <xf_hqu at 163.com>
>---
> drivers/mmc/mmc.c | 2 --
> 1 file changed, 2 deletions(-)
>
>diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
>index 1af6af82e6..96cc7e7332 100644
>--- a/drivers/mmc/mmc.c
>+++ b/drivers/mmc/mmc.c
>@@ -2136,9 +2136,7 @@ static int mmc_select_mode_and_width(struct mmc *mmc, uint card_caps)
> 	    mmc->selected_mode == MMC_HS_400 ||
> 	    mmc->selected_mode == MMC_HS_400_ES)
> 		mmc_set_card_speed(mmc, MMC_HS, true);
>-	else
> #endif
>-		mmc_set_clock(mmc, mmc->legacy_speed, MMC_CLK_ENABLE);
> 
> 	for_each_mmc_mode_by_pref(card_caps, mwt) {
> 		for_each_supported_width(card_caps & mwt->widths,
>-- 
>2.17.1


More information about the U-Boot mailing list