mmc: msm_sdcc: add support to send auto_cmd19 for CMD53 read operations
mmc: msm_sdcc: add support to send auto_cmd19 for CMD53 read operations

SDR104 (supported by SD/SDIO 3.0 spec compliant cards) bus speed mode
requires DLL (Delay Locked Loop for sampling clock generation) HW
block to be tuned if clock rate is >100MHz. To help the sampling clock
tuning, SD/SDIO 3.0 specification has added support for tuning commands
(CMD19).

During card initialization, driver uses these tuning commands to search
for optimal sampling point and then configures the DLL HW with this
optimal sampling point.

In addition, our SDCC controller's DLL HW has a mechanism of data
tracking (CDR) which can be enabled during read transaction so the host
will not lose the sampling point as a result of voltage and, especially,
temperature variations. Tuning pattern commands (CMD19) can be sent
automatically by HW (by using AUTO_CMD19 bit) before any RX transaction
for helping the CDR to track after the correct sampling point.

Although sending CMD19 automatically before every read commands is
overhead and reduces read performance by some amount. SD/SDIO spec does
not mandate the host to send tuning command before every read operations.

CRs-Fixed: 424685
Change-Id: I806317b86f38ed94c6d399fc18caede4f610cf6a
Signed-off-by: Subhash Jadavani <8892145aa7c2bcafaa8055ef206043082445675b@codeaurora.org>

TeamVee-Kanas/android_kernel_samsung_kanas,TeamVee-Kanas/android_kernel_samsung_kanas,TeamVee-Kanas/android_kernel_samsung_kanas,TeamVee-Kanas/android_kernel_samsung_kanas,TeamVee-Kanas/android_kernel_samsung_kanas