diff options
Diffstat (limited to 'sound/usb/clock.c')
| -rw-r--r-- | sound/usb/clock.c | 8 | 
1 files changed, 6 insertions, 2 deletions
diff --git a/sound/usb/clock.c b/sound/usb/clock.c index 81d5ce07d548..4dfe76416794 100644 --- a/sound/usb/clock.c +++ b/sound/usb/clock.c @@ -271,7 +271,7 @@ static int __uac_clock_find_source(struct snd_usb_audio *chip,  		return -EINVAL;  	} -	/* first, see if the ID we're looking for is a clock source already */ +	/* first, see if the ID we're looking at is a clock source already */  	source = snd_usb_find_clock_source(chip, entity_id, proto);  	if (source) {  		entity_id = GET_VAL(source, proto, bClockID); @@ -297,7 +297,7 @@ static int __uac_clock_find_source(struct snd_usb_audio *chip,  			goto find_source;  		} -		/* the entity ID we are looking for is a selector. +		/* the entity ID we are looking at is a selector.  		 * find out what it currently selects */  		ret = uac_clock_selector_get_val(chip, clock_id);  		if (ret < 0) { @@ -496,6 +496,10 @@ int snd_usb_set_sample_rate_v2v3(struct snd_usb_audio *chip,  	union uac23_clock_source_desc *cs_desc;  	cs_desc = snd_usb_find_clock_source(chip, clock, fmt->protocol); + +	if (!cs_desc) +		return 0; +  	if (fmt->protocol == UAC_VERSION_3)  		bmControls = le32_to_cpu(cs_desc->v3.bmControls);  	else  |