From bfe7054d70d9cca28638a0e4a88d9e2557560052 Mon Sep 17 00:00:00 2001 From: Eldad Zack Date: Sun, 13 Jan 2013 23:02:03 +0100 Subject: [PATCH] --- yaml --- r: 348847 b: refs/heads/master c: 83e3acd494f47dc5dababfe6156c6178aca5c3a9 h: refs/heads/master i: 348845: e5b40c36167c93c73a7542bb2850a7fccbda8daa 348843: 5ebfc7feac47a9bba9f5192fa323d7b991e850dd 348839: 419bfd04b171a36d4eb622e02ef55afe0497ed90 348831: 2a9edd5a5718d36cd32e00eade6c2bd18a1dca30 v: v3 --- [refs] | 2 +- trunk/sound/usb/quirks.c | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 5d990a855a26..8a61d3b68893 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2aad272b3f458564f2d505465c88fcde37017ba0 +refs/heads/master: 83e3acd494f47dc5dababfe6156c6178aca5c3a9 diff --git a/trunk/sound/usb/quirks.c b/trunk/sound/usb/quirks.c index e71fc8bc3a70..2c971858d6b7 100644 --- a/trunk/sound/usb/quirks.c +++ b/trunk/sound/usb/quirks.c @@ -861,6 +861,17 @@ void snd_usb_endpoint_start_quirk(struct snd_usb_endpoint *ep) if ((le16_to_cpu(ep->chip->dev->descriptor.idVendor) == 0x23ba) && ep->type == SND_USB_ENDPOINT_TYPE_SYNC) ep->skip_packets = 4; + + /* + * M-Audio Fast Track C400 - when packets are not skipped, real world + * latency varies by approx. +/- 50 frames (at 96KHz) each time the + * stream is (re)started. When skipping packets 16 at endpoint start + * up, the real world latency is stable within +/- 1 frame (also + * across power cycles). + */ + if (ep->chip->usb_id == USB_ID(0x0763, 0x2030) && + ep->type == SND_USB_ENDPOINT_TYPE_DATA) + ep->skip_packets = 16; } void snd_usb_ctl_msg_quirk(struct usb_device *dev, unsigned int pipe,