Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 2b42dd78 authored by Ritesh Harjani's avatar Ritesh Harjani Committed by Ram Prakash Gupta
Browse files

mmc: mmc: Fix mmc_partial_init for HS400 mode



In case of emmc5.0 cards where HS400 mode and CMD5(awake) partial
init is enabled -> mmc_partial_init is broken and gives below errors.
Fix this by adding calibration logic in case of HS400 mode.

NOTE: In HS400 mode tuning is only performed once during bootup (in
HS200 mode).
Post to that it is always DLL calibration which is performed (in
system/runtime resume).
So even for below issue since timing is already changed using
cached_ios, then do the calibration using ->execute_tuning.

<dmesg errors w/o patch>
root@msm8996:/ # [   76.011036] mmc0: mmc_runtime_suspend:
[   77.315903] mmc0: mmc_runtime_resume:
[   77.367866] mmc0: mmc_partial_init: starting partial init
[   77.376225] mmc0: mmc_test_awake_ext_csd: mmc_get_ext_csd failed
(-110)
[   77.382190] mmc0: mmc_partial_init: done partial init (-110)
[   77.387536] mmc0: _mmc_resume: awake failed (-110), fallback to full
init
[   77.394405] mmc0: mmc_init_card:
[   77.402762] mmc0: mmc_init_card: mmc_send_op_cond() fails -110
[   77.407573] mmc0: MMC card re-init failed rc = -110 (retries = 3)
[   77.507261] mmc0: _mmc_resume: awake failed (-110), fallback to full
init
[   77.513293] mmc0: mmc_init_card:

<dmesg with patch>
[   74.002624] mmc0: mmc_runtime_resume:
[   74.056089] mmc0: mmc_partial_init: starting partial init
[   74.067143] mmc0: mmc_partial_init: done partial init (0).

Change-Id: I0e55efb7863b75bd584843c3fc920c845996eb5c
Signed-off-by: default avatarRitesh Harjani <riteshh@codeaurora.org>
Signed-off-by: default avatarRam Prakash Gupta <rampraka@codeaurora.org>
parent d264da51
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment