|
@@ -57,7 +57,7 @@ static int snd_hrtimer_open(struct snd_timer *t)
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
hrtimer_init(&stime->hrt, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
|
|
hrtimer_init(&stime->hrt, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
|
|
stime->timer = t;
|
|
stime->timer = t;
|
|
- stime->hrt.cb_mode = HRTIMER_CB_SOFTIRQ;
|
|
|
|
|
|
+ stime->hrt.cb_mode = HRTIMER_CB_IRQSAFE_UNLOCKED;
|
|
stime->hrt.function = snd_hrtimer_callback;
|
|
stime->hrt.function = snd_hrtimer_callback;
|
|
t->private_data = stime;
|
|
t->private_data = stime;
|
|
return 0;
|
|
return 0;
|
|
@@ -93,9 +93,7 @@ static int snd_hrtimer_stop(struct snd_timer *t)
|
|
}
|
|
}
|
|
|
|
|
|
static struct snd_timer_hardware hrtimer_hw = {
|
|
static struct snd_timer_hardware hrtimer_hw = {
|
|
- .flags = (SNDRV_TIMER_HW_AUTO |
|
|
|
|
- /*SNDRV_TIMER_HW_FIRST |*/
|
|
|
|
- SNDRV_TIMER_HW_TASKLET),
|
|
|
|
|
|
+ .flags = SNDRV_TIMER_HW_AUTO,
|
|
.open = snd_hrtimer_open,
|
|
.open = snd_hrtimer_open,
|
|
.close = snd_hrtimer_close,
|
|
.close = snd_hrtimer_close,
|
|
.start = snd_hrtimer_start,
|
|
.start = snd_hrtimer_start,
|