Loading sound/usb/pcm.c +20 −32 Original line number Diff line number Diff line Loading @@ -321,6 +321,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) Loading @@ -330,44 +331,23 @@ static int set_sync_ep_implicit_fb_quirk(struct snd_usb_substream *subs, case USB_ID(0x0763, 0x2030): /* M-Audio Fast Track C400 */ case USB_ID(0x0763, 0x2031): /* M-Audio Fast Track C600 */ 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 && Loading @@ -382,6 +362,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, Loading Loading
sound/usb/pcm.c +20 −32 Original line number Diff line number Diff line Loading @@ -321,6 +321,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) Loading @@ -330,44 +331,23 @@ static int set_sync_ep_implicit_fb_quirk(struct snd_usb_substream *subs, case USB_ID(0x0763, 0x2030): /* M-Audio Fast Track C400 */ case USB_ID(0x0763, 0x2031): /* M-Audio Fast Track C600 */ 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 && Loading @@ -382,6 +362,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, Loading