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

From: Ritesh Harjani
Date: Fri Dec 23 2016 - 04:20:52 EST


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 ?


Regards
Ritesh

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 *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);
mmc_set_bus_speed(card);

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



--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project