Re: [PATCH 3/4] mmc: mmc: enable ios.enhanced_strobe before mmc_set_timing

From: Shawn Lin
Date: Mon Dec 26 2016 - 02:13:39 EST

On 2016/12/23 17:18, Ritesh Harjani wrote:
Hi Shawn,

Do you think, below change should be fine?


I am still checking on what we discussed on Patch2.

why I am asking is because - for HS400 in SDHC-MSM, we do the DLL
re-calibration as per the HW sequence. So it is done in both the cases,
for HS400 mode without and with enhanced strobe mode.

This can be done as part of set_ios when mmc_set_timing is called in
sdhci-msm driver.

I am still trying to check more on what would be more generic and
appropriate way inside sdhci-msm, for that I would like to know if
ios.enhanced_strobe = true before calling mmc_set_timing should be
acceptable or not ?



On 12/20/2016 11:23 AM, Ritesh Harjani wrote:
Some controllers may need to configure few registers based on enhanced
strobe mode while configuring to HS400 timing, thus make
ios.enhanced_strobe to true before mmc_set_timing in mmc_select_hs400es.

Signed-off-by: Ritesh Harjani <riteshh@xxxxxxxxxxxxxx>
drivers/mmc/core/mmc.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
index eb69497..052368e 100644
--- a/drivers/mmc/core/mmc.c
+++ b/drivers/mmc/core/mmc.c
@@ -1327,12 +1327,18 @@ static int mmc_select_hs400es(struct mmc_card
goto out_err;

+ /*
+ * Enable enhanced_strobe in ios, as some controllers
+ * may need to configure few registers based on enhanced
+ * strobe while changing HS400 timing.
+ */
+ host->ios.enhanced_strobe = true;
/* Set host controller to HS400 timing and frequency */
mmc_set_timing(host, MMC_TIMING_MMC_HS400);

/* Controller enable enhanced strobe function */
- host->ios.enhanced_strobe = true;
if (host->ops->hs400_enhanced_strobe)
host->ops->hs400_enhanced_strobe(host, &host->ios);

Best Regards
Shawn Lin