On 19.03.2013 15:40, Torstein Hegge wrote:
> On Tue, Mar 19, 2013 at 10:10:47AM -0300, Rodolfo Thomazelli wrote:
>> [ 1144.857836] usb 2-1.2: new high-speed USB device number 4 using ehci_hcd
>> [ 1144.951520] usb 2-1.2: New USB device found, idVendor=1235,
>> idProduct=8002
>> [ 1144.951531] usb 2-1.2: New USB device strings: Mfr=1, Product=2,
>> SerialNumber=3
>> [ 1144.951538] usb 2-1.2: Product: Scarlett 8i6 USB
>> [ 1144.951543] usb 2-1.2: Manufacturer: Focusrite
>> [ 1144.951547] usb 2-1.2: SerialNumber: 00006B8B
>> [ 1144.956590] usbaudio: unit 51: unexpected type 0x09
>> [ 1144.956640] snd-usb-audio: probe of 2-1.2:1.0 failed with error -5*
> 
> Even if extension unit has changed bDescriptorSubtype between UAC1 and
> UAC2, it should be safe to handle them the same way, right, Daniel?
> 
> That is,
> 
> diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c
> index e90daf8..aac5f01 100644
> --- a/sound/usb/mixer.c
> +++ b/sound/usb/mixer.c
> @@ -725,7 +725,8 @@ static int check_input_term(struct mixer_build *state, 
> int id, struct usb_audio_
>               case UAC1_PROCESSING_UNIT:
>               case UAC1_EXTENSION_UNIT:
>               /* UAC2_PROCESSING_UNIT_V2 */
> -             /* UAC2_EFFECT_UNIT */ {
> +             /* UAC2_EFFECT_UNIT */
> +             case UAC2_EXTENSION_UNIT_V2: {
>                       struct uac_processing_unit_descriptor *d = p1;
>  
>                       if (state->mixer->protocol == UAC_VERSION_2 &&
> @@ -2051,6 +2052,8 @@ static int parse_audio_unit(struct mixer_build *state, 
> int unitid)
>                       return parse_audio_extension_unit(state, unitid, p1);
>               else /* UAC_VERSION_2 */
>                       return parse_audio_processing_unit(state, unitid, p1);
> +     case UAC2_EXTENSION_UNIT_V2:
> +             return parse_audio_extension_unit(state, unitid, p1);
>       default:
>               snd_printk(KERN_ERR "usbaudio: unit %u: unexpected type 
> 0x%02x\n", unitid, p1[2]);
>               return -EINVAL;

UAC2_EXTENSION_UNIT_V2 == 0x09 which is unallocated by UAC1. So yes,
this should be ok. But the problem is also that the mixer code bails
with a hard error if if finds such a unit, which it shouldn't.

Regardless, I think your patch can go in. Can you send it again to
alsa-devel with your S-o-b?

Meanwhile, I'm preparing some patches to make the mixer ignore such
interfaces.


Thanks,
Daniel


------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
_______________________________________________
Alsa-user mailing list
Alsa-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/alsa-user

Reply via email to