alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* snd-usb-audio probe problem (Teac UD-H01)
@ 2012-03-31 18:19 bEN
  2012-04-02  7:44 ` Pavel Hofman
  2012-04-02  8:12 ` Clemens Ladisch
  0 siblings, 2 replies; 7+ messages in thread
From: bEN @ 2012-03-31 18:19 UTC (permalink / raw)
  To: alsa-devel

[-- Attachment #1: Type: text/plain, Size: 1461 bytes --]

Hi all,

the new USB DAC from Teac seems detected as 'Human Interface Device'
instead of 'Audio'. Despite the fact it is based on a standard USB Audio
class v2 controller (Tenor 8802).

Below is dmesg and lsusb outputs.

Does it need to apply a patch in /sound/usb/quirks-table.h ?
If yes, someone could help me to write this patch, please?


Your help would be very much appreciated, Thanks in advance.

bEN


(from Ubuntu 11.04 with Linux 2.6.38-13-generic + Alsa driver 1.0.23)

$ cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.23.

$ dmesg
(...)
[34035.000078] usb 2-4: new high speed USB device using ehci_hcd and
address 3
[34035.151753] usb 2-4: config 1 has an invalid interface number: 3 but
max is 2
[34035.151763] usb 2-4: config 1 has an invalid interface number: 3 but
max is 2
[34035.151770] usb 2-4: config 1 has an invalid interface number: 3 but
max is 2
[34035.151777] usb 2-4: config 1 has no interface number 1
[34035.155108] input: TEAC TEAC USB AUDIO DEVICE as
/devices/pci0000:00/0000:00:1d.7/usb2/2-4/2-4:1.0/input/input13
[34035.155328] generic-usb 0003:0644:8038.0002: input,hidraw1: USB HID
v1.00 Device [TEAC TEAC USB AUDIO DEVICE] on usb-0000:00:1d.7-4/input0
[34035.202368] Audio class v2 interfaces need an interface association
[34035.202387] snd-usb-audio: probe of 2-4:1.2 failed with error -5
[34035.202426] usbcore: registered new interface driver snd-usb-audio

$ lsusb -v --> see attachment.

[-- Attachment #2: Teac_UD-H01.lsusb.txt --]
[-- Type: text/plain, Size: 9186 bytes --]

[~] # lsusb -v
(...)

Bus 002 Device 003: ID 0644:8038 TEAC Corp. 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 ?
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x0644 TEAC Corp.
  idProduct          0x8038 
  bcdDevice            0.03
  iManufacturer           1 
  iProduct                2 
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          220
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      26
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0020  1x 32 bytes
        bInterval               6
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         2
      bInterfaceCount         2
      bFunctionClass          1 Audio
      bFunctionSubClass       0 
      bFunctionProtocol      32 
      iFunction               4 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol     32 
      iInterface              4 
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               2.00
        wTotalLength        13834
        bInCollection           0
        junk at descriptor end: 00
      AudioControl Interface Descriptor:
        bLength                 8
        bDescriptorType        36
        bDescriptorSubtype     10 (unknown)
        Invalid desc subtype: 0c 07 07 00 00
      AudioControl Interface Descriptor:
        bLength                 8
        bDescriptorType        36
        bDescriptorSubtype     10 (unknown)
        Invalid desc subtype: 0d 07 07 00 00
      AudioControl Interface Descriptor:
        bLength                17
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             4
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bNrChannels            12
        wChannelConfig     0x0302
          Right Front (R)
          Surround (S)
          Side Left (SL)
        iChannelNames           0 
        iTerminal               0 
        junk at descriptor end: 00 00 00 00 00
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID             3
        wTerminalType      0x0605 SPDIF interface
        bAssocTerminal          0
        bSourceID               4
        iTerminal              12 
        junk at descriptor end: 00 00 00
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              0 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           4
        bDelay                  0 frames
        wFormatTag            257 undefined
        junk at descriptor end: 00 00 00 02 03 00 00 00 00
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
      Warning: Descriptor too short
        bFormatType             1 (FORMAT_TYPE_I)
      Warning: Descriptor too short
        bNrChannels             2
        bSubframeSize          16
        bBitResolution          0
        bSamFreqType            0 Continuous
        tLowerSamFreq          81
        tUpperSamFreq           0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0068  1x 104 bytes
        bInterval               1
        AudioControl Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bLockDelayUnits         0 Undefined
          wLockDelay            514 Undefined
        junk at descriptor end: 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes           17
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Feedback
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       2
      bNumEndpoints           2
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              0 
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           4
        bDelay                  0 frames
        wFormatTag            257 undefined
        junk at descriptor end: 00 00 00 02 03 00 00 00 00
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
      Warning: Descriptor too short
        bFormatType             1 (FORMAT_TYPE_I)
      Warning: Descriptor too short
        bNrChannels             3
        bSubframeSize          24
        bBitResolution          0
        bSamFreqType            0 Continuous
        tLowerSamFreq          81
        tUpperSamFreq           0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x009c  1x 156 bytes
        bInterval               1
        AudioControl Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bLockDelayUnits         0 Undefined
          wLockDelay            514 Undefined
        junk at descriptor end: 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes           17
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Feedback
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval               4
can't get device qualifier: Operation not permitted
can't get debug descriptor: Operation not permitted
cannot read device status, Operation not permitted (1)

(...)

[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: snd-usb-audio probe problem (Teac UD-H01)
  2012-03-31 18:19 snd-usb-audio probe problem (Teac UD-H01) bEN
@ 2012-04-02  7:44 ` Pavel Hofman
  2012-04-02  8:12 ` Clemens Ladisch
  1 sibling, 0 replies; 7+ messages in thread
From: Pavel Hofman @ 2012-04-02  7:44 UTC (permalink / raw)
  To: bEN; +Cc: alsa-devel

Dne 31.3.2012 20:19, bEN napsal(a):
> Hi all,
> 
> the new USB DAC from Teac seems detected as 'Human Interface Device'
> instead of 'Audio'. Despite the fact it is based on a standard USB Audio
> class v2 controller (Tenor 8802).
> 
> Below is dmesg and lsusb outputs.
> 

Hi, the lsusb shows both HID interface (button?) and audio interface
beneath.

Pavel.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: snd-usb-audio probe problem (Teac UD-H01)
  2012-03-31 18:19 snd-usb-audio probe problem (Teac UD-H01) bEN
  2012-04-02  7:44 ` Pavel Hofman
@ 2012-04-02  8:12 ` Clemens Ladisch
  2012-04-08 14:23   ` Daniel Mack
  1 sibling, 1 reply; 7+ messages in thread
From: Clemens Ladisch @ 2012-04-02  8:12 UTC (permalink / raw)
  To: bEN; +Cc: alsa-devel, zonque

bEN wrote:
> the new USB DAC from Teac seems detected as 'Human Interface Device'
> instead of 'Audio'.

It has both HID and audio interfaces.

> Despite the fact it is based on a standard USB Audio
> class v2 controller (Tenor 8802).

Which doesn't prevent Teac from writing buggy firmware.

> $ dmesg
> usb 2-4: new high speed USB device using ehci_hcd and address 3
> usb 2-4: config 1 has an invalid interface number: 3 but max is 2
> usb 2-4: config 1 has no interface number 1

This violates the USB spec.  But I guess it shouldn't prevent the driver
from attaching to the device.

> Audio class v2 interfaces need an interface association

This looks like a bug in the driver; there certainly is such
an descriptor.  Daniel?


Regards,
Clemens
-- 
Bus 002 Device 003: ID 0644:8038 TEAC Corp.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 ?
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x0644 TEAC Corp.
  idProduct          0x8038
  bcdDevice            0.03
  iManufacturer           1
  iProduct                2
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          220
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      26
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0020  1x 32 bytes
        bInterval               6
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         2
      bInterfaceCount         2
      bFunctionClass          1 Audio
      bFunctionSubClass       0
      bFunctionProtocol      32
      iFunction               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol     32
      iInterface              4
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               2.00
        wTotalLength        13834
        bInCollection           0
        junk at descriptor end: 00
      AudioControl Interface Descriptor:
        bLength                 8
        bDescriptorType        36
        bDescriptorSubtype     10 (unknown)
        Invalid desc subtype: 0c 07 07 00 00
      AudioControl Interface Descriptor:
        bLength                 8
        bDescriptorType        36
        bDescriptorSubtype     10 (unknown)
        Invalid desc subtype: 0d 07 07 00 00
      AudioControl Interface Descriptor:
        bLength                17
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             4
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bNrChannels            12
        wChannelConfig     0x0302
          Right Front (R)
          Surround (S)
          Side Left (SL)
        iChannelNames           0
        iTerminal               0
        junk at descriptor end: 00 00 00 00 00
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID             3
        wTerminalType      0x0605 SPDIF interface
        bAssocTerminal          0
        bSourceID               4
        iTerminal              12
        junk at descriptor end: 00 00 00
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32
      iInterface              0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32
      iInterface              0
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           4
        bDelay                  0 frames
        wFormatTag            257 undefined
        junk at descriptor end: 00 00 00 02 03 00 00 00 00
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
      Warning: Descriptor too short
        bFormatType             1 (FORMAT_TYPE_I)
      Warning: Descriptor too short
        bNrChannels             2
        bSubframeSize          16
        bBitResolution          0
        bSamFreqType            0 Continuous
        tLowerSamFreq          81
        tUpperSamFreq           0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x0068  1x 104 bytes
        bInterval               1
        AudioControl Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bLockDelayUnits         0 Undefined
          wLockDelay            514 Undefined
        junk at descriptor end: 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes           17
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Feedback
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       2
      bNumEndpoints           2
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32
      iInterface              0
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           4
        bDelay                  0 frames
        wFormatTag            257 undefined
        junk at descriptor end: 00 00 00 02 03 00 00 00 00
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
      Warning: Descriptor too short
        bFormatType             1 (FORMAT_TYPE_I)
      Warning: Descriptor too short
        bNrChannels             3
        bSubframeSize          24
        bBitResolution          0
        bSamFreqType            0 Continuous
        tLowerSamFreq          81
        tUpperSamFreq           0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x009c  1x 156 bytes
        bInterval               1
        AudioControl Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bLockDelayUnits         0 Undefined
          wLockDelay            514 Undefined
        junk at descriptor end: 00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes           17
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Feedback
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval               4
can't get device qualifier: Operation not permitted
can't get debug descriptor: Operation not permitted
cannot read device status, Operation not permitted (1)

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: snd-usb-audio probe problem (Teac UD-H01)
  2012-04-02  8:12 ` Clemens Ladisch
@ 2012-04-08 14:23   ` Daniel Mack
  2012-06-10 20:26     ` Daniel Mack
  0 siblings, 1 reply; 7+ messages in thread
From: Daniel Mack @ 2012-04-08 14:23 UTC (permalink / raw)
  To: Clemens Ladisch; +Cc: alsa-devel, bEN

On 02.04.2012 10:12, Clemens Ladisch wrote:
> bEN wrote:
>> the new USB DAC from Teac seems detected as 'Human Interface Device'
>> instead of 'Audio'.
> 
> It has both HID and audio interfaces.
> 
>> Despite the fact it is based on a standard USB Audio
>> class v2 controller (Tenor 8802).
> 
> Which doesn't prevent Teac from writing buggy firmware.
> 
>> $ dmesg
>> usb 2-4: new high speed USB device using ehci_hcd and address 3
>> usb 2-4: config 1 has an invalid interface number: 3 but max is 2
>> usb 2-4: config 1 has no interface number 1
> 
> This violates the USB spec.  But I guess it shouldn't prevent the driver
> from attaching to the device.

Right, that's just a warning.

>> Audio class v2 interfaces need an interface association
> 
> This looks like a bug in the driver; there certainly is such
> an descriptor.  Daniel?

The USB audio driver actually just uses functions from the USB driver
core to access the interface association. However, the USB core didn't
assign it during its probe, which is most probably a result of the
broken descriptor set.

I'm still reading through the sources, maybe we can find a more tolerant
way of handling such devices. If not, we would need to add a quirk for
the device and override the descriptors that way.


Daniel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: snd-usb-audio probe problem (Teac UD-H01)
  2012-04-08 14:23   ` Daniel Mack
@ 2012-06-10 20:26     ` Daniel Mack
  2012-10-12 21:33       ` Patrick P
  0 siblings, 1 reply; 7+ messages in thread
From: Daniel Mack @ 2012-06-10 20:26 UTC (permalink / raw)
  To: bEN; +Cc: alsa-devel, Clemens Ladisch

[-- Attachment #1: Type: text/plain, Size: 1318 bytes --]

On 08.04.2012 16:23, Daniel Mack wrote:
> On 02.04.2012 10:12, Clemens Ladisch wrote:
>> bEN wrote:
>>> the new USB DAC from Teac seems detected as 'Human Interface Device'
>>> instead of 'Audio'.
>>
>> It has both HID and audio interfaces.
>>
>>> Despite the fact it is based on a standard USB Audio
>>> class v2 controller (Tenor 8802).
>>
>> Which doesn't prevent Teac from writing buggy firmware.
>>
>>> $ dmesg
>>> usb 2-4: new high speed USB device using ehci_hcd and address 3
>>> usb 2-4: config 1 has an invalid interface number: 3 but max is 2
>>> usb 2-4: config 1 has no interface number 1
>>
>> This violates the USB spec.  But I guess it shouldn't prevent the driver
>> from attaching to the device.
> 
> Right, that's just a warning.
> 
>>> Audio class v2 interfaces need an interface association
>>
>> This looks like a bug in the driver; there certainly is such
>> an descriptor.  Daniel?
> 
> The USB audio driver actually just uses functions from the USB driver
> core to access the interface association. However, the USB core didn't
> assign it during its probe, which is most probably a result of the
> broken descriptor set.

And it turned out it is.

Ben, can you try the patch below, please? It's a pretty obvious flaw in
the USB core system which is triggered by buggy descriptors.


Daniel


[-- Attachment #2: intf-assoc-fix.patch --]
[-- Type: text/x-patch, Size: 707 bytes --]

diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
index b548cf1..8eb1a1e 100644
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
@@ -1838,7 +1838,6 @@ free_interfaces:
 		intfc = cp->intf_cache[i];
 		intf->altsetting = intfc->altsetting;
 		intf->num_altsetting = intfc->num_altsetting;
-		intf->intf_assoc = find_iad(dev, cp, i);
 		kref_get(&intfc->ref);
 
 		alt = usb_altnum_to_altsetting(intf, 0);
@@ -1851,6 +1850,9 @@ free_interfaces:
 		if (!alt)
 			alt = &intf->altsetting[0];
 
+		intf->intf_assoc =
+			find_iad(dev, cp, alt->desc.bInterfaceNumber);
+
 		intf->cur_altsetting = alt;
 		usb_enable_interface(dev, intf, true);
 		intf->dev.parent = &dev->dev;

[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: snd-usb-audio probe problem (Teac UD-H01)
  2012-06-10 20:26     ` Daniel Mack
@ 2012-10-12 21:33       ` Patrick P
  2012-10-13  8:07         ` Daniel Mack
  0 siblings, 1 reply; 7+ messages in thread
From: Patrick P @ 2012-10-12 21:33 UTC (permalink / raw)
  To: alsa-devel

Anyone try this yet?  I have a fiio E10 and a at&t galaxy S3 rooted and ready to 
go.  If someone builds me a flashable kernel I'll give it a go.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: snd-usb-audio probe problem (Teac UD-H01)
  2012-10-12 21:33       ` Patrick P
@ 2012-10-13  8:07         ` Daniel Mack
  0 siblings, 0 replies; 7+ messages in thread
From: Daniel Mack @ 2012-10-13  8:07 UTC (permalink / raw)
  To: Patrick P; +Cc: alsa-devel

On 12.10.2012 23:33, Patrick P wrote:
> Anyone try this yet?  I have a fiio E10 and a at&t galaxy S3 rooted and ready to 
> go.  If someone builds me a flashable kernel I'll give it a go.

Try what exactly? Is this message related to the thread you're replying to?

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2012-10-13  8:07 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-31 18:19 snd-usb-audio probe problem (Teac UD-H01) bEN
2012-04-02  7:44 ` Pavel Hofman
2012-04-02  8:12 ` Clemens Ladisch
2012-04-08 14:23   ` Daniel Mack
2012-06-10 20:26     ` Daniel Mack
2012-10-12 21:33       ` Patrick P
2012-10-13  8:07         ` Daniel Mack

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).