diff options
author | Takashi Iwai <tiwai@suse.de> | 2015-01-20 08:40:20 (GMT) |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2015-01-28 06:19:47 (GMT) |
commit | 6dd1c05cd7c26a463bbcca1ab50b59b86d88de64 (patch) | |
tree | 29e2fe0f3fdc81594c981580b0d0798d2cf8ee72 /sound | |
parent | 8a3b7c086a509d90c312ebab6d8e5a9bf48c6cf5 (diff) | |
download | linux-6dd1c05cd7c26a463bbcca1ab50b59b86d88de64.tar.xz |
ALSA: line6/toneport: Move setup_timer() at the beginning
... 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>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/usb/line6/toneport.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sound/usb/line6/toneport.c b/sound/usb/line6/toneport.c index e5669bd..fb6d5e1 100644 --- a/sound/usb/line6/toneport.c +++ b/sound/usb/line6/toneport.c @@ -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); } |