Oliver Neukum 079b34
From 93f9d1a4ac5930654c17412e3911b46ece73755a Mon Sep 17 00:00:00 2001
Oliver Neukum 079b34
From: Arvind Sankar <nivedita@alum.mit.edu>
Oliver Neukum 079b34
Date: Tue, 11 Feb 2020 11:22:35 -0500
Oliver Neukum 079b34
Subject: [PATCH] ALSA: usb-audio: Apply sample rate quirk for Audioengine D1
Oliver Neukum 079b34
Git-commit: 93f9d1a4ac5930654c17412e3911b46ece73755a
Oliver Neukum 079b34
References: git-fixes
Oliver Neukum 079b34
Patch-mainline: v5.6-rc2
Oliver Neukum 079b34
Oliver Neukum 079b34
The Audioengine D1 (0x2912:0x30c8) does support reading the sample rate,
Oliver Neukum 079b34
but it returns the rate in byte-reversed order.
Oliver Neukum 079b34
Oliver Neukum 079b34
When setting sampling rate, the driver produces these warning messages:
Oliver Neukum 079b34
[168840.944226] usb 3-2.2: current rate 4500480 is different from the runtime rate 44100
Oliver Neukum 079b34
[168854.930414] usb 3-2.2: current rate 8436480 is different from the runtime rate 48000
Oliver Neukum 079b34
[168905.185825] usb 3-2.1.2: current rate 30465 is different from the runtime rate 96000
Oliver Neukum 079b34
Oliver Neukum 079b34
As can be seen from the hexadecimal conversion, the current rate read
Oliver Neukum 079b34
back is byte-reversed from the rate that was set.
Oliver Neukum 079b34
Oliver Neukum 079b34
44100 == 0x00ac44, 4500480 == 0x44ac00
Oliver Neukum 079b34
48000 == 0x00bb80, 8436480 == 0x80bb00
Oliver Neukum 079b34
96000 == 0x017700,   30465 == 0x007701
Oliver Neukum 079b34
Oliver Neukum 079b34
Rather than implementing a new quirk to reverse the order, just skip
Oliver Neukum 079b34
checking the rate to avoid spamming the log.
Oliver Neukum 079b34
Oliver Neukum 079b34
Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu>
Oliver Neukum 079b34
Cc: <stable@vger.kernel.org>
Oliver Neukum 079b34
Link: https://lore.kernel.org/r/20200211162235.1639889-1-nivedita@alum.mit.edu
Oliver Neukum 079b34
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Oliver Neukum 079b34
Signed-off-by: Oliver Neukum <oneukum@suse.com>
Oliver Neukum 079b34
---
Oliver Neukum 079b34
 sound/usb/quirks.c |    1 +
Oliver Neukum 079b34
 1 file changed, 1 insertion(+)
Oliver Neukum 079b34
Oliver Neukum 079b34
--- a/sound/usb/quirks.c
Oliver Neukum 079b34
+++ b/sound/usb/quirks.c
Oliver Neukum 079b34
@@ -1281,6 +1281,7 @@ bool snd_usb_get_sample_rate_quirk(struc
Oliver Neukum 079b34
 	case USB_ID(0x1395, 0x740a): /* Sennheiser DECT */
Oliver Neukum 079b34
 	case USB_ID(0x1901, 0x0191): /* GE B850V3 CP2114 audio interface */
Oliver Neukum 079b34
 	case USB_ID(0x21B4, 0x0081): /* AudioQuest DragonFly */
Oliver Neukum 079b34
+	case USB_ID(0x2912, 0x30c8): /* Audioengine D1 */
Oliver Neukum 079b34
 		return true;
Oliver Neukum 079b34
 	}
Oliver Neukum 079b34