Hi Peng, > -----Original Message----- > From: Peng Fan <peng....@nxp.com> > Sent: Monday, July 20, 2020 9:37 AM > To: Y.b. Lu <yangbo...@nxp.com>; u-boot@lists.denx.de; Priyanka Jain > <priyanka.j...@nxp.com>; 'Jaehoon Chung' <jh80.ch...@samsung.com> > Cc: Y.b. Lu <yangbo...@nxp.com> > Subject: RE: [v2, 05/11] mmc: add a hs400_tuning flag > > > Subject: [v2, 05/11] mmc: add a hs400_tuning flag > > > > Add a hs400_tuning flag to identify the tuning for HS400 mode. > > Why? Please explain a bit more.
Some specific controllers may have difference between HS400 tuning and HS200 tuning. For eSDHC, as you saw in my patch #7, and there are also some eSDHC errata related to HS400 tuning which I will upstream patches in the future. In kernel drivers/mmc/host/sdhci.c, there is a flag SDHCI_HS400_TUNING used by sdhci-msm.c and sdhci-of-esdhc.c for specific handling. I will explain more in commit message. > > Thanks, > Peng. > > > > > Signed-off-by: Yangbo Lu <yangbo...@nxp.com> > > --- > > Changes for v2: > > - None. > > --- > > drivers/mmc/mmc.c | 2 ++ > > include/mmc.h | 1 + > > 2 files changed, 3 insertions(+) > > > > diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index > > a53f93a..a18e75d 100644 > > --- a/drivers/mmc/mmc.c > > +++ b/drivers/mmc/mmc.c > > @@ -1976,7 +1976,9 @@ static int mmc_select_hs400(struct mmc *mmc) > > mmc_set_clock(mmc, mmc->tran_speed, false); > > > > /* execute tuning if needed */ > > + mmc->hs400_tuning = 1; > > err = mmc_execute_tuning(mmc, > > MMC_CMD_SEND_TUNING_BLOCK_HS200); > > + mmc->hs400_tuning = 0; > > if (err) { > > debug("tuning failed\n"); > > return err; > > diff --git a/include/mmc.h b/include/mmc.h index 161b8bc..2399cc2 100644 > > --- a/include/mmc.h > > +++ b/include/mmc.h > > @@ -707,6 +707,7 @@ struct mmc { > > * accessing the boot partitions > > */ > > u32 quirks; > > + u8 hs400_tuning; > > }; > > > > struct mmc_hwpart_conf { > > -- > > 2.7.4