ALSA: asihpi: Convert timers to use timer_setup()
authorKees Cook <keescook@chromium.org>
Thu, 5 Oct 2017 00:53:40 +0000 (17:53 -0700)
committerTakashi Iwai <tiwai@suse.de>
Thu, 5 Oct 2017 06:20:54 +0000 (08:20 +0200)
In preparation for unconditionally passing the struct timer_list pointer to
all timer callbacks, switch to using the new timer_setup() and from_timer()
to pass the timer pointer explicitly.

Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/asihpi/asihpi.c

index 70d023a85bf5e7b4c2415f642766cedc16ef6d95..614322171c79373c8fb54a17e03159aa4c42a894 100644 (file)
@@ -749,9 +749,9 @@ static inline unsigned int modulo_min(unsigned int a, unsigned int b,
 
 /** Timer function, equivalent to interrupt service routine for cards
 */
-static void snd_card_asihpi_timer_function(unsigned long data)
+static void snd_card_asihpi_timer_function(struct timer_list *t)
 {
-       struct snd_card_asihpi_pcm *dpcm = (struct snd_card_asihpi_pcm *)data;
+       struct snd_card_asihpi_pcm *dpcm = from_timer(dpcm, t, timer);
        struct snd_pcm_substream *substream = dpcm->substream;
        struct snd_card_asihpi *card = snd_pcm_substream_chip(substream);
        struct snd_pcm_runtime *runtime;
@@ -948,7 +948,7 @@ static void snd_card_asihpi_int_task(unsigned long data)
        asihpi = (struct snd_card_asihpi *)a->snd_card->private_data;
        if (asihpi->llmode_streampriv)
                snd_card_asihpi_timer_function(
-                       (unsigned long)asihpi->llmode_streampriv);
+                       &asihpi->llmode_streampriv->timer);
 }
 
 static void snd_card_asihpi_isr(struct hpi_adapter *a)
@@ -1059,8 +1059,7 @@ static int snd_card_asihpi_playback_open(struct snd_pcm_substream *substream)
            If internal and other stream playing, can't switch
        */
 
-       setup_timer(&dpcm->timer, snd_card_asihpi_timer_function,
-                   (unsigned long) dpcm);
+       timer_setup(&dpcm->timer, snd_card_asihpi_timer_function, 0);
        dpcm->substream = substream;
        runtime->private_data = dpcm;
        runtime->private_free = snd_card_asihpi_runtime_free;
@@ -1240,8 +1239,7 @@ static int snd_card_asihpi_capture_open(struct snd_pcm_substream *substream)
        if (err)
                return -EIO;
 
-       setup_timer(&dpcm->timer, snd_card_asihpi_timer_function,
-                   (unsigned long) dpcm);
+       timer_setup(&dpcm->timer, snd_card_asihpi_timer_function, 0);
        dpcm->substream = substream;
        runtime->private_data = dpcm;
        runtime->private_free = snd_card_asihpi_runtime_free;