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@gmail.com Reported-by: Nicolai Krakowiak nicolai.krakowiak@gmail.com Cc: stable@kernel.org Signed-off-by: Clemens Ladisch clemens@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;