| From 8899559cebcc8442d630ce5e9b726d1bf7b20674 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sun, 13 Dec 2020 22:50:34 +0900 |
| Subject: riscv: Fix kernel time_init() |
| |
| From: Damien Le Moal <damien.lemoal@wdc.com> |
| |
| [ 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> |
| --- |
| arch/riscv/kernel/time.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| diff --git a/arch/riscv/kernel/time.c b/arch/riscv/kernel/time.c |
| index 1911c8f6b8a69..15f4ab40e2221 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(); |
| } |
| -- |
| 2.27.0 |
| |