]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
clk: use clk_core_get_rate_recalc() in clk_rate_get()
authorClaudiu Beznea <claudiu.beznea@microchip.com>
Mon, 11 Oct 2021 11:27:19 +0000 (14:27 +0300)
committerStephen Boyd <sboyd@kernel.org>
Wed, 27 Oct 2021 01:31:23 +0000 (18:31 -0700)
In case clock flags contains CLK_GET_RATE_NOCACHE the clk_rate_get()
will return the cached rate. Thus, use clk_core_get_rate_recalc() which
takes proper action when clock flags contains CLK_GET_RATE_NOCACHE.

Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Link: https://lore.kernel.org/r/20211011112719.3951784-16-claudiu.beznea@microchip.com
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
[sboyd@kernel.org: Grab prepare lock around operation]
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/clk.c

index 65508eb89ec9965395ceb98e1aeb5c2f324e4cf1..f467d63bbf1eefdbc937a324eb477547d6deb5c6 100644 (file)
@@ -3108,7 +3108,10 @@ static int clk_rate_get(void *data, u64 *val)
 {
        struct clk_core *core = data;
 
-       *val = core->rate;
+       clk_prepare_lock();
+       *val = clk_core_get_rate_recalc(core);
+       clk_prepare_unlock();
+
        return 0;
 }