diff options
author | Thomas Pfaff <tpfaff@gmx.net> | 2011-09-22 12:26:06 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2011-09-23 09:26:06 -0400 |
commit | 362e4e49abe53e89d87455dfcd7c1bbaf08a839d (patch) | |
tree | 340e748bc17d9ac6db01d178d89524085803dce1 /sound | |
parent | c37279b92aba2893578f61076cd2eef5c5fa0e99 (diff) |
ALSA: usb-audio - clear chip->probing on error exit
The Terratec Aureon 5.1 USB sound card support is broken since kernel
2.6.39.
2.6.39 introduced power management support for USB sound cards that added
a probing flag in struct snd_usb_audio.
During the probe of the card it gives following error message :
usb 7-2: new full speed USB device number 2 using uhci_hcd
cannot find UAC_HEADER
snd-usb-audio: probe of 7-2:1.3 failed with error -5
input: USB Audio as
/devices/pci0000:00/0000:00:1d.1/usb7/7-2/7-2:1.3/input/input6
generic-usb 0003:0CCD:0028.0001: input: USB HID v1.00 Device [USB Audio]
on usb-0000:00:1d.1-2/input3
I can not comment about that "cannot find UAC_HEADER" error, but until
2.6.38 the card worked anyway.
With 2.6.39 chip->probing remains 1 on error exit, and any later ioctl
stops in snd_usb_autoresume with -ENODEV.
Signed-off-by: Thomas Pfaff <tpfaff@gmx.net>
Cc: <stable@kernel.org> [2.6.39+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/usb/card.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sound/usb/card.c b/sound/usb/card.c index 781d9e61adfb..ed120ca2353d 100644 --- a/sound/usb/card.c +++ b/sound/usb/card.c | |||
@@ -532,6 +532,7 @@ snd_usb_audio_probe(struct usb_device *dev, | |||
532 | __error: | 532 | __error: |
533 | if (chip && !chip->num_interfaces) | 533 | if (chip && !chip->num_interfaces) |
534 | snd_card_free(chip->card); | 534 | snd_card_free(chip->card); |
535 | chip->probing = 0; | ||
535 | mutex_unlock(®ister_mutex); | 536 | mutex_unlock(®ister_mutex); |
536 | __err_val: | 537 | __err_val: |
537 | return NULL; | 538 | return NULL; |