Message ID | 20210607013020.85885-1-andrew@aj.id.au |
---|---|
State | New |
Headers | show |
Series | mmc: sdhci-of-aspeed: Turn down a phase correction warning | expand |
On Mon, 7 Jun 2021 at 03:30, Andrew Jeffery <andrew@aj.id.au> wrote: > > The card timing and the bus frequency are not changed atomically with > respect to calls to the set_clock() callback in the driver. The result > is the driver sees a transient state where there's a mismatch between > the two and thus the inputs to the phase correction calculation > formula are garbage. > > Switch from dev_warn() to dev_dbg() to avoid noise in the normal case, > though the change does make bad configurations less likely to be > noticed. > > Reported-by: Joel Stanley <joel@jms.id.au> > Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Applied for next, thanks! Kind regards Uffe > --- > drivers/mmc/host/sdhci-of-aspeed.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/mmc/host/sdhci-of-aspeed.c b/drivers/mmc/host/sdhci-of-aspeed.c > index d001c51074a0..e4665a438ec5 100644 > --- a/drivers/mmc/host/sdhci-of-aspeed.c > +++ b/drivers/mmc/host/sdhci-of-aspeed.c > @@ -150,7 +150,7 @@ static int aspeed_sdhci_phase_to_tap(struct device *dev, unsigned long rate_hz, > > tap = div_u64(phase_period_ps, prop_delay_ps); > if (tap > ASPEED_SDHCI_NR_TAPS) { > - dev_warn(dev, > + dev_dbg(dev, > "Requested out of range phase tap %d for %d degrees of phase compensation at %luHz, clamping to tap %d\n", > tap, phase_deg, rate_hz, ASPEED_SDHCI_NR_TAPS); > tap = ASPEED_SDHCI_NR_TAPS; > -- > 2.30.2 >
diff --git a/drivers/mmc/host/sdhci-of-aspeed.c b/drivers/mmc/host/sdhci-of-aspeed.c index d001c51074a0..e4665a438ec5 100644 --- a/drivers/mmc/host/sdhci-of-aspeed.c +++ b/drivers/mmc/host/sdhci-of-aspeed.c @@ -150,7 +150,7 @@ static int aspeed_sdhci_phase_to_tap(struct device *dev, unsigned long rate_hz, tap = div_u64(phase_period_ps, prop_delay_ps); if (tap > ASPEED_SDHCI_NR_TAPS) { - dev_warn(dev, + dev_dbg(dev, "Requested out of range phase tap %d for %d degrees of phase compensation at %luHz, clamping to tap %d\n", tap, phase_deg, rate_hz, ASPEED_SDHCI_NR_TAPS); tap = ASPEED_SDHCI_NR_TAPS;
The card timing and the bus frequency are not changed atomically with respect to calls to the set_clock() callback in the driver. The result is the driver sees a transient state where there's a mismatch between the two and thus the inputs to the phase correction calculation formula are garbage. Switch from dev_warn() to dev_dbg() to avoid noise in the normal case, though the change does make bad configurations less likely to be noticed. Reported-by: Joel Stanley <joel@jms.id.au> Signed-off-by: Andrew Jeffery <andrew@aj.id.au> --- drivers/mmc/host/sdhci-of-aspeed.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)