|
@@ -1058,11 +1058,21 @@ static int snd_timer_s_stop(struct snd_timer * timer)
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static int snd_timer_s_close(struct snd_timer *timer)
|
|
|
|
+{
|
|
|
|
+ struct snd_timer_system_private *priv;
|
|
|
|
+
|
|
|
|
+ priv = (struct snd_timer_system_private *)timer->private_data;
|
|
|
|
+ del_timer_sync(&priv->tlist);
|
|
|
|
+ return 0;
|
|
|
|
+}
|
|
|
|
+
|
|
static struct snd_timer_hardware snd_timer_system =
|
|
static struct snd_timer_hardware snd_timer_system =
|
|
{
|
|
{
|
|
.flags = SNDRV_TIMER_HW_FIRST | SNDRV_TIMER_HW_TASKLET,
|
|
.flags = SNDRV_TIMER_HW_FIRST | SNDRV_TIMER_HW_TASKLET,
|
|
.resolution = 1000000000L / HZ,
|
|
.resolution = 1000000000L / HZ,
|
|
.ticks = 10000000L,
|
|
.ticks = 10000000L,
|
|
|
|
+ .close = snd_timer_s_close,
|
|
.start = snd_timer_s_start,
|
|
.start = snd_timer_s_start,
|
|
.stop = snd_timer_s_stop
|
|
.stop = snd_timer_s_stop
|
|
};
|
|
};
|