Skip to content

Commit

Permalink
ALSA: usb-audio: simplify set_sync_ep_implicit_fb_quirk
Browse files Browse the repository at this point in the history
commit 103e962 upstream

Signed-off-by: Alberto Aguirre <albaguirre@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Alberto Aguirre authored and Greg Kroah-Hartman committed Jan 9, 2021
1 parent 9695121 commit 832cf72
Showing 1 changed file with 20 additions and 32 deletions.
52 changes: 20 additions & 32 deletions sound/usb/pcm.c
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,7 @@ static int set_sync_ep_implicit_fb_quirk(struct snd_usb_substream *subs,
struct usb_host_interface *alts;
struct usb_interface *iface;
unsigned int ep;
unsigned int ifnum;

/* Implicit feedback sync EPs consumers are always playback EPs */
if (subs->direction != SNDRV_PCM_STREAM_PLAYBACK)
Expand All @@ -334,44 +335,23 @@ static int set_sync_ep_implicit_fb_quirk(struct snd_usb_substream *subs,
case USB_ID(0x0763, 0x2031): /* M-Audio Fast Track C600 */
case USB_ID(0x22f0, 0x0006): /* Allen&Heath Qu-16 */
ep = 0x81;
iface = usb_ifnum_to_if(dev, 3);

if (!iface || iface->num_altsetting == 0)
return -EINVAL;

alts = &iface->altsetting[1];
goto add_sync_ep;
break;
ifnum = 3;
goto add_sync_ep_from_ifnum;
case USB_ID(0x0763, 0x2080): /* M-Audio FastTrack Ultra */
case USB_ID(0x0763, 0x2081):
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):
ifnum = 2;
goto add_sync_ep_from_ifnum;
case USB_ID(0x2466, 0x8003): /* Fractal Audio Axe-Fx II */
ep = 0x86;
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(0x1397, 0x0002):
ifnum = 2;
goto add_sync_ep_from_ifnum;
case USB_ID(0x1397, 0x0002): /* Behringer UFX1204 */
ep = 0x81;
iface = usb_ifnum_to_if(dev, 1);

if (!iface || iface->num_altsetting == 0)
return -EINVAL;

alts = &iface->altsetting[1];
goto add_sync_ep;

ifnum = 1;
goto add_sync_ep_from_ifnum;
}

if (attr == USB_ENDPOINT_SYNC_ASYNC &&
altsd->bInterfaceClass == USB_CLASS_VENDOR_SPEC &&
altsd->bInterfaceProtocol == 2 &&
Expand All @@ -386,6 +366,14 @@ static int set_sync_ep_implicit_fb_quirk(struct snd_usb_substream *subs,
/* No quirk */
return 0;

add_sync_ep_from_ifnum:
iface = usb_ifnum_to_if(dev, ifnum);

if (!iface || iface->num_altsetting == 0)
return -EINVAL;

alts = &iface->altsetting[1];

add_sync_ep:
subs->sync_endpoint = snd_usb_add_endpoint(subs->stream->chip,
alts, ep, !subs->direction,
Expand Down

0 comments on commit 832cf72

Please sign in to comment.