diff options
| author | Ritesh Harjani <riteshh@codeaurora.org> | 2017-02-20 13:50:58 +0530 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-05-12 02:08:27 -0700 |
| commit | 45eadbbce311265e628190171e130c22089b9440 (patch) | |
| tree | 9d2a2e8dc2fceb5a728d5111026e038213690966 /drivers/usb/chipidea/debug.c | |
| parent | ae4d972f07f97de9a368a33820a7fe38284498c2 (diff) | |
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: Ritesh Harjani <riteshh@codeaurora.org>
Diffstat (limited to 'drivers/usb/chipidea/debug.c')
0 files changed, 0 insertions, 0 deletions
