At Thu, 4 Aug 2011 16:17:09 +0200, Daniel Mack wrote:
On Thu, Aug 4, 2011 at 4:17 PM, Clemens Ladisch clemens@ladisch.de wrote:
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;
Either that or apply the patch I've just sent out. Both is fine for me.
OK, I took the patch fixed by Clemens, since otherwise the patch isn't applicable by itself alone to stable tree. Other twos are applied now, too.
They'll be included in the next pull request to 3.1 (maybe after merge window).
thanks,
Takashi