ALSA: line6/toneport: Move setup_timer() at the beginning
authorTakashi Iwai <tiwai@suse.de>
Tue, 20 Jan 2015 08:40:20 +0000 (09:40 +0100)
committerTakashi Iwai <tiwai@suse.de>
Wed, 28 Jan 2015 06:19:47 +0000 (07:19 +0100)
... so that timer_del_sync() in the destructor can be called safely at
any time.  Also move the mod_timer() call in toneport_setup(), which
is a bit clearer place.

Tested-by: Chris Rorvick <chris@rorvick.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/line6/toneport.c

index e5669bd3233a1ac6ed2396511fdfbc7c1775bd74..fb6d5e1e2adea7ac6c6829ebc72d8e602ed63ed7 100644 (file)
@@ -360,6 +360,8 @@ static void toneport_setup(struct usb_line6_toneport *toneport)
 
        if (toneport_has_led(toneport->type))
                toneport_update_led(&usbdev->dev);
+
+       mod_timer(&toneport->timer, jiffies + TONEPORT_PCM_DELAY * HZ);
 }
 
 /*
@@ -390,6 +392,9 @@ static int toneport_init(struct usb_interface *interface,
        int err;
        struct usb_line6_toneport *toneport =  (struct usb_line6_toneport *) line6;
 
+       setup_timer(&toneport->timer, toneport_start_pcm,
+                   (unsigned long)toneport);
+
        line6->disconnect = line6_toneport_disconnect;
 
        /* initialize PCM subsystem: */
@@ -435,10 +440,6 @@ static int toneport_init(struct usb_interface *interface,
 
        toneport_setup(toneport);
 
-       setup_timer(&toneport->timer, toneport_start_pcm,
-                   (unsigned long)toneport);
-       mod_timer(&toneport->timer, jiffies + TONEPORT_PCM_DELAY * HZ);
-
        /* register audio system: */
        return snd_card_register(line6->card);
 }