]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/commitdiff
ALSA: usb-audio: DSD auto-detection for Playback Designs
authorJussi Laako <jussi@sonarnerd.net>
Tue, 27 Aug 2019 21:08:46 +0000 (00:08 +0300)
committerStefan Bader <stefan.bader@canonical.com>
Tue, 12 Nov 2019 17:47:22 +0000 (18:47 +0100)
BugLink: https://bugs.launchpad.net/bugs/1851550
[ Upstream commit eb7505d52a2f8b0cfc3fd7146d8cb2dab5a73f0d ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Connor Kuehl <connor.kuehl@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
sound/usb/quirks.c

index b6f7b13768a10f58b48b69136794ff714ff668d6..6f228b4ec8c3e69c3f1c69ea27ba958fc33f9f6b 100644 (file)
@@ -1563,7 +1563,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;
@@ -1651,8 +1652,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 */
        case 0x3842:  /* EVGA */