summaryrefslogtreecommitdiff
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:05:37 +0100
commitc281b9c9aa0cbf7f7d6cad8ce164902a61712767 (patch)
tree1f1d5654215cb15672eb7a81cb019dc2034a48e6
parent62aea28af5c1b23c5d7c36475bd4d6e91a49f8bd (diff)
downloadlinux-c281b9c9aa0cbf7f7d6cad8ce164902a61712767.tar.gz
linux-c281b9c9aa0cbf7f7d6cad8ce164902a61712767.tar.bz2
linux-c281b9c9aa0cbf7f7d6cad8ce164902a61712767.zip
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>
-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 1911c8f6b8a6..15f4ab40e222 100644
--- a/arch/riscv/kernel/time.c
+++ b/arch/riscv/kernel/time.c
@@ -12,6 +12,7 @@
* GNU General Public License for more details.
*/
+#include <linux/of_clk.h>
#include <linux/clocksource.h>
#include <linux/delay.h>
#include <asm/sbi.h>
@@ -29,5 +30,7 @@ void __init time_init(void)
riscv_timebase = prop;
lpj_fine = riscv_timebase / HZ;
+
+ of_clk_init(NULL);
timer_probe();
}