summaryrefslogtreecommitdiff
path: root/arch/riscv
diff options
context:
space:
mode:
authorDamien Le Moal <damien.lemoal@wdc.com>2020-12-13 22:50:34 +0900
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-01-27 11:47:43 +0100
commitcd0c46821aa5bbc3f2f2a09a68b9adc647fb4167 (patch)
tree30213ad3d5c00ef261b10f9c531f990e498097e4 /arch/riscv
parent5a1d7bb7d333849eb7d3ab5ebfbf9805b2cd46c9 (diff)
riscv: Fix kernel time_init()
[ Upstream commit 11f4c2e940e2f317c9d8fb5a79702f2a4a02ff98 ] If of_clk_init() is not called in time_init(), clock providers defined in the system device tree are not initialized, resulting in failures for other devices to initialize due to missing clocks. Similarly to other architectures and to the default kernel time_init() implementation, call of_clk_init() before executing timer_probe() in time_init(). Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com> Acked-by: Stephen Boyd <sboyd@kernel.org> Reviewed-by: Palmer Dabbelt <palmerdabbelt@google.com> Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'arch/riscv')
-rw-r--r--arch/riscv/kernel/time.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/riscv/kernel/time.c b/arch/riscv/kernel/time.c
index 6a53c02e9c73..8aa70b519e04 100644
--- a/arch/riscv/kernel/time.c
+++ b/arch/riscv/kernel/time.c
@@ -4,6 +4,7 @@
* Copyright (C) 2017 SiFive
*/
+#include <linux/of_clk.h>
#include <linux/clocksource.h>
#include <linux/delay.h>
#include <asm/sbi.h>
@@ -24,5 +25,7 @@ void __init time_init(void)
riscv_timebase = prop;
lpj_fine = riscv_timebase / HZ;
+
+ of_clk_init(NULL);
timer_probe();
}