summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Tsoy <alexander@tsoy.me>2020-04-21 22:09:08 +0300
committerTakashi Iwai <tiwai@suse.de>2020-04-21 22:30:28 +0300
commitcf9fb7b8737694818e783fc61e8fe220b7eaaf60 (patch)
tree4526ab3f05ab536e6fcbbb3ebc95b84cdcad254f
parent7686e3485253635c529cdd5f416fc640abaf076f (diff)
downloadlinux-cf9fb7b8737694818e783fc61e8fe220b7eaaf60.tar.xz
ALSA: usb-audio: Apply async workaround for Scarlett 2i4 2nd gen
Due to rounding error driver sometimes incorrectly calculate next packet size, which results in audible clicks on devices with synchronous playback endpoints. For example on a high speed bus and a sample rate 44.1 kHz it loses one sample every ~40.9 seconds. Fortunately playback interface on Scarlett 2i4 2nd gen has a working explicit feedback endpoint, so we can switch playback data endpoint to asynchronous mode as a workaround. Signed-off-by: Alexander Tsoy <alexander@tsoy.me> Link: https://lore.kernel.org/r/20200421190908.462860-1-alexander@tsoy.me Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/usb/quirks.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index 6c2dfd3bfcbf..351ba214a9d3 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -1806,6 +1806,7 @@ void snd_usb_audioformat_attributes_quirk(struct snd_usb_audio *chip,
*/
fp->attributes &= ~UAC_EP_CS_ATTR_FILL_MAX;
break;
+ case USB_ID(0x1235, 0x8200): /* Focusrite Scarlett 2i4 2nd gen */
case USB_ID(0x1235, 0x8202): /* Focusrite Scarlett 2i2 2nd gen */
case USB_ID(0x1235, 0x8205): /* Focusrite Scarlett Solo 2nd gen */
/*