[alsa-devel] [PATCH 1/3] ALSA: snd-usb: Accept UAC2 FORMAT_TYPE descriptors with bLength > 6

Clemens Ladisch clemens at ladisch.de
Thu Aug 4 16:17:42 CEST 2011


Takashi Iwai wrote:
> Daniel Mack wrote:
>> @@ -352,7 +352,7 @@ int snd_usb_parse_audio_endpoints(struct snd_usb_audio *chip, int iface_no)
>>  			continue;
>>  		}
>>  		if (((protocol == UAC_VERSION_1) && (fmt->bLength < 8)) ||
>> -		    ((protocol == UAC_VERSION_2) && (fmt->bLength != 6))) {
>> +		    ((protocol == UAC_VERSION_2) && (fmt->bLength < 6))) {
>>  			snd_printk(KERN_ERR "%d:%u:%d : invalid UAC_FORMAT_TYPE desc (protocol %d, bLength %d)\n",
>>  				   dev->devnum, iface_no, altno, protocol, fmt->bLength);
>>  			continue;
> 
> This patch isn't applicable to sound git tree.  Any missing patch?

Obviously some temporary debugging patch to log protocol/bLength.

--8<---------------------------------------------------------------->8--
ALSA: snd-usb: Accept UAC2 FORMAT_TYPE descriptors with bLength > 6

The Focusrite Scarlett 18i6 USB has them that way, which is probably a
bug. Anyway, the driver should simply ignore this fact.

Signed-off-by: Daniel Mack <zonque at gmail.com>
Reported-by: Nicolai Krakowiak <nicolai.krakowiak at gmail.com>
Cc: stable at kernel.org
Signed-off-by: Clemens Ladisch <clemens at ladisch.de>
---
 sound/usb/endpoint.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c
index 1eea7e3..1867bbd 100644
--- a/sound/usb/endpoint.c
+++ b/sound/usb/endpoint.c
@@ -352,7 +352,7 @@ int snd_usb_parse_audio_endpoints(struct snd_usb_audio *chip, int iface_no)
 			continue;
 		}
 		if (((protocol == UAC_VERSION_1) && (fmt->bLength < 8)) ||
-		    ((protocol == UAC_VERSION_2) && (fmt->bLength != 6))) {
+		    ((protocol == UAC_VERSION_2) && (fmt->bLength < 6))) {
 			snd_printk(KERN_ERR "%d:%u:%d : invalid UAC_FORMAT_TYPE desc\n",
 				   dev->devnum, iface_no, altno);
 			continue;


More information about the Alsa-devel mailing list