[ALSA] timer: fix timer rescheduling
When checking whether a hardware timer needs to be rescheduled, we have to compare against the previously scheduled interval and not against the actual interval between the last two interrupts. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This commit is contained in:
parent
de2696d8bc
commit
cd93fe4770
|
@ -718,7 +718,7 @@ void snd_timer_interrupt(struct snd_timer * timer, unsigned long ticks_left)
|
|||
}
|
||||
}
|
||||
if (timer->flags & SNDRV_TIMER_FLG_RESCHED)
|
||||
snd_timer_reschedule(timer, ticks_left);
|
||||
snd_timer_reschedule(timer, timer->sticks);
|
||||
if (timer->running) {
|
||||
if (timer->hw.flags & SNDRV_TIMER_HW_STOP) {
|
||||
timer->hw.stop(timer);
|
||||
|
|
Loading…
Reference in New Issue