aboutsummaryrefslogtreecommitdiffstats
path: root/sound/usb
diff options
context:
space:
mode:
authorDavid Henningsson <david.henningsson@canonical.com>2013-01-04 17:02:18 +0100
committerBen Hutchings <ben@decadent.org.uk>2013-02-06 04:33:55 +0000
commit8f8ad61766f6e072a27ffffe58810bf6890074b0 (patch)
tree69785ad8e8358f93145ecdac3a8981f4b3f8b374 /sound/usb
parent8a6d0db2f6a06c5fdfb7a208002d0f9961d1ad41 (diff)
downloadkernel_samsung_smdk4412-8f8ad61766f6e072a27ffffe58810bf6890074b0.zip
kernel_samsung_smdk4412-8f8ad61766f6e072a27ffffe58810bf6890074b0.tar.gz
kernel_samsung_smdk4412-8f8ad61766f6e072a27ffffe58810bf6890074b0.tar.bz2
ALSA: usb - fix race in creation of M-Audio Fast track pro driver
commit b98ae2729dea161edc96c9d177459b6c28bcbba5 upstream. A patch in the 3.2 kernel caused regression with hotplugging the M-Audio Fast track pro, or sound after suspend. I don't have the device so I haven't done a full analysis, but it seems userspace (both udev and pulseaudio) got confused when a card was created, immediately destroyed, and then created again. However, at least one person in the bug report (martin djfun) reports that this patch resolves the issue for him. It also leaves a message in the log: "snd-usb-audio: probe of 1-1.1:1.1 failed with error -5" which is a bit misleading. It is better than non-working audio, but maybe there's a more elegant solution? BugLink: https://bugs.launchpad.net/bugs/1095315 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'sound/usb')
-rw-r--r--sound/usb/quirks.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index a3ddac0..1b275f0 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -383,11 +383,13 @@ static int snd_usb_fasttrackpro_boot_quirk(struct usb_device *dev)
* rules
*/
err = usb_driver_set_configuration(dev, 2);
- if (err < 0) {
+ if (err < 0)
snd_printdd("error usb_driver_set_configuration: %d\n",
err);
- return -ENODEV;
- }
+ /* Always return an error, so that we stop creating a device
+ that will just be destroyed and recreated with a new
+ configuration */
+ return -ENODEV;
} else
snd_printk(KERN_INFO "usb-audio: Fast Track Pro config OK\n");