From nobody Sun Oct 5 18:15:11 2025 Received: from mail.comtrue-inc.com (220-134-147-48.hinet-ip.hinet.net [220.134.147.48]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 5C97713D512; Thu, 31 Jul 2025 05:00:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=220.134.147.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753938029; cv=none; b=KCYjUsgg0tJpwRFbhzib8VF8r8VjoXgu8s/VntiqDz1b+Hws0hUHqZCdY7TWXX6JXBRBWIJFIOdwZ59ct9Ca4P4cnQYrtJJqlhmMlM1HbKwx7lUVEelwO4ws0g7HYeVSD8EEelZje6RLrJ1ON74KEj1MjLIemq6++Bn3nm9+JwQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753938029; c=relaxed/simple; bh=gZ9PUbdTg7cMsplRGAXBlhb3hEK01avE8VBUDyx4wd4=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type; b=lCBj9XXUJ6UOLCMrrnpiIt0sN0IQDcBbmVgRPITw41/VrvjCBSA4Vp+8xKXxn+muZVADqwJYtmTq/o7lCm+X1ouEdmWEM+9jlqn2cWJpJ81S5aeLcWEyRrL/+x+5JYiXCFy/SM+VPxHDybJf8BEjL7ATBuTBHNPv6EW2nvrOlB8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=comtrue-inc.com; spf=pass smtp.mailfrom=comtrue-inc.com; arc=none smtp.client-ip=220.134.147.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=comtrue-inc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=comtrue-inc.com Received: from T470p (111-240-71-216.dynamic-ip.hinet.net [111.240.71.216]) by mail.comtrue-inc.com (Postfix) with ESMTPA id 13932181713; Thu, 31 Jul 2025 12:51:37 +0800 (CST) From: To: , , , , , , Cc: , Subject: [PATCH] ALSA: usb-audio: Add DSD support for Comtrue USB Audio device Date: Thu, 31 Jul 2025 12:51:37 +0800 Message-ID: <001e01dc01d6$cc4c64e0$64e52ea0$@comtrue-inc.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_001F_01DC0219.DA6FA4E0" X-Mailer: Microsoft Outlook 16.0 Thread-Index: AdwB0zvAsyNlTETcSKiGBDeb+Tco7w== Content-Language: zh-tw This is a multipart message in MIME format. ------=_NextPart_000_001F_01DC0219.DA6FA4E0 Content-Type: multipart/alternative; boundary="----=_NextPart_001_0020_01DC0219.DA6FA4E0" ------=_NextPart_001_0020_01DC0219.DA6FA4E0 Content-Type: text/plain; charset="big5" Content-Transfer-Encoding: quoted-printable The vendor Comtrue Inc. (0x2fc6) produces USB audio chipsets like the CT7601 which are capable of Native DSD playback. =20 This patch adds QUIRK_FLAG_DSD_RAW for Comtrue (VID 0x2fc6), which = enables native DSD playback (DSD_U32_LE) on their USB Audio device. This has = been verified under Ubuntu 25.04 with JRiver. =20 Best Regards ! =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Noble Yang Cell : +886-955-347822 =B1=E1=BF=B2=AA=D1=A5=F7=A6=B3=AD=AD=A4=BD=A5q Comtrue Inc. www.comtrue-inc.com =20 =B7s=A6a=A7} : = =B7s=A6=CB=BF=A4=A6=CB=A5_=A5=AB=BF=A4=ACF=A4Q=B5=F310=B8=B92F=A4=A71 2F.-1, No. 10, Xianzheng 10th St., Zhubei City, Hsinchu County 302, = Taiwan (R.O.C.) The information included in this email is privileged and confidential = and just for the exclusive use of the addressee. For people other than the addressee the use, disclosure and reproduction = is strictly prohibited. If this message has been received in error, please contact the sender = and delete all copies. =20 ------=_NextPart_001_0020_01DC0219.DA6FA4E0 Content-Type: text/html; charset="big5" Content-Transfer-Encoding: quoted-printable

The vendor Comtrue Inc. (0x2fc6) produces USB audio = chipsets like

the CT7601 which are capable of Native DSD = playback.

 

This patch adds QUIRK_FLAG_DSD_RAW for Comtrue (VID = 0x2fc6), which enables

native DSD playback (DSD_U32_LE) on their USB Audio = device. This has been

verified under Ubuntu 25.04 with JRiver.

 

Best Regards = !

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Noble Yang

Cell : = +886-955-347822

=B1=E1=BF=B2=AA=D1=A5=F7=A6=B3=AD=AD= =A4=BD=A5q

Comtrue = Inc.

www.comtrue-inc.com

=B7s=A6a=A7} : = =B7s=A6=CB=BF=A4=A6=CB=A5_=A5=AB=BF=A4=ACF=A4Q=B5=F310=B8=B92F=A4=A71

2F.-1, No. 10, = Xianzheng 10th St., Zhubei City, Hsinchu County 302, Taiwan = (R.O.C.)

The information included in this email is = privileged and confidential and just for the exclusive use of the = addressee.

For people = other than the addressee the use, disclosure and reproduction is = strictly prohibited.

If = this message has been received in error, please contact the sender and = delete all copies.

 

------=_NextPart_001_0020_01DC0219.DA6FA4E0-- ------=_NextPart_000_001F_01DC0219.DA6FA4E0 Content-Type: application/octet-stream; name="0001-ALSA-usb-audio-Add-DSD-support-for-Comtrue-USB-Audio.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0001-ALSA-usb-audio-Add-DSD-support-for-Comtrue-USB-Audio.patch" From 1b9dde1ef9987efcaf5d9bc9a932ac0ec3bbd8c5 Mon Sep 17 00:00:00 2001=0A= From: "noble.yang" =0A= Date: Thu, 31 Jul 2025 12:11:11 +0800=0A= Subject: [PATCH] ALSA: usb-audio: Add DSD support for Comtrue USB Audio = device=0A= =0A= Signed-off-by: noble.yang =0A= ---=0A= sound/usb/quirks.c | 2 ++=0A= 1 file changed, 2 insertions(+)=0A= =0A= diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c=0A= index bd24f3a78ea9..cbb66125f839 100644=0A= --- a/sound/usb/quirks.c=0A= +++ b/sound/usb/quirks.c=0A= @@ -2408,6 +2408,8 @@ static const struct usb_audio_quirk_flags_table = quirk_flags_table[] =3D {=0A= QUIRK_FLAG_DSD_RAW),=0A= VENDOR_FLG(0x2d87, /* Cayin device */=0A= QUIRK_FLAG_DSD_RAW),=0A= + VENDOR_FLG(0x2fc6, /* Comture-inc devices */=0A= + QUIRK_FLAG_DSD_RAW), =0A= VENDOR_FLG(0x3336, /* HEM devices */=0A= QUIRK_FLAG_DSD_RAW),=0A= VENDOR_FLG(0x3353, /* Khadas devices */=0A= -- =0A= 2.48.1=0A= =0A= ------=_NextPart_000_001F_01DC0219.DA6FA4E0 Content-Type: text/plain; name="cat proc asound card.txt" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="cat proc asound card.txt" cat /proc/asound/card*/stream0=0A= Comtrue-inc Comtrue-inc UAC2 Device EVM-GB at usb-0000:00:14.0-5, high = speed : USB Audio=0A= =0A= Playback:=0A= Status: Stop=0A= Interface 1=0A= Altset 1=0A= Format: S16_LE=0A= Channels: 2=0A= Endpoint: 0x01 (1 OUT) (ASYNC)=0A= Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, = 705600, 768000=0A= Data packet interval: 125 us=0A= Bits: 16=0A= Channel map: FL FR=0A= Sync Endpoint: 0x81 (1 IN)=0A= Sync EP Interface: 1=0A= Sync EP Altset: 1=0A= Implicit Feedback Mode: No=0A= Interface 1=0A= Altset 2=0A= Format: S24_3LE=0A= Channels: 2=0A= Endpoint: 0x01 (1 OUT) (ASYNC)=0A= Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, = 705600, 768000=0A= Data packet interval: 125 us=0A= Bits: 24=0A= Channel map: FL FR=0A= Sync Endpoint: 0x81 (1 IN)=0A= Sync EP Interface: 1=0A= Sync EP Altset: 2=0A= Implicit Feedback Mode: No=0A= Interface 1=0A= Altset 3=0A= Format: S32_LE=0A= Channels: 2=0A= Endpoint: 0x01 (1 OUT) (ASYNC)=0A= Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, = 705600, 768000=0A= Data packet interval: 125 us=0A= Bits: 32=0A= Channel map: FL FR=0A= Sync Endpoint: 0x81 (1 IN)=0A= Sync EP Interface: 1=0A= Sync EP Altset: 3=0A= Implicit Feedback Mode: No=0A= Interface 1=0A= Altset 4=0A= Format: SPECIAL DSD_U32_BE=0A= Channels: 2=0A= Endpoint: 0x01 (1 OUT) (ASYNC)=0A= Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, = 705600, 768000=0A= Data packet interval: 125 us=0A= Bits: 32=0A= DSD raw: DOP=3D0, bitrev=3D0=0A= Channel map: FL FR=0A= Sync Endpoint: 0x81 (1 IN)=0A= Sync EP Interface: 1=0A= Sync EP Altset: 4=0A= Implicit Feedback Mode: No=0A= =0A= Capture:=0A= Status: Stop=0A= Interface 2=0A= Altset 1=0A= Format: S16_LE=0A= Channels: 2=0A= Endpoint: 0x82 (2 IN) (ASYNC)=0A= Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, = 705600, 768000=0A= Data packet interval: 125 us=0A= Bits: 16=0A= Channel map: FL FR=0A= Interface 2=0A= Altset 2=0A= Format: S24_3LE=0A= Channels: 2=0A= Endpoint: 0x82 (2 IN) (ASYNC)=0A= Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, = 705600, 768000=0A= Data packet interval: 125 us=0A= Bits: 24=0A= Channel map: FL FR=0A= Interface 2=0A= Altset 3=0A= Format: S32_LE=0A= Channels: 2=0A= Endpoint: 0x82 (2 IN) (ASYNC)=0A= Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, = 705600, 768000=0A= Data packet interval: 125 us=0A= Bits: 32=0A= Channel map: FL FR=0A= Interface 2=0A= Altset 4=0A= Format: SPECIAL DSD_U32_BE=0A= Channels: 2=0A= Endpoint: 0x82 (2 IN) (ASYNC)=0A= Rates: 44100, 48000, 88200, 96000, 176400, 192000, 352800, 384000, = 705600, 768000=0A= Data packet interval: 125 us=0A= Bits: 32=0A= DSD raw: DOP=3D0, bitrev=3D0=0A= Channel map: FL FR=0A= =0A= ------=_NextPart_000_001F_01DC0219.DA6FA4E0--