From be20dfeb1c206aa86f02fd6d0841209e64a7bafe Mon Sep 17 00:00:00 2001 From: Alberto Aguirre Date: Thu, 8 Dec 2016 00:36:48 -0600 Subject: [PATCH] ALSA: usb-audio: add implicit fb quirk for Axe-Fx II commit 17f08b0d9aafccdb10038ab6dbd9ddb6433c13e2 upstream. The Axe-Fx II implicit feedback end point and the data sync endpoint are in different interface descriptors. Add quirk to ensure a sync endpoint is properly configured. Signed-off-by: Alberto Aguirre Signed-off-by: Takashi Iwai [bwh: Backported to 3.16: adjust context] Signed-off-by: Ben Hutchings --- sound/usb/pcm.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c index 63d5303cc8685..ba920e85ccfd5 100644 --- a/sound/usb/pcm.c +++ b/sound/usb/pcm.c @@ -346,6 +346,15 @@ static int set_sync_ep_implicit_fb_quirk(struct snd_usb_substream *subs, ep = 0x81; iface = usb_ifnum_to_if(dev, 2); + if (!iface || iface->num_altsetting == 0) + return -EINVAL; + + alts = &iface->altsetting[1]; + goto add_sync_ep; + case USB_ID(0x2466, 0x8003): + ep = 0x86; + iface = usb_ifnum_to_if(dev, 2); + if (!iface || iface->num_altsetting == 0) return -EINVAL; @@ -360,6 +369,7 @@ static int set_sync_ep_implicit_fb_quirk(struct snd_usb_substream *subs, alts = &iface->altsetting[1]; goto add_sync_ep; + } if (attr == USB_ENDPOINT_SYNC_ASYNC && altsd->bInterfaceClass == USB_CLASS_VENDOR_SPEC && -- 2.47.2