summary refs log tree commit diff
path: root/sound/usb/quirks.c
diff options
context:
space:
mode:
authorJussi Laako <jussi@sonarnerd.net>2016-12-17 23:51:41 +0200
committerTakashi Iwai <tiwai@suse.de>2016-12-28 16:07:11 +0100
commit3eff682d765b496ce2f9727bb1e001ec77b21453 (patch)
tree6f85df3fde6f44a2c08a79e9651bc888696f8b6d /sound/usb/quirks.c
parentf93a1c9e5e6a8ce05391708157af5bfd71fe6c21 (diff)
downloadlinux-3eff682d765b496ce2f9727bb1e001ec77b21453.tar.gz
ALSA: usb-audio: Support both DSD LE/BE Amanero firmware versions
Add DSD support for both little endian (DSD_U32_LE) and big endian
(DSD_U32_BE) version of the Amanero firmware.

Signed-off-by: Jussi Laako <jussi@sonarnerd.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb/quirks.c')
-rw-r--r--sound/usb/quirks.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index b3fd2382fdd9..f5c68ea0468e 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -1359,6 +1359,21 @@ u64 snd_usb_interface_dsd_format_quirks(struct snd_usb_audio *chip,
 		if (fp->altsetting == 3)
 			return SNDRV_PCM_FMTBIT_DSD_U32_BE;
 		break;
+
+	/* Amanero Combo384 USB interface with native DSD support */
+	case USB_ID(0x16d0, 0x071a):
+		if (fp->altsetting == 2) {
+			switch (chip->dev->descriptor.bcdDevice) {
+			case 0x199:
+				return SNDRV_PCM_FMTBIT_DSD_U32_LE;
+			case 0x19b:
+				return SNDRV_PCM_FMTBIT_DSD_U32_BE;
+			default:
+				break;
+			}
+		}
+		break;
+
 	default:
 		break;
 	}