Re: [PATCH] mmc: sdhi: fill in actual_clock

From: Geert Uytterhoeven
Date: Thu Aug 29 2019 - 03:47:45 EST


Hi TamÃs,

On Wed, Aug 28, 2019 at 9:02 PM TamÃs SzÅcs <tszucs@xxxxxxxxxxxxx> wrote:
> Save set clock in mmc_host actual_clock enabling exporting it via debugfs.
> This will indicate the precise SD clock in I/O settings rather than only the
> sometimes misleading requested clock.
>
> Signed-off-by: TamÃs SzÅcs <tszucs@xxxxxxxxxxxxx>

Thanks for your patch!

> --- a/drivers/mmc/host/renesas_sdhi_core.c
> +++ b/drivers/mmc/host/renesas_sdhi_core.c
> @@ -124,7 +124,7 @@ static unsigned int renesas_sdhi_clk_update(struct tmio_mmc_host *host,
> {
> struct renesas_sdhi *priv = host_to_priv(host);
> unsigned int freq, diff, best_freq = 0, diff_min = ~0;
> - int i, ret;
> + int i;
>
> /* tested only on R-Car Gen2+ currently; may work for others */
> if (!(host->pdata->flags & TMIO_MMC_MIN_RCAR2))
> @@ -153,9 +153,11 @@ static unsigned int renesas_sdhi_clk_update(struct tmio_mmc_host *host,
> }
> }
>
> - ret = clk_set_rate(priv->clk, best_freq);
> + host->mmc->actual_clock =
> + clk_set_rate(priv->clk, best_freq) == 0 ?
> + best_freq : clk_get_rate(priv->clk);

When clk_set_rate() returns 0 to indicate success, it may still have
rounded the requested clock rate, no?
So wouldn't it be better to always call clk_get_rate()?
>
> - return ret == 0 ? best_freq : clk_get_rate(priv->clk);
> + return host->mmc->actual_clock;
> }

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds