diff options
author | Sander Vanheule <sander@svanheule.net> | 2023-01-27 23:35:47 +0100 |
---|---|---|
committer | Olliver Schinagl <oliver@schinagl.nl> | 2023-01-28 15:23:03 +0100 |
commit | 38cba61bff52f22affa66cc764dab2ac158ab7d3 (patch) | |
tree | e5e2517e54f1820fc82e16e8eafd7a545e389de1 /target | |
parent | a63430eac33ceb1dbf96d3667e2a0f2e04ba391f (diff) | |
download | upstream-38cba61bff52f22affa66cc764dab2ac158ab7d3.tar.gz upstream-38cba61bff52f22affa66cc764dab2ac158ab7d3.tar.bz2 upstream-38cba61bff52f22affa66cc764dab2ac158ab7d3.zip |
realtek: timer: Register enabled scheduler clock
Before calling sched_clock_register(), the timer used to drive the
scheduling clock should already be enabled. Otherwise the kernel log
will show strange time jumps during, and the watchdog might not be
pinged in a timely fashion, resulting in reboots.
[ 0.160281] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[ 78.104319] clocksource: Switched to clocksource realtek_otto_timer
Fixes: 3cc801117118 ("realtek: resurrect timer driver")
Signed-off-by: Sander Vanheule <sander@svanheule.net>
Diffstat (limited to 'target')
-rw-r--r-- | target/linux/realtek/files-5.10/drivers/clocksource/timer-rtl-otto.c | 2 | ||||
-rw-r--r-- | target/linux/realtek/files-5.15/drivers/clocksource/timer-rtl-otto.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/target/linux/realtek/files-5.10/drivers/clocksource/timer-rtl-otto.c b/target/linux/realtek/files-5.10/drivers/clocksource/timer-rtl-otto.c index c096d8742b..0395cf29e5 100644 --- a/target/linux/realtek/files-5.10/drivers/clocksource/timer-rtl-otto.c +++ b/target/linux/realtek/files-5.10/drivers/clocksource/timer-rtl-otto.c @@ -229,7 +229,6 @@ struct rttm_cs rttm_cs = { .mask = CLOCKSOURCE_MASK(RTTM_BIT_COUNT), .flags = CLOCK_SOURCE_IS_CONTINUOUS, .read = rttm_read_clocksource, - .enable = rttm_enable_clocksource } }; @@ -276,6 +275,7 @@ static int __init rttm_probe(struct device_node *np) to->of_base.index = clkidx; timer_of_init(np, to); if (rttm_cs.to.of_base.base && rttm_cs.to.of_clk.rate) { + rttm_enable_clocksource(&rttm_cs.cs); clocksource_register_hz(&rttm_cs.cs, RTTM_TICKS_PER_SEC); sched_clock_register(rttm_read_clock, RTTM_BIT_COUNT, RTTM_TICKS_PER_SEC); } else diff --git a/target/linux/realtek/files-5.15/drivers/clocksource/timer-rtl-otto.c b/target/linux/realtek/files-5.15/drivers/clocksource/timer-rtl-otto.c index c096d8742b..0395cf29e5 100644 --- a/target/linux/realtek/files-5.15/drivers/clocksource/timer-rtl-otto.c +++ b/target/linux/realtek/files-5.15/drivers/clocksource/timer-rtl-otto.c @@ -229,7 +229,6 @@ struct rttm_cs rttm_cs = { .mask = CLOCKSOURCE_MASK(RTTM_BIT_COUNT), .flags = CLOCK_SOURCE_IS_CONTINUOUS, .read = rttm_read_clocksource, - .enable = rttm_enable_clocksource } }; @@ -276,6 +275,7 @@ static int __init rttm_probe(struct device_node *np) to->of_base.index = clkidx; timer_of_init(np, to); if (rttm_cs.to.of_base.base && rttm_cs.to.of_clk.rate) { + rttm_enable_clocksource(&rttm_cs.cs); clocksource_register_hz(&rttm_cs.cs, RTTM_TICKS_PER_SEC); sched_clock_register(rttm_read_clock, RTTM_BIT_COUNT, RTTM_TICKS_PER_SEC); } else |