ALSA: usb-audio: FT C400 sync playback EP to capture EP
authorEldad Zack <eldad@fogrefinery.com>
Wed, 28 Nov 2012 22:55:41 +0000 (23:55 +0100)
committerTakashi Iwai <tiwai@suse.de>
Thu, 29 Nov 2012 07:45:18 +0000 (08:45 +0100)
The playback endpoint uses implicit feedback mode, similar
to the M-Audio FTU. Like with the FTU, we need to associate
the sync pipe ourselves.

Signed-off-by: Eldad Zack <eldad@fogrefinery.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/pcm.c

index f488a49..769821c 100644 (file)
@@ -362,6 +362,19 @@ static int set_format(struct snd_usb_substream *subs, struct audioformat *fmt)
        attr = fmt->ep_attr & USB_ENDPOINT_SYNCTYPE;
 
        switch (subs->stream->chip->usb_id) {
+       case USB_ID(0x0763, 0x2030): /* M-Audio Fast Track C400 */
+               if (is_playback) {
+                       implicit_fb = 1;
+                       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;
        case USB_ID(0x0763, 0x2080): /* M-Audio FastTrack Ultra */
        case USB_ID(0x0763, 0x2081):
                if (is_playback) {