On Tue, Aug 15, 2023 at 6:37 PM Adrian Hunter <adrian.hunter@xxxxxxxxx> wrote: > > On 15/08/23 13:29, Wenchao Chen wrote: > > On Tue, Aug 15, 2023 at 2:21 PM Adrian Hunter <adrian.hunter@xxxxxxxxx> wrote: > >> > >> On 15/08/23 04:40, Wenchao Chen wrote: > >>> Change in v2: > >>> - add mmc_sd_switch() and mmc_send_status() to the header file > >>> - split up core changes from host driver changes > >>> - Use pr_debug instead of dev_info and dev_dbg > >>> - Optimize the best sampled value algorithm > >> > >> What about hooking ->set_ios() as Ulf suggested? > >> > > > > I've tried that, but it's not a good way to do it. > > We found that sdhci_runtime_resume_host() calls ->set_ios, but we > > don't want to do that. > > Given that sdhci_sprd_runtime_resume() calls sdhci_runtime_resume_host(), > it should be possible to determine when to tune, right? > You mean like this? For example: static int sdhci_sprd_runtime_resume(struct device *dev) { ... sprd_host->need_hs_tuning = false; sdhci_runtime_resume_host(host, 1); sprd_host->need_hs_tuning = true; ... } > > We just need SD HS mode tuning at mmc_sd_init_card(). > > > >>> > >>> Wenchao Chen (2): > >>> mmc: core: Add host specific tuning support for SD HS mode > >>> mmc: sdhci-sprd: Add SD HS mode online tuning > >>> > >>> drivers/mmc/core/sd.c | 12 +++ > >>> drivers/mmc/core/sd_ops.c | 1 + > >>> drivers/mmc/host/sdhci-sprd.c | 152 ++++++++++++++++++++++++++++++++++ > >>> include/linux/mmc/host.h | 8 ++ > >>> 4 files changed, 173 insertions(+) > >>> > >> >