diff mbox series

ALSA: usb-audio: Add SMSL D1 to quirks for native DSD support

Message ID CAKb=P8ugru=qaO6S29xBjdi0kXkrFmbDxVYk07cUnL=t35GG4g@mail.gmail.com (mailing list archive)
State New, archived
Headers show
Series ALSA: usb-audio: Add SMSL D1 to quirks for native DSD support | expand

Commit Message

Tony Das Nov. 28, 2018, 8:16 p.m. UTC
This patch adds quirk VID/PID IDs for the SMSL D1 in order to enable
Native DSD support.

Signed-off-by: Tony Das <tdas444@gmail.com>
---
Author: Tony Das <tdas444@gmail.com>
Date: Tue Nov 27 22:13:30 2018 +0000

       break;

Comments

Takashi Iwai Nov. 29, 2018, 8:36 a.m. UTC | #1
On Wed, 28 Nov 2018 21:16:37 +0100,
Tony Das wrote:
> 
> This patch adds quirk VID/PID IDs for the SMSL D1 in order to enable
> Native DSD support.
> 
> Signed-off-by: Tony Das <tdas444@gmail.com>

Applied now manually now, as the patch isn't cleanly applicable.
At best, please try to submit with git-send-email.

BTW, the entries there are sorted in the num ID order, so I moved the
new one to the right place, too.


thanks,

Takashi


> ---
> Author: Tony Das <tdas444@gmail.com>
> Date: Tue Nov 27 22:13:30 2018 +0000
> 
> diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
> index 3d0f09108c98..aeac6bb7e111 100644
> --- a/sound/usb/quirks.c
> +++ b/sound/usb/quirks.c
> @@ -1515,6 +1515,7 @@ u64 snd_usb_interface_dsd_format_quirks(struct
> snd_usb_audio *chip,
>    case USB_ID(0x27f7, 0x3002): /* W4S DAC-2v2SE */
>    case USB_ID(0x29a2, 0x0086): /* Mutec MC3+ USB */
>    case USB_ID(0x6b42, 0x0042): /* MSB Technology */
> +   case USB_ID(0x152a, 0x85de): /* SMSL D1 DAC */
>        if (fp->altsetting == 3)
>            return SNDRV_PCM_FMTBIT_DSD_U32_BE;
>        break;
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
Jussi Laako Jan. 21, 2019, 4:33 p.m. UTC | #2
On 28.11.2018 22.16, Tony Das wrote:
> This patch adds quirk VID/PID IDs for the SMSL D1 in order to enable
> Native DSD support.
> 
> Signed-off-by: Tony Das <tdas444@gmail.com>
> ---
> Author: Tony Das <tdas444@gmail.com>
> Date: Tue Nov 27 22:13:30 2018 +0000
> 
> diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
> index 3d0f09108c98..aeac6bb7e111 100644
> --- a/sound/usb/quirks.c
> +++ b/sound/usb/quirks.c
> @@ -1515,6 +1515,7 @@ u64 snd_usb_interface_dsd_format_quirks(struct
> snd_usb_audio *chip,
>     case USB_ID(0x27f7, 0x3002): /* W4S DAC-2v2SE */
>     case USB_ID(0x29a2, 0x0086): /* Mutec MC3+ USB */
>     case USB_ID(0x6b42, 0x0042): /* MSB Technology */
> +   case USB_ID(0x152a, 0x85de): /* SMSL D1 DAC */
>         if (fp->altsetting == 3)
>             return SNDRV_PCM_FMTBIT_DSD_U32_BE;
>         break;

These kind of device specific white-listing patches are unnecessary 
these days for VID 0x152a (Thesycon), 0x20b1 (XMOS) and 0x25ce (Mytek) 
because they are covered by the auto-detection code (below this 
whitelisting table). In fact, for some products they cause problems due 
to firmware changes that cause the DSD altsetting to change. Also there 
are vendors who use same VID:PID pair for multiple products with 
different firmware variants and different altsettings which in turn 
causes problems with these static altsetting listings.

So I would strongly advise to use the autodetection whenever possible. 
In my own kernel builds I've removed all those mentioned VIDs from the 
PID specific table, but for the already included patches I took more 
conservative approach and removed only the ones I could 100% test myself.

Sorry for the delay, I didn't notice this posting until now...


Best regards,

	 - Jussi
Takashi Iwai Jan. 21, 2019, 9:34 p.m. UTC | #3
On Mon, 21 Jan 2019 17:33:22 +0100,
Jussi Laako wrote:
> 
> On 28.11.2018 22.16, Tony Das wrote:
> > This patch adds quirk VID/PID IDs for the SMSL D1 in order to enable
> > Native DSD support.
> >
> > Signed-off-by: Tony Das <tdas444@gmail.com>
> > ---
> > Author: Tony Das <tdas444@gmail.com>
> > Date: Tue Nov 27 22:13:30 2018 +0000
> >
> > diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
> > index 3d0f09108c98..aeac6bb7e111 100644
> > --- a/sound/usb/quirks.c
> > +++ b/sound/usb/quirks.c
> > @@ -1515,6 +1515,7 @@ u64 snd_usb_interface_dsd_format_quirks(struct
> > snd_usb_audio *chip,
> >     case USB_ID(0x27f7, 0x3002): /* W4S DAC-2v2SE */
> >     case USB_ID(0x29a2, 0x0086): /* Mutec MC3+ USB */
> >     case USB_ID(0x6b42, 0x0042): /* MSB Technology */
> > +   case USB_ID(0x152a, 0x85de): /* SMSL D1 DAC */
> >         if (fp->altsetting == 3)
> >             return SNDRV_PCM_FMTBIT_DSD_U32_BE;
> >         break;
> 
> These kind of device specific white-listing patches are unnecessary
> these days for VID 0x152a (Thesycon), 0x20b1 (XMOS) and 0x25ce (Mytek)
> because they are covered by the auto-detection code (below this
> whitelisting table). In fact, for some products they cause problems
> due to firmware changes that cause the DSD altsetting to change. Also
> there are vendors who use same VID:PID pair for multiple products with
> different firmware variants and different altsettings which in turn
> causes problems with these static altsetting listings.
> 
> So I would strongly advise to use the autodetection whenever
> possible. In my own kernel builds I've removed all those mentioned
> VIDs from the PID specific table, but for the already included patches
> I took more conservative approach and removed only the ones I could
> 100% test myself.

Care to send a cleanup patch?  That'll be really helpful.


thanks,

Takashi
diff mbox series

Patch

diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index 3d0f09108c98..aeac6bb7e111 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -1515,6 +1515,7 @@  u64 snd_usb_interface_dsd_format_quirks(struct
snd_usb_audio *chip,
   case USB_ID(0x27f7, 0x3002): /* W4S DAC-2v2SE */
   case USB_ID(0x29a2, 0x0086): /* Mutec MC3+ USB */
   case USB_ID(0x6b42, 0x0042): /* MSB Technology */
+   case USB_ID(0x152a, 0x85de): /* SMSL D1 DAC */
       if (fp->altsetting == 3)
           return SNDRV_PCM_FMTBIT_DSD_U32_BE;