diff mbox series

sound: usb: quirks: add flag for HEM devices to enable native DSD playback

Message ID 20230614113350.25607-1-ltyl@hem-e.com
State New
Headers show
Series sound: usb: quirks: add flag for HEM devices to enable native DSD playback | expand

Commit Message

Lukasz Tyl June 14, 2023, 11:33 a.m. UTC
This commit adds new DEVICE_FLG with QUIRK_FLAG_DSD_RAW and Vendor Id for
HEM devices which supports native DSD. Prior to this change Linux kernel
was not enabling native DSD playback for HEM devices, and as a result,
DSD audio was being converted to PCM "on the fly". HEM devices,
when connected to the system, would only play audio in PCM format,
even if the source material was in DSD format. With the addition of new
VENDOR_FLG in the quircks.c file, the devices are now correctly
recognized, and raw DSD data is transmitted to the device,
allowing for native DSD playback.

Signed-off-by: Lukasz Tyl <ltyl@hem-e.com>
---
 sound/usb/quirks.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Takashi Iwai June 14, 2023, 11:39 a.m. UTC | #1
On Wed, 14 Jun 2023 13:33:50 +0200,
Lukasz Tyl wrote:
> 
> This commit adds new DEVICE_FLG with QUIRK_FLAG_DSD_RAW and Vendor Id for
> HEM devices which supports native DSD. Prior to this change Linux kernel
> was not enabling native DSD playback for HEM devices, and as a result,
> DSD audio was being converted to PCM "on the fly". HEM devices,
> when connected to the system, would only play audio in PCM format,
> even if the source material was in DSD format. With the addition of new
> VENDOR_FLG in the quircks.c file, the devices are now correctly
> recognized, and raw DSD data is transmitted to the device,
> allowing for native DSD playback.
> 
> Signed-off-by: Lukasz Tyl <ltyl@hem-e.com>
> ---
>  sound/usb/quirks.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
> index 3ecd1ba7fd4b..1414bf15ac21 100644
> --- a/sound/usb/quirks.c
> +++ b/sound/usb/quirks.c
> @@ -2197,6 +2197,8 @@ static const struct usb_audio_quirk_flags_table quirk_flags_table[] = {
>  		   QUIRK_FLAG_DSD_RAW),
>  	VENDOR_FLG(0xc502, /* HiBy devices */
>  		   QUIRK_FLAG_DSD_RAW),
> +	VENDOR_FLG(0x3336, /* HEM devices */
> +		   QUIRK_FLAG_DSD_RAW),

The entry is sorted in vendor id number.  Could you try to put at the
right position?


thanks,

Takashi
diff mbox series

Patch

diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index 3ecd1ba7fd4b..1414bf15ac21 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -2197,6 +2197,8 @@  static const struct usb_audio_quirk_flags_table quirk_flags_table[] = {
 		   QUIRK_FLAG_DSD_RAW),
 	VENDOR_FLG(0xc502, /* HiBy devices */
 		   QUIRK_FLAG_DSD_RAW),
+	VENDOR_FLG(0x3336, /* HEM devices */
+		   QUIRK_FLAG_DSD_RAW),
 
 	{} /* terminator */
 };