Re: ALSA and SCARLETT FOCUSRITE 8i6

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/alsa-user


[Index of Archives]     [ALSA Devel]     [Linux Audio Users]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]

  Powered by Linux