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> Signed-off-by:
Ram Prakash Gupta <rampraka@codeaurora.org>
Loading
Please register or sign in to comment