Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 866f7ed7 authored by Jussi Laako's avatar Jussi Laako Committed by Takashi Iwai
Browse files

ALSA: usb-audio: Add native DSD support for Esoteric D-05X



Adds VID:PID of Esoteric D-05X to the TEAC device id's.
Renames the is_teac_50X_dac() function to is_teac_dsd_dac() to cover
broader device family from the same corporation sharing the same USB
audio implementation.

Signed-off-by: default avatarJussi Laako <jussi@sonarnerd.net>
Cc: <stable@vger.kernel.org>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 362bca57
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -1166,10 +1166,11 @@ static bool is_marantz_denon_dac(unsigned int id)
/* TEAC UD-501/UD-503/NT-503 USB DACs need a vendor cmd to switch
 * between PCM/DOP and native DSD mode
 */
static bool is_teac_50X_dac(unsigned int id)
static bool is_teac_dsd_dac(unsigned int id)
{
	switch (id) {
	case USB_ID(0x0644, 0x8043): /* TEAC UD-501/UD-503/NT-503 */
	case USB_ID(0x0644, 0x8044): /* Esoteric D-05X */
		return true;
	}
	return false;
@@ -1202,7 +1203,7 @@ int snd_usb_select_mode_quirk(struct snd_usb_substream *subs,
			break;
		}
		mdelay(20);
	} else if (is_teac_50X_dac(subs->stream->chip->usb_id)) {
	} else if (is_teac_dsd_dac(subs->stream->chip->usb_id)) {
		/* Vendor mode switch cmd is required. */
		switch (fmt->altsetting) {
		case 3: /* DSD mode (DSD_U32) requested */
@@ -1392,7 +1393,7 @@ u64 snd_usb_interface_dsd_format_quirks(struct snd_usb_audio *chip,
	}

	/* TEAC devices with USB DAC functionality */
	if (is_teac_50X_dac(chip->usb_id)) {
	if (is_teac_dsd_dac(chip->usb_id)) {
		if (fp->altsetting == 3)
			return SNDRV_PCM_FMTBIT_DSD_U32_BE;
	}