summaryrefslogtreecommitdiffstats
path: root/sound/core/timer.c
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2006-07-17 16:53:57 +0200
committerJaroslav Kysela <perex@suse.cz>2006-09-23 10:38:13 +0200
commitcd93fe4770ca607c7f39260c02941deccbd77b8b (patch)
tree7f2fc78b8815d88de991160feb7574120cd47aed /sound/core/timer.c
parent[ALSA] system timer: clear correction value when timer stops (diff)
downloadlinux-cd93fe4770ca607c7f39260c02941deccbd77b8b.tar.xz
linux-cd93fe4770ca607c7f39260c02941deccbd77b8b.zip
[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>
Diffstat (limited to 'sound/core/timer.c')
-rw-r--r--sound/core/timer.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sound/core/timer.c b/sound/core/timer.c
index 4fcc8549e4a6..3a2f8e2ca401 100644
--- a/sound/core/timer.c
+++ b/sound/core/timer.c
@@ -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);