diff options
author | Eldad Zack <eldad@fogrefinery.com> | 2012-11-28 17:55:41 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2012-11-29 02:45:18 -0500 |
commit | ca10a7ebdff1c862ca1ef1d7bd2c6810e3c87e17 (patch) | |
tree | d06e8e7b7d93e0af9253b23c0bc450acce146552 /sound/usb/pcm.c | |
parent | 09d8e3a71d2bdde11b258a62043cb784891e6ad3 (diff) |
ALSA: usb-audio: FT C400 sync playback EP to capture EP
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>
Diffstat (limited to 'sound/usb/pcm.c')
-rw-r--r-- | sound/usb/pcm.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c index f488a493a98e..769821c30031 100644 --- a/sound/usb/pcm.c +++ b/sound/usb/pcm.c | |||
@@ -362,6 +362,19 @@ static int set_format(struct snd_usb_substream *subs, struct audioformat *fmt) | |||
362 | attr = fmt->ep_attr & USB_ENDPOINT_SYNCTYPE; | 362 | attr = fmt->ep_attr & USB_ENDPOINT_SYNCTYPE; |
363 | 363 | ||
364 | switch (subs->stream->chip->usb_id) { | 364 | switch (subs->stream->chip->usb_id) { |
365 | case USB_ID(0x0763, 0x2030): /* M-Audio Fast Track C400 */ | ||
366 | if (is_playback) { | ||
367 | implicit_fb = 1; | ||
368 | ep = 0x81; | ||
369 | iface = usb_ifnum_to_if(dev, 3); | ||
370 | |||
371 | if (!iface || iface->num_altsetting == 0) | ||
372 | return -EINVAL; | ||
373 | |||
374 | alts = &iface->altsetting[1]; | ||
375 | goto add_sync_ep; | ||
376 | } | ||
377 | break; | ||
365 | case USB_ID(0x0763, 0x2080): /* M-Audio FastTrack Ultra */ | 378 | case USB_ID(0x0763, 0x2080): /* M-Audio FastTrack Ultra */ |
366 | case USB_ID(0x0763, 0x2081): | 379 | case USB_ID(0x0763, 0x2081): |
367 | if (is_playback) { | 380 | if (is_playback) { |