[alsa-devel] [PATCH] ALSA: usb-audio: Assume first control interface is for audio

Takashi Iwai tiwai at suse.de
Thu Sep 2 11:59:18 CEST 2010


At Thu,  2 Sep 2010 17:13:15 +0800,
Daniel Mack wrote:
> 
> For devices with more than one control interface, let's assume the first
> one contains the audio controls. Unfortunately, there is no field in any
> of the descriptors to tell us whether a control interface is for audio
> or MIDI controls, so a better check is not easy to implement.
> 
> On a composite device with audio and MIDI functions, for example, the
> code currently overwrites chip->ctrl_intf, causing operations on the
> control interface to fail if they are issued after the device probe.
> 
> Signed-off-by: Daniel Mack <daniel at caiaq.de>

Applied now.  Thanks.


Takashi

> ---
>  sound/usb/card.c |    8 +++++++-
>  1 files changed, 7 insertions(+), 1 deletions(-)
> 
> diff --git a/sound/usb/card.c b/sound/usb/card.c
> index 9feb00c..b443a33 100644
> --- a/sound/usb/card.c
> +++ b/sound/usb/card.c
> @@ -465,7 +465,13 @@ static void *snd_usb_audio_probe(struct usb_device *dev,
>  			goto __error;
>  	}
>  
> -	chip->ctrl_intf = alts;
> +	/*
> +	 * For devices with more than one control interface, we assume the
> +	 * first contains the audio controls. We might need a more specific
> +	 * check here in the future.
> +	 */
> +	if (!chip->ctrl_intf)
> +		chip->ctrl_intf = alts;
>  
>  	if (err > 0) {
>  		/* create normal USB audio interfaces */
> -- 
> 1.7.0.4
> 


More information about the Alsa-devel mailing list