mmc: msm_sdcc: use prog_done for all commands having R1B response type
This change enables the PROG_ENA for all commands which has response
type as R1B. Below is the details of the major reason why this
change is done:
If CMD5 (SLEEP/AWAKE) is sent to eMMC, eMMC can pull the DAT0 line low
to indicate the busy condition to host controller and host need to
either wait for s_a_timeout defined in EXT_CSD register or needs to
wait until DAT0 line set to high. If MMC_CAP_WAIT_WHILE_BUSY is not
enabled by the host controller driver then core layer waits for fixed
amount time specified by s_a_timeout paramater which is generally very
high when compared to amount of time card keeps the DAT0 line low.
Experiments shows that for Sandisk eMMC, s_a_timeout is 14ms where as if
we use controller capability to detect the DAT0 line status, wait time
is max. 4ms.
As our host controller can poll the DAT0 line status for commands with
R1B response type, this change enables the MMC_CAP_WAIT_WHILE_BUSY
capability.
CRs-fixed: 312924
Change-Id: Ic2de52e05b738caa85e214e5f9868a5d7fd885a0
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
2 files changed