From: Thomas Pfaff Date: Thu, 22 Sep 2011 16:26:06 +0000 (+0200) Subject: ALSA: usb-audio - clear chip->probing on error exit X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=362e4e49abe53e89d87455dfcd7c1bbaf08a839d;p=GitHub%2FLineageOS%2FG12%2Fandroid_kernel_amlogic_linux-4.9.git 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 Cc: [2.6.39+] Signed-off-by: Takashi Iwai --- 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, __error: if (chip && !chip->num_interfaces) snd_card_free(chip->card); + chip->probing = 0; mutex_unlock(®ister_mutex); __err_val: return NULL;