mmc: sh_mobile_sdhi: only change the clock on RCar Gen2+
authorWolfram Sang <wsa+renesas@sang-engineering.com>
Mon, 2 May 2016 20:25:41 +0000 (22:25 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Wed, 4 May 2016 07:28:04 +0000 (09:28 +0200)
We had a regression on r8a7740 where the SDHI clock was a generic
peripheral clock, so changing its rate was not desired. This should be
fixed in the clock driver. However, it also shows that the new clock
calculation should only be used on tested systems. Add a check for that.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sh_mobile_sdhi.c

index 19e4c29e4233b04226bec6bf41ec29f2b86e7d62..ac9ba36da39b5b56dfa4799298b0579a280cd6f8 100644 (file)
@@ -168,6 +168,10 @@ static unsigned int sh_mobile_sdhi_clk_update(struct tmio_mmc_host *host,
        unsigned int freq, diff, best_freq = 0, diff_min = ~0;
        int i;
 
+       /* tested only on RCar Gen2+ currently; may work for others */
+       if (!(host->pdata->flags & TMIO_MMC_MIN_RCAR2))
+               return clk_get_rate(priv->clk);
+
        /*
         * We want the bus clock to be as close as possible to, but no
         * greater than, new_clock.  As we can divide by 1 << i for