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

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
...@@ -1166,10 +1166,11 @@ static bool is_marantz_denon_dac(unsigned int id) ...@@ -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 /* TEAC UD-501/UD-503/NT-503 USB DACs need a vendor cmd to switch
* between PCM/DOP and native DSD mode * 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) { switch (id) {
case USB_ID(0x0644, 0x8043): /* TEAC UD-501/UD-503/NT-503 */ case USB_ID(0x0644, 0x8043): /* TEAC UD-501/UD-503/NT-503 */
case USB_ID(0x0644, 0x8044): /* Esoteric D-05X */
return true; return true;
} }
return false; return false;
...@@ -1202,7 +1203,7 @@ int snd_usb_select_mode_quirk(struct snd_usb_substream *subs, ...@@ -1202,7 +1203,7 @@ int snd_usb_select_mode_quirk(struct snd_usb_substream *subs,
break; break;
} }
mdelay(20); 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. */ /* Vendor mode switch cmd is required. */
switch (fmt->altsetting) { switch (fmt->altsetting) {
case 3: /* DSD mode (DSD_U32) requested */ case 3: /* DSD mode (DSD_U32) requested */
...@@ -1392,7 +1393,7 @@ u64 snd_usb_interface_dsd_format_quirks(struct snd_usb_audio *chip, ...@@ -1392,7 +1393,7 @@ u64 snd_usb_interface_dsd_format_quirks(struct snd_usb_audio *chip,
} }
/* TEAC devices with USB DAC functionality */ /* 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) if (fp->altsetting == 3)
return SNDRV_PCM_FMTBIT_DSD_U32_BE; return SNDRV_PCM_FMTBIT_DSD_U32_BE;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment