mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-27 13:30:52 +00:00
xilinx_timer: Fixed deadlock issue
The timer was deadlocking when the interval was set too low. It would cause a flood of timer events and the CPU would halt indefinately. This is a known issue and theres a generic workaround in place in ptimer on ptimer_set_limit(), however the Xilinx timer uses ptimer_set_count() instead of set_limit. Changed the call to set_count() to an equivalent call of set_limit() instead, which brings the workaround into play. Signed-off-by: Peter A. G. Crosthwaite <peter.crosthwaite@petalogix.com> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
This commit is contained in:
parent
fc3511d4d8
commit
7798a8828a
@ -136,7 +136,7 @@ static void timer_enable(struct xlx_timer *xt)
|
||||
count = xt->regs[R_TLR];
|
||||
else
|
||||
count = ~0 - xt->regs[R_TLR];
|
||||
ptimer_set_count(xt->ptimer, count);
|
||||
ptimer_set_limit(xt->ptimer, count, 1);
|
||||
ptimer_run(xt->ptimer, 1);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user