diff options
Diffstat (limited to 'sound/core/hrtimer.c')
| -rw-r--r-- | sound/core/hrtimer.c | 10 | 
1 files changed, 5 insertions, 5 deletions
diff --git a/sound/core/hrtimer.c b/sound/core/hrtimer.c index 7730575bfad..886be7da989 100644 --- a/sound/core/hrtimer.c +++ b/sound/core/hrtimer.c @@ -45,12 +45,13 @@ static enum hrtimer_restart snd_hrtimer_callback(struct hrtimer *hrt)  {  	struct snd_hrtimer *stime = container_of(hrt, struct snd_hrtimer, hrt);  	struct snd_timer *t = stime->timer; +	unsigned long oruns;  	if (!atomic_read(&stime->running))  		return HRTIMER_NORESTART; -	hrtimer_forward_now(hrt, ns_to_ktime(t->sticks * resolution)); -	snd_timer_interrupt(stime->timer, t->sticks); +	oruns = hrtimer_forward_now(hrt, ns_to_ktime(t->sticks * resolution)); +	snd_timer_interrupt(stime->timer, t->sticks * oruns);  	if (!atomic_read(&stime->running))  		return HRTIMER_NORESTART; @@ -104,7 +105,7 @@ static int snd_hrtimer_stop(struct snd_timer *t)  }  static struct snd_timer_hardware hrtimer_hw = { -	.flags =	SNDRV_TIMER_HW_AUTO, +	.flags =	SNDRV_TIMER_HW_AUTO | SNDRV_TIMER_HW_TASKLET,  	.open =		snd_hrtimer_open,  	.close =	snd_hrtimer_close,  	.start =	snd_hrtimer_start, @@ -125,8 +126,7 @@ static int __init snd_hrtimer_init(void)  	hrtimer_get_res(CLOCK_MONOTONIC, &tp);  	if (tp.tv_sec > 0 || !tp.tv_nsec) { -		snd_printk(KERN_ERR -			   "snd-hrtimer: Invalid resolution %u.%09u", +		pr_err("snd-hrtimer: Invalid resolution %u.%09u",  			   (unsigned)tp.tv_sec, (unsigned)tp.tv_nsec);  		return -EINVAL;  	}  | 
