[alsa-devel] [PATCH] ALSA: snd-usb: fix clock source validity index

Takashi Iwai tiwai at suse.de
Wed Aug 1 10:26:04 CEST 2012


At Wed,  1 Aug 2012 10:16:53 +0200,
Daniel Mack wrote:
> 
> uac_clock_source_is_valid() uses the control selector value to access
> the bmControls bitmap of the clock source unit. This is wrong, as
> control selector values start from 1, while the bitmap uses all
> available bits.
> 
> In other words, "Clock Validity Control" is stored in D3..2, not D5..4
> of the clock selector unit's bmControls.
> 
> Signed-off-by: Daniel Mack <zonque at gmail.com>
> Reported-by: Andreas Koch <andreas at akdesigninc.com>
> Cc: stable at kernel.org

Applied now.  Thanks.


Takashi

> ---
>  sound/usb/clock.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/sound/usb/clock.c b/sound/usb/clock.c
> index 379baad..5e634a2 100644
> --- a/sound/usb/clock.c
> +++ b/sound/usb/clock.c
> @@ -111,7 +111,8 @@ static bool uac_clock_source_is_valid(struct snd_usb_audio *chip, int source_id)
>  		return 0;
>  
>  	/* If a clock source can't tell us whether it's valid, we assume it is */
> -	if (!uac2_control_is_readable(cs_desc->bmControls, UAC2_CS_CONTROL_CLOCK_VALID))
> +	if (!uac2_control_is_readable(cs_desc->bmControls,
> +				      UAC2_CS_CONTROL_CLOCK_VALID - 1))
>  		return 1;
>  
>  	err = snd_usb_ctl_msg(dev, usb_rcvctrlpipe(dev, 0), UAC2_CS_CUR,
> -- 
> 1.7.11.2
> 


More information about the Alsa-devel mailing list