On Tue, Oct 11, 2022 at 2:45 PM Adrian Hunter <adrian.hunter@xxxxxxxxx> wrote: > > On 11/10/22 09:30, Wenchao Chen wrote: > > From: Wenchao Chen <wenchao.chen@xxxxxxxxxx> > > > > The minimum clock supported by SPRD Host is 100000. > > Commit messages are better if they say why a change > is being made. > > This begs the question, was there a problem with 400 kHz? > Are there cases that benefit from this change? > Should it have a fixes tag,cc stable? > Code show as below: static struct sdhci_ops sdhci_sprd_ops = { ... .get_min_clock = sdhci_sprd_get_min_clock, ... }; int sdhci_setup_host(struct sdhci_host *host) { ... if (host->ops->get_min_clock) mmc->f_min = host->ops->get_min_clock(host); ... } static const unsigned freqs[] = { 400000, 300000, 200000, 100000 }; void mmc_rescan(struct work_struct *work) { ... for (i = 0; i < ARRAY_SIZE(freqs); i++) { unsigned int freq = freqs[i]; if (freq > host->f_max) { if (i + 1 < ARRAY_SIZE(freqs)) continue; freq = host->f_max; } if (!mmc_rescan_try_freq(host, max(freq, host->f_min))) break; if (freqs[i] <= host->f_min) // If you start at 100K, you will try 400K, 300K, 200K, 100K. break; } ... } Our controller supports 100K. During the test, it was found that mmc_rescan failed to scan the card at 400K, and did not try 300K, 200K, and 100K. After modifying the minimum clock limit to 100K, the card scan was successful. > > > > Signed-off-by: Wenchao Chen <wenchao.chen@xxxxxxxxxx> > > --- > > drivers/mmc/host/sdhci-sprd.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/mmc/host/sdhci-sprd.c b/drivers/mmc/host/sdhci-sprd.c > > index 46c55ab4884c..b92a408f138d 100644 > > --- a/drivers/mmc/host/sdhci-sprd.c > > +++ b/drivers/mmc/host/sdhci-sprd.c > > @@ -309,7 +309,7 @@ static unsigned int sdhci_sprd_get_max_clock(struct sdhci_host *host) > > > > static unsigned int sdhci_sprd_get_min_clock(struct sdhci_host *host) > > { > > - return 400000; > > + return 100000; > > } > > > > static void sdhci_sprd_set_uhs_signaling(struct sdhci_host *host, >