On 15/08/23 13:55, Wenchao Chen wrote: > 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; Yes > ... > } > >>> 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(+) >>>>> >>>> >>