diff options
author | Takashi Iwai <tiwai@suse.de> | 2017-10-17 10:50:59 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2017-10-17 10:52:06 +0200 |
commit | 0011a33f097dd97d09a1ebd32c5d8df0be7ac04a (patch) | |
tree | 706b30408893852c5d2f8ef3317ab17d407dcdea /sound/usb/line6 | |
parent | ALSA: 6fire: remove unused variable card (diff) | |
parent | ALSA: caiaq: Fix stray URB at probe error path (diff) | |
download | linux-0011a33f097dd97d09a1ebd32c5d8df0be7ac04a.tar.xz linux-0011a33f097dd97d09a1ebd32c5d8df0be7ac04a.zip |
Merge branch 'for-linus' into for-next
Back-merge for applying the timer API conversion patch for line6
driver that conflicts with the recent fix in upstream.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb/line6')
-rw-r--r-- | sound/usb/line6/driver.c | 7 | ||||
-rw-r--r-- | sound/usb/line6/podhd.c | 8 |
2 files changed, 9 insertions, 6 deletions
diff --git a/sound/usb/line6/driver.c b/sound/usb/line6/driver.c index 7c682b219584..8d5a454842f4 100644 --- a/sound/usb/line6/driver.c +++ b/sound/usb/line6/driver.c @@ -793,9 +793,10 @@ int line6_probe(struct usb_interface *interface, return 0; error: - if (line6->disconnect) - line6->disconnect(line6); - snd_card_free(card); + /* we can call disconnect callback here because no close-sync is + * needed yet at this point + */ + line6_disconnect(interface); return ret; } EXPORT_SYMBOL_GPL(line6_probe); diff --git a/sound/usb/line6/podhd.c b/sound/usb/line6/podhd.c index acb2170fdc12..46fa8c046cb5 100644 --- a/sound/usb/line6/podhd.c +++ b/sound/usb/line6/podhd.c @@ -302,7 +302,8 @@ static void podhd_disconnect(struct usb_line6 *line6) intf = usb_ifnum_to_if(line6->usbdev, pod->line6.properties->ctrl_if); - usb_driver_release_interface(&podhd_driver, intf); + if (intf) + usb_driver_release_interface(&podhd_driver, intf); } } @@ -318,6 +319,9 @@ static int podhd_init(struct usb_line6 *line6, line6->disconnect = podhd_disconnect; + init_timer(&pod->startup_timer); + INIT_WORK(&pod->startup_work, podhd_startup_workqueue); + if (pod->line6.properties->capabilities & LINE6_CAP_CONTROL) { /* claim the data interface */ intf = usb_ifnum_to_if(line6->usbdev, @@ -359,8 +363,6 @@ static int podhd_init(struct usb_line6 *line6, } /* init device and delay registering */ - init_timer(&pod->startup_timer); - INIT_WORK(&pod->startup_work, podhd_startup_workqueue); podhd_startup(pod); return 0; } |