aboutsummaryrefslogtreecommitdiffstats
path: root/sound/usb
diff options
context:
space:
mode:
authorJussi Laako <jussi@sonarnerd.net>2019-08-28 00:08:46 +0300
committerTakashi Iwai <tiwai@suse.de>2019-08-28 08:03:00 +0200
commiteb7505d52a2f8b0cfc3fd7146d8cb2dab5a73f0d (patch)
tree7c963963420276a9b9e094194d2e7900efa3ca46 /sound/usb
parentALSA: hda - Allow runtime PM for controller if component notifier is used (diff)
downloadlinux-dev-eb7505d52a2f8b0cfc3fd7146d8cb2dab5a73f0d.tar.xz
linux-dev-eb7505d52a2f8b0cfc3fd7146d8cb2dab5a73f0d.zip
ALSA: usb-audio: DSD auto-detection for Playback Designs
Add DSD support auto-detection for newer Playback Designs devices. Older device generations have a different USB interface implementation. Keep the auto-detection VID whitelist sorted. Signed-off-by: Jussi Laako <jussi@sonarnerd.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb')
-rw-r--r--sound/usb/quirks.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index 5c0fa5cf1987..08ec3dac5dfe 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -1566,7 +1566,8 @@ u64 snd_usb_interface_dsd_format_quirks(struct snd_usb_audio *chip,
struct usb_interface *iface;
/* Playback Designs */
- if (USB_ID_VENDOR(chip->usb_id) == 0x23ba) {
+ if (USB_ID_VENDOR(chip->usb_id) == 0x23ba &&
+ USB_ID_PRODUCT(chip->usb_id) < 0x0110) {
switch (fp->altsetting) {
case 1:
fp->dsd_dop = true;
@@ -1654,8 +1655,9 @@ u64 snd_usb_interface_dsd_format_quirks(struct snd_usb_audio *chip,
* from XMOS/Thesycon
*/
switch (USB_ID_VENDOR(chip->usb_id)) {
- case 0x20b1: /* XMOS based devices */
case 0x152a: /* Thesycon devices */
+ case 0x20b1: /* XMOS based devices */
+ case 0x23ba: /* Playback Designs */
case 0x25ce: /* Mytek devices */
case 0x2ab6: /* T+A devices */
if (fp->dsd_raw)