mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-11-20 16:46:23 +08:00
[MIPS] Sibyte: Stop timers before programming next even.
We have no guarantee by the generic time code that the timer is stopped when the ->next_event method is called. Modifying the Timer Initial Count register while the timer is enabled has UNPREDICTABLE effect according to the BCM1250/BCM1125/BCM1125H User Manual. So stop the timer before reprogramming. This is a paranoia fix; no ill effects have been observed previously. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
622477533d
commit
8dfa741f14
@ -75,6 +75,7 @@ static int sibyte_next_event(unsigned long delta, struct clock_event_device *cd)
|
||||
cfg = IOADDR(A_SCD_TIMER_REGISTER(cpu, R_SCD_TIMER_CFG));
|
||||
init = IOADDR(A_SCD_TIMER_REGISTER(cpu, R_SCD_TIMER_INIT));
|
||||
|
||||
__raw_writeq(0, cfg);
|
||||
__raw_writeq(delta - 1, init);
|
||||
__raw_writeq(M_SCD_TIMER_ENABLE, cfg);
|
||||
|
||||
|
@ -73,6 +73,7 @@ static int sibyte_next_event(unsigned long delta, struct clock_event_device *cd)
|
||||
cfg = IOADDR(A_SCD_TIMER_REGISTER(cpu, R_SCD_TIMER_CFG));
|
||||
init = IOADDR(A_SCD_TIMER_REGISTER(cpu, R_SCD_TIMER_INIT));
|
||||
|
||||
__raw_writeq(0, cfg);
|
||||
__raw_writeq(delta - 1, init);
|
||||
__raw_writeq(M_SCD_TIMER_ENABLE, cfg);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user