ALSA: usb-audio: M-Audio FT C400 skip packet quirk
Attain constant real-world latency by skipping 16 data packets. The number of packets to be skipped was found by trial and error. Signed-off-by: Eldad Zack <eldad@fogrefinery.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Родитель
2aad272b3f
Коммит
83e3acd494
|
@ -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,
|
||||
|
|
Загрузка…
Ссылка в новой задаче