diff options
author | Clemens Ladisch <clemens@ladisch.de> | 2006-07-17 10:53:57 -0400 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2006-09-23 04:38:13 -0400 |
commit | cd93fe4770ca607c7f39260c02941deccbd77b8b (patch) | |
tree | 7f2fc78b8815d88de991160feb7574120cd47aed /sound/core | |
parent | de2696d8bc9c81874b3743e0c27708760cb7fb52 (diff) |
[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')
-rw-r--r-- | sound/core/timer.c | 2 |
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) | |||
718 | } | 718 | } |
719 | } | 719 | } |
720 | if (timer->flags & SNDRV_TIMER_FLG_RESCHED) | 720 | if (timer->flags & SNDRV_TIMER_FLG_RESCHED) |
721 | snd_timer_reschedule(timer, ticks_left); | 721 | snd_timer_reschedule(timer, timer->sticks); |
722 | if (timer->running) { | 722 | if (timer->running) { |
723 | if (timer->hw.flags & SNDRV_TIMER_HW_STOP) { | 723 | if (timer->hw.flags & SNDRV_TIMER_HW_STOP) { |
724 | timer->hw.stop(timer); | 724 | timer->hw.stop(timer); |