From nobody Fri Oct 3 08:49:06 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 905842D3756; Wed, 3 Sep 2025 05:09:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756876187; cv=none; b=mWNI/JVdfUH4+HNssH8zYPe2H1gKWg2ZOhjr+5PSeudeg2PsZ9uZ2KionvcvfERn0tZ6qrkFEnc1Z2Yo7B062vs9hBPA4qMNSvAqMhKaGpnOkuihIlh+NaMAtg4iHDFcX0mJ+fR8OlXzXAs97AA0jhrGv5CiNT9FM6NioLV40VI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756876187; c=relaxed/simple; bh=ZjGf7KRdQMIWqObCWHGDvqYtXHaO3bEOfOsDJRMqxzg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=st/fsYptpPlhZms6cNMxt8akNCvGkJB/9oe0fmde1M9gIk+CIcciaJN4/JViwAXVIKMFowXEApJ+VQ4pDA6yyRpjFWBvAqolQAEyK4ITgsphTG5km0/KPcir2/IsQ7LlQ+zW4U/oZnHlHnMaETj/cGduZN4HspYEVLXjbCEYcGc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=MRQLEDip; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="MRQLEDip" Received: by smtp.kernel.org (Postfix) with ESMTPS id 2F173C4CEF7; Wed, 3 Sep 2025 05:09:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1756876187; bh=ZjGf7KRdQMIWqObCWHGDvqYtXHaO3bEOfOsDJRMqxzg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=MRQLEDipl9uf/f0sZjmZ4rnEjxYM60JO47JkQXXRc9UykrBoX43cjuVk1HgO6m7rV JuRGmembZ5uwNA8bZM+6Zv2GckU89nuY8vhatBe192enrTiWtJf1c7QMBSngA7VQnv A9CX9VVSFHZ8rM2ocjNKfuLW7StDss/4VKN88V6+MXznNaXVVrPuEJqT2d4dAjt5wd D+7xZGw9Dtnx20NVo/w0sIMsgBU/fg80aoaB/fFC3BepwAKF0MAGdsx9sEUgWe17M2 u+u8ggJI4TYC5R5g+JUbjGwNRMsVY4imvLfxNBeuuBZ1Nov45a4BkJyPJWY4YwuKYM 9TGcdEXoe3t2Q== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 194D7CA0FF2; Wed, 3 Sep 2025 05:09:47 +0000 (UTC) From: Cryolitia PukNgae via B4 Relay Date: Wed, 03 Sep 2025 13:09:45 +0800 Subject: [PATCH 1/4] ALSA: usb-audio: rename QUIRK_FLAG_MIXER_MIN_MUTE to QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250903-sound-v1-1-d4ca777b8512@uniontech.com> References: <20250903-sound-v1-0-d4ca777b8512@uniontech.com> In-Reply-To: <20250903-sound-v1-0-d4ca777b8512@uniontech.com> To: Jaroslav Kysela , Takashi Iwai , Jonathan Corbet Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, Mingcong Bai , Kexy Biscuit , Nie Cheng , Zhan Jun , Feng Yuan , Celeste Liu , qaqland , linux-doc@vger.kernel.org, Cryolitia PukNgae X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1756876185; l=6310; i=cryolitia@uniontech.com; s=20250730; h=from:subject:message-id; bh=5X9enJVM8lgCdKEd8wCN4JgL4HiyGxy1lLZ9NGOnxNA=; b=RzN4zMhU8g6S2Zz6pu9d00t5feSyVsNC7BBiZKsAlX6Wq1Eu8HiUTSDYDCj5kUSk0oN69Z909 qf1JnRkQGkRBlUG8Y1ArO3FiCKxiM3Kr+Zh2SKTear4Uc52O4LQlqYy X-Developer-Key: i=cryolitia@uniontech.com; a=ed25519; pk=tZ+U+kQkT45GRGewbMSB4VPmvpD+KkHC/Wv3rMOn/PU= X-Endpoint-Received: by B4 Relay for cryolitia@uniontech.com/20250730 with auth_id=474 X-Original-From: Cryolitia PukNgae Reply-To: cryolitia@uniontech.com From: Cryolitia PukNgae As a preparation of introduction QUIRK_FLAG_MIXER_CAPTURE_MIN_MUTE Also make it printing an info while applying Signed-off-by: Cryolitia PukNgae --- sound/usb/mixer_quirks.c | 7 +++++-- sound/usb/quirks.c | 20 ++++++++++---------- sound/usb/usbaudio.h | 4 ++-- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/sound/usb/mixer_quirks.c b/sound/usb/mixer_quirks.c index b8275c81802e60314ee483a31a0fcb7306b24c76..2a1abc24dbfc0c6b69d64529eda= 01bc25f1a6dd1 100644 --- a/sound/usb/mixer_quirks.c +++ b/sound/usb/mixer_quirks.c @@ -4543,9 +4543,12 @@ void snd_usb_mixer_fu_apply_quirk(struct usb_mixer_i= nterface *mixer, } =20 /* lowest playback value is muted on some devices */ - if (mixer->chip->quirk_flags & QUIRK_FLAG_MIXER_MIN_MUTE) - if (strstr(kctl->id.name, "Playback")) + if (mixer->chip->quirk_flags & QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE) + if (strstr(kctl->id.name, "Playback")) { + usb_audio_info(mixer->chip, + "applying playback min mute quirk\n"); cval->min_mute =3D 1; + } =20 /* ALSA-ify some Plantronics headset control names */ if (USB_ID_VENDOR(mixer->chip->usb_id) =3D=3D 0x047f && diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c index 766db7d00cbc95984afa834200ebe3adfdf182ef..0fe31af3158f08a39849f8df99d= bbfb10c5fdcc1 100644 --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c @@ -2200,9 +2200,9 @@ static const struct usb_audio_quirk_flags_table quirk= _flags_table[] =3D { DEVICE_FLG(0x0556, 0x0014, /* Phoenix Audio TMX320VC */ QUIRK_FLAG_GET_SAMPLE_RATE), DEVICE_FLG(0x0572, 0x1b08, /* Conexant Systems (Rockwell), Inc. */ - QUIRK_FLAG_MIXER_MIN_MUTE), + QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE), DEVICE_FLG(0x0572, 0x1b09, /* Conexant Systems (Rockwell), Inc. */ - QUIRK_FLAG_MIXER_MIN_MUTE), + QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE), DEVICE_FLG(0x05a3, 0x9420, /* ELP HD USB Camera */ QUIRK_FLAG_GET_SAMPLE_RATE), DEVICE_FLG(0x05a7, 0x1020, /* Bose Companion 5 */ @@ -2246,15 +2246,15 @@ static const struct usb_audio_quirk_flags_table qui= rk_flags_table[] =3D { DEVICE_FLG(0x0b0e, 0x0349, /* Jabra 550a */ QUIRK_FLAG_CTL_MSG_DELAY_1M), DEVICE_FLG(0x0bda, 0x498a, /* Realtek Semiconductor Corp. */ - QUIRK_FLAG_MIXER_MIN_MUTE), + QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE), DEVICE_FLG(0x0c45, 0x6340, /* Sonix HD USB Camera */ QUIRK_FLAG_GET_SAMPLE_RATE), DEVICE_FLG(0x0c45, 0x636b, /* Microdia JP001 USB Camera */ QUIRK_FLAG_GET_SAMPLE_RATE), DEVICE_FLG(0x0d8c, 0x000c, /* C-Media */ - QUIRK_FLAG_MIXER_MIN_MUTE), + QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE), DEVICE_FLG(0x0d8c, 0x0014, /* C-Media */ - QUIRK_FLAG_CTL_MSG_DELAY_1M | QUIRK_FLAG_MIXER_MIN_MUTE), + QUIRK_FLAG_CTL_MSG_DELAY_1M | QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE), DEVICE_FLG(0x0ecb, 0x205c, /* JBL Quantum610 Wireless */ QUIRK_FLAG_FIXED_RATE), DEVICE_FLG(0x0ecb, 0x2069, /* JBL Quantum810 Wireless */ @@ -2264,7 +2264,7 @@ static const struct usb_audio_quirk_flags_table quirk= _flags_table[] =3D { DEVICE_FLG(0x1101, 0x0003, /* Audioengine D1 */ QUIRK_FLAG_GET_SAMPLE_RATE), DEVICE_FLG(0x12d1, 0x3a07, /* Huawei Technologies Co., Ltd. */ - QUIRK_FLAG_MIXER_MIN_MUTE), + QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE), DEVICE_FLG(0x1224, 0x2a25, /* Jieli Technology USB PHY 2.0 */ QUIRK_FLAG_GET_SAMPLE_RATE | QUIRK_FLAG_MIC_RES_16), DEVICE_FLG(0x1395, 0x740a, /* Sennheiser DECT */ @@ -2304,7 +2304,7 @@ static const struct usb_audio_quirk_flags_table quirk= _flags_table[] =3D { DEVICE_FLG(0x1901, 0x0191, /* GE B850V3 CP2114 audio interface */ QUIRK_FLAG_GET_SAMPLE_RATE), DEVICE_FLG(0x19f7, 0x0003, /* RODE NT-USB */ - QUIRK_FLAG_MIXER_MIN_MUTE), + QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE), DEVICE_FLG(0x19f7, 0x0035, /* RODE NT-USB+ */ QUIRK_FLAG_GET_SAMPLE_RATE), DEVICE_FLG(0x1bcf, 0x2281, /* HD Webcam */ @@ -2356,7 +2356,7 @@ static const struct usb_audio_quirk_flags_table quirk= _flags_table[] =3D { DEVICE_FLG(0x2912, 0x30c8, /* Audioengine D1 */ QUIRK_FLAG_GET_SAMPLE_RATE), DEVICE_FLG(0x2a70, 0x1881, /* OnePlus Technology (Shenzhen) Co., Ltd. BE0= 2T */ - QUIRK_FLAG_MIXER_MIN_MUTE), + QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE), DEVICE_FLG(0x2b53, 0x0023, /* Fiero SC-01 (firmware v1.0.0 @ 48 kHz) */ QUIRK_FLAG_GENERIC_IMPLICIT_FB), DEVICE_FLG(0x2b53, 0x0024, /* Fiero SC-01 (firmware v1.0.0 @ 96 kHz) */ @@ -2368,13 +2368,13 @@ static const struct usb_audio_quirk_flags_table qui= rk_flags_table[] =3D { DEVICE_FLG(0x2d95, 0x8021, /* VIVO USB-C-XE710 HEADSET */ QUIRK_FLAG_CTL_MSG_DELAY_1M), DEVICE_FLG(0x2d99, 0x0026, /* HECATE G2 GAMING HEADSET */ - QUIRK_FLAG_MIXER_MIN_MUTE), + QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE), DEVICE_FLG(0x2fc6, 0xf0b7, /* iBasso DC07 Pro */ QUIRK_FLAG_CTL_MSG_DELAY_1M), DEVICE_FLG(0x30be, 0x0101, /* Schiit Hel */ QUIRK_FLAG_IGNORE_CTL_ERROR), DEVICE_FLG(0x339b, 0x3a07, /* Synaptics HONOR USB-C HEADSET */ - QUIRK_FLAG_MIXER_MIN_MUTE), + QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE), DEVICE_FLG(0x413c, 0xa506, /* Dell AE515 sound bar */ QUIRK_FLAG_GET_SAMPLE_RATE), DEVICE_FLG(0x534d, 0x0021, /* MacroSilicon MS2100/MS2106 */ diff --git a/sound/usb/usbaudio.h b/sound/usb/usbaudio.h index 59335b94103004b900285e4990b971d74bf37532..707b3037b1b3a3d2997157154cf= 78d71455bfe4b 100644 --- a/sound/usb/usbaudio.h +++ b/sound/usb/usbaudio.h @@ -219,7 +219,7 @@ extern bool snd_usb_skip_validation; * for the given endpoint. * QUIRK_FLAG_MIC_RES_16 and QUIRK_FLAG_MIC_RES_384 * Set the fixed resolution for Mic Capture Volume (mostly for webcams) - * QUIRK_FLAG_MIXER_MIN_MUTE + * QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE * Set minimum volume control value as mute for devices where the lowest * playback value represents muted state instead of minimum audible volume */ @@ -248,6 +248,6 @@ extern bool snd_usb_skip_validation; #define QUIRK_FLAG_FIXED_RATE (1U << 21) #define QUIRK_FLAG_MIC_RES_16 (1U << 22) #define QUIRK_FLAG_MIC_RES_384 (1U << 23) -#define QUIRK_FLAG_MIXER_MIN_MUTE (1U << 24) +#define QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE (1U << 24) =20 #endif /* __USBAUDIO_H */ --=20 2.51.0 From nobody Fri Oct 3 08:49:06 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 905152D2382; Wed, 3 Sep 2025 05:09:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756876187; cv=none; b=LC2NpqSMYeNNZTZinNBDEePwyvaK8NB59Honnifw+5H5dNwQeSi4H0vwdedUYWt3tl/UpX8OrPK/OYL5i6U2baZTY58N+DdhaoDC1hnXr4ZgdUgmHXkEy+4gRQaB5j9qQ1faRKQy8511FUznrT3zBWJwwJKt2wZH5uLAd7htQ80= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756876187; c=relaxed/simple; bh=wfgQLINE+rLYXjlgnjlErA+lp8Av5ThpURzDubhNvEo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LR/YUHkiHcL8RRMYVr24Mr10bGvG4bWwz/B9eo9tO4CdAQ5irgAZy4bXu7RL+4U9kXy3qvt3sIgkd9i/rl7j8GnJhgNIG5zpoiHOZ3YC9r/NMAX+d5uHGRuiYePpYgaPMbSUs7tarT2SrnDmlSzW06NBmVTC5KiUHgugU2wIGF8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=mKsQO427; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="mKsQO427" Received: by smtp.kernel.org (Postfix) with ESMTPS id 3AD29C4CEF1; Wed, 3 Sep 2025 05:09:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1756876187; bh=wfgQLINE+rLYXjlgnjlErA+lp8Av5ThpURzDubhNvEo=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=mKsQO427c1urE6y3eHGSlJ0BBPG4FSde/HsHiJJfuKiZ2sjzY0dNJ3vhy9P1gtkMS g4Bt9xiWlGrjCAV7zgSezlcK/ZD//RZ2wIjIdOUb6ZI6XtvOhrRRhInbmWikW0bB4i u33uaSpvepqJugvMUnkkgxqKDh4HepCjzi2uXDGYHf3VultkX9iK8tNA1Zbb81ccPy LpB7JgIv4BpdJbvwyuumozLbUMf3VkC8c0dy8gmgYdUES5qwpHQPhDC4sp91tN76VX VUgFTiL4MwI0A8lP8Y1iCkWs/lWgC1WoUg+YXaXvxcRlWZAE7XzRTAvBUDcqOYs5wT sQ/R1jSXQrp9A== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2A531CA1007; Wed, 3 Sep 2025 05:09:47 +0000 (UTC) From: Cryolitia PukNgae via B4 Relay Date: Wed, 03 Sep 2025 13:09:46 +0800 Subject: [PATCH 2/4] ALSA: usb-audio: add quirk QUIRK_FLAG_MIXER_CAPTURE_MIN_MUTE Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250903-sound-v1-2-d4ca777b8512@uniontech.com> References: <20250903-sound-v1-0-d4ca777b8512@uniontech.com> In-Reply-To: <20250903-sound-v1-0-d4ca777b8512@uniontech.com> To: Jaroslav Kysela , Takashi Iwai , Jonathan Corbet Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, Mingcong Bai , Kexy Biscuit , Nie Cheng , Zhan Jun , Feng Yuan , Celeste Liu , qaqland , linux-doc@vger.kernel.org, Cryolitia PukNgae X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1756876185; l=2954; i=cryolitia@uniontech.com; s=20250730; h=from:subject:message-id; bh=96cffDbepRmoALzdF1FSb7F0QqJtNTtbDzVfX1s6B4Y=; b=1xID+OM09wKkCbq4mYuoUra031C0SMSRp8IgO3DkOilYh3ENGuVTBAiaX+EO+Dw97X+ppHjUq YtTR8KYtbsjDh6ng8vs2NO1XUY5BZ4hp+w3cVLHqQIicPRqRd+MvXwc X-Developer-Key: i=cryolitia@uniontech.com; a=ed25519; pk=tZ+U+kQkT45GRGewbMSB4VPmvpD+KkHC/Wv3rMOn/PU= X-Endpoint-Received: by B4 Relay for cryolitia@uniontech.com/20250730 with auth_id=474 X-Original-From: Cryolitia PukNgae Reply-To: cryolitia@uniontech.com From: Cryolitia PukNgae The same hardware problem to QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE also occurs on the capture streams on some USB devices. Add a new flag for processing the quirk. Link: https://lore.kernel.org/all/C22C1A172EBB9BD9+eccc2e4a-d21e-4a7d-848c-= bbf3982feb94@uniontech.com/ Signed-off-by: Cryolitia PukNgae --- Documentation/sound/alsa-configuration.rst | 1 + sound/usb/mixer_quirks.c | 7 +++++++ sound/usb/usbaudio.h | 3 +++ 3 files changed, 11 insertions(+) diff --git a/Documentation/sound/alsa-configuration.rst b/Documentation/sou= nd/alsa-configuration.rst index 062b86522e4d9cc7ec19e978e0efc934dae9ab1b..bf45df1558bbc361ca165abaf9c= 5d83bfe3188e2 100644 --- a/Documentation/sound/alsa-configuration.rst +++ b/Documentation/sound/alsa-configuration.rst @@ -2329,6 +2329,7 @@ quirk_flags * bit 24: Set minimum volume control value as mute for devices where the lowest playback value represents muted state instead of minimum audible volume + * bit 25: Be similar to bit 24 but for capture streams =20 This module supports multiple devices, autoprobe and hotplugging. =20 diff --git a/sound/usb/mixer_quirks.c b/sound/usb/mixer_quirks.c index 2a1abc24dbfc0c6b69d64529eda01bc25f1a6dd1..828af3095b86ee0aa8f2d248d8e= 714b5d3ae20eb 100644 --- a/sound/usb/mixer_quirks.c +++ b/sound/usb/mixer_quirks.c @@ -4550,6 +4550,13 @@ void snd_usb_mixer_fu_apply_quirk(struct usb_mixer_i= nterface *mixer, cval->min_mute =3D 1; } =20 + /* lowest capture value is muted on some devices */ + if (mixer->chip->quirk_flags & QUIRK_FLAG_MIXER_CAPTURE_MIN_MUTE) + if (strstr(kctl->id.name, "Capture")) { + usb_audio_info(mixer->chip, + "applying capture min mute quirk\n"); + cval->min_mute =3D 1; + } /* ALSA-ify some Plantronics headset control names */ if (USB_ID_VENDOR(mixer->chip->usb_id) =3D=3D 0x047f && (cval->control =3D=3D UAC_FU_MUTE || cval->control =3D=3D UAC_FU_VOLU= ME)) diff --git a/sound/usb/usbaudio.h b/sound/usb/usbaudio.h index 707b3037b1b3a3d2997157154cf78d71455bfe4b..30b5102e3caed01eeb86d0075c4= 1338104c58950 100644 --- a/sound/usb/usbaudio.h +++ b/sound/usb/usbaudio.h @@ -222,6 +222,8 @@ extern bool snd_usb_skip_validation; * QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE * Set minimum volume control value as mute for devices where the lowest * playback value represents muted state instead of minimum audible volume + * QUIRK_FLAG_MIXER_CAPTURE_MIN_MUTE + * Similar to QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE, but for capture streams */ =20 #define QUIRK_FLAG_GET_SAMPLE_RATE (1U << 0) @@ -249,5 +251,6 @@ extern bool snd_usb_skip_validation; #define QUIRK_FLAG_MIC_RES_16 (1U << 22) #define QUIRK_FLAG_MIC_RES_384 (1U << 23) #define QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE (1U << 24) +#define QUIRK_FLAG_MIXER_CAPTURE_MIN_MUTE (1U << 25) =20 #endif /* __USBAUDIO_H */ --=20 2.51.0 From nobody Fri Oct 3 08:49:06 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B28712D46DB; Wed, 3 Sep 2025 05:09:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756876187; cv=none; b=ZkC/pjWEJ4vvYrd7dTxo4aUSkLfGUWLA+y533khecS1OKNCcYp26KzuurQT99SLxPsVqzMzR9454JnuojajNh9yOhrXU6ecnNL7wCn8ticHYhgreBndK+QheeERXhBPWe+afArC/huG42JBOTdrk+PqzrYdbB/7nIN16SKIex54= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756876187; c=relaxed/simple; bh=7YzpS7WGvT5+wxyBAHrWRvHIPIj/UBNdEDTvQ4yz1Hg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=cei7QJc8pSmYEk7uSXamMvDOmUp7rVzE0CFOACwNhHkvRB72ACU2W+yc1uNzm/MqdhaLijIhq0qxHEti2yjSLPQz2ZJPeCseNuX3MzT9ucVwKfxuoNg6A0yjFkFR1vIQq4GWNMx248NcCOleWcunWDDEHGyj1k5YfwI+fMIt2kw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sYfThl1S; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sYfThl1S" Received: by smtp.kernel.org (Postfix) with ESMTPS id 47121C4CEF8; Wed, 3 Sep 2025 05:09:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1756876187; bh=7YzpS7WGvT5+wxyBAHrWRvHIPIj/UBNdEDTvQ4yz1Hg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=sYfThl1SUtkj9kfu23NUYmj0lC5NtEmTPkG9BvMaGX4DVq4OtxSYNUfHU+N8EjK7s mLKNblCZzxB7WXdm07Yk2ZXlmc9ZM32iaMVdsA7pVLVapQA/1JRqJ4XtrQimMDcoEe xhiebPsVr0qNopq1YHTcPyP/cOhsdQ5Y/Vzm9HWaYW1huLrGIAvrYEVw5NQCrN/PzZ vL2Pz85t2Nb8l4M9iWDWiTi385jXTVE9r//Iifwfqf4CFBvgj9+TNk6X78yIsDpLPt NsnC3Po9GupP2UH2moN4bcTUPqpS+742+O+jUriftHXz+yrM5VTn0qqiHx1KuBpSem Ej76i5uAXMlGA== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3AAFFCA1011; Wed, 3 Sep 2025 05:09:47 +0000 (UTC) From: Cryolitia PukNgae via B4 Relay Date: Wed, 03 Sep 2025 13:09:47 +0800 Subject: [PATCH 3/4] ALSA: usb-audio: apply "mixer_min_mute" quirks on some devices Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250903-sound-v1-3-d4ca777b8512@uniontech.com> References: <20250903-sound-v1-0-d4ca777b8512@uniontech.com> In-Reply-To: <20250903-sound-v1-0-d4ca777b8512@uniontech.com> To: Jaroslav Kysela , Takashi Iwai , Jonathan Corbet Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, Mingcong Bai , Kexy Biscuit , Nie Cheng , Zhan Jun , Feng Yuan , Celeste Liu , qaqland , linux-doc@vger.kernel.org, Cryolitia PukNgae X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1756876185; l=2765; i=cryolitia@uniontech.com; s=20250730; h=from:subject:message-id; bh=H41Y5MiAPmIzKR0KIqAt9d3/JLqaw8uC28jKyIpFimE=; b=1CHb8rMmE4hnWZhp4HI2TlFa19Re77zQ4+7SQPrj9hFdtAFeN5wJq1McJEn+fTT/cUvN2JkAq CpDd6HxXiCUDlNhRxrjT5lXUDr9DpBFDcmWEieqOHjWRXn/k/eg+cBR X-Developer-Key: i=cryolitia@uniontech.com; a=ed25519; pk=tZ+U+kQkT45GRGewbMSB4VPmvpD+KkHC/Wv3rMOn/PU= X-Endpoint-Received: by B4 Relay for cryolitia@uniontech.com/20250730 with auth_id=474 X-Original-From: Cryolitia PukNgae Reply-To: cryolitia@uniontech.com From: Cryolitia PukNgae - QUIRK_FLAG_MIXER_CAPTURE_MIN_MUTE - QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE Suggested-by: Guoli An Signed-off-by: Cryolitia PukNgae --- sound/usb/quirks.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c index 0fe31af3158f08a39849f8df99dbbfb10c5fdcc1..d736a4750356597bfb0f9d5ab01= cdaeaac0f907c 100644 --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c @@ -2243,16 +2243,20 @@ static const struct usb_audio_quirk_flags_table qui= rk_flags_table[] =3D { QUIRK_FLAG_IGNORE_CTL_ERROR), DEVICE_FLG(0x0951, 0x16ad, /* Kingston HyperX */ QUIRK_FLAG_CTL_MSG_DELAY_1M), + DEVICE_FLG(0x0b05, 0x18a6, /* ASUSTek Computer, Inc. */ + QUIRK_FLAG_MIXER_CAPTURE_MIN_MUTE), DEVICE_FLG(0x0b0e, 0x0349, /* Jabra 550a */ QUIRK_FLAG_CTL_MSG_DELAY_1M), DEVICE_FLG(0x0bda, 0x498a, /* Realtek Semiconductor Corp. */ - QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE), + QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE | QUIRK_FLAG_MIXER_CAPTURE_MIN_MUT= E), DEVICE_FLG(0x0c45, 0x6340, /* Sonix HD USB Camera */ QUIRK_FLAG_GET_SAMPLE_RATE), DEVICE_FLG(0x0c45, 0x636b, /* Microdia JP001 USB Camera */ QUIRK_FLAG_GET_SAMPLE_RATE), DEVICE_FLG(0x0d8c, 0x000c, /* C-Media */ QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE), + DEVICE_FLG(0x0d8c, 0x0012, /* C-Media */ + QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE), DEVICE_FLG(0x0d8c, 0x0014, /* C-Media */ QUIRK_FLAG_CTL_MSG_DELAY_1M | QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE), DEVICE_FLG(0x0ecb, 0x205c, /* JBL Quantum610 Wireless */ @@ -2264,7 +2268,7 @@ static const struct usb_audio_quirk_flags_table quirk= _flags_table[] =3D { DEVICE_FLG(0x1101, 0x0003, /* Audioengine D1 */ QUIRK_FLAG_GET_SAMPLE_RATE), DEVICE_FLG(0x12d1, 0x3a07, /* Huawei Technologies Co., Ltd. */ - QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE), + QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE | QUIRK_FLAG_MIXER_CAPTURE_MIN_MUT= E), DEVICE_FLG(0x1224, 0x2a25, /* Jieli Technology USB PHY 2.0 */ QUIRK_FLAG_GET_SAMPLE_RATE | QUIRK_FLAG_MIC_RES_16), DEVICE_FLG(0x1395, 0x740a, /* Sennheiser DECT */ @@ -2356,7 +2360,7 @@ static const struct usb_audio_quirk_flags_table quirk= _flags_table[] =3D { DEVICE_FLG(0x2912, 0x30c8, /* Audioengine D1 */ QUIRK_FLAG_GET_SAMPLE_RATE), DEVICE_FLG(0x2a70, 0x1881, /* OnePlus Technology (Shenzhen) Co., Ltd. BE0= 2T */ - QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE), + QUIRK_FLAG_MIXER_PLAYBACK_MIN_MUTE | QUIRK_FLAG_MIXER_CAPTURE_MIN_MUT= E), DEVICE_FLG(0x2b53, 0x0023, /* Fiero SC-01 (firmware v1.0.0 @ 48 kHz) */ QUIRK_FLAG_GENERIC_IMPLICIT_FB), DEVICE_FLG(0x2b53, 0x0024, /* Fiero SC-01 (firmware v1.0.0 @ 96 kHz) */ --=20 2.51.0 From nobody Fri Oct 3 08:49:06 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B1ACB2D3ECA; Wed, 3 Sep 2025 05:09:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756876187; cv=none; b=D6hQ6q0hgp6bxm0PxoYTWMjDPrNNuhyULwwV5WBpvbckJd3ANLyI+45mpOTYl2xpLLNPnf4bsTG2D5gE7g9j94EN713EOEpHekjFUx9MGy1XTmSnq+SQnF7N81NesNNnsbqAJsAAoKft/bss0DvigmszW/DVFmygIh6NUS5Q+Pc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756876187; c=relaxed/simple; bh=+0mTKTtsuCB9dFm243PXtxnJL1c9wmKQIOd8m9PW3Kc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=JuQFsK8cnyNrUR3F1Lip0q20lpq3AGlEFnqgY+cpPe1R5w7pSK/sT3aUywo66vr6WYb+MWg01MaWeDS6PoNnwA1fBd5vGtL2KRsbhNiiMRR+P2eOup+1C6UKsi41/WcvSkwSPWChN2nvoGMWzy9bkkPOOEg9ZOQmOVSEYkniB9M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HS40c5Po; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="HS40c5Po" Received: by smtp.kernel.org (Postfix) with ESMTPS id 545BFC4CEF9; Wed, 3 Sep 2025 05:09:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1756876187; bh=+0mTKTtsuCB9dFm243PXtxnJL1c9wmKQIOd8m9PW3Kc=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=HS40c5Po1oWGl3J206WXL9hfHDuG8uJODCBi2deOsOSZ+5vTBbDVsJzPHJZzCiGyY 1BVlzyD66fvzMin7cQx8TM3g7Uz/XSKwxld42QHIiWZzLn+R+E5HyBmb+bRu9/nR4J fE8kWKwo5STCvinrgb6+bluvlCUKr6IRJPMjN0DaW/zavZyYw2LNf5Dgzl/02tLteR 7vc0WyKwUYsxJmvNHtQYGIAF7BEkLVUFqcMYy4xliqDPPKvn8ci5mxWgL5lMRExSZw NjJqpzkA/B1QVK12TPV9Lb10zck0DwI0JMuF7L+T+3mDjLLIJNmH38ZGgZ8AzkVuHH w74LH5iNvtKQA== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4C71ACA100B; Wed, 3 Sep 2025 05:09:47 +0000 (UTC) From: Cryolitia PukNgae via B4 Relay Date: Wed, 03 Sep 2025 13:09:48 +0800 Subject: [PATCH 4/4] ALSA: usb-audio: apply quirk for MOONDROP Quark2 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250903-sound-v1-4-d4ca777b8512@uniontech.com> References: <20250903-sound-v1-0-d4ca777b8512@uniontech.com> In-Reply-To: <20250903-sound-v1-0-d4ca777b8512@uniontech.com> To: Jaroslav Kysela , Takashi Iwai , Jonathan Corbet Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, Mingcong Bai , Kexy Biscuit , Nie Cheng , Zhan Jun , Feng Yuan , Celeste Liu , qaqland , linux-doc@vger.kernel.org, Cryolitia PukNgae X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1756876185; l=882; i=cryolitia@uniontech.com; s=20250730; h=from:subject:message-id; bh=7pAYirEG6noZ5IXNpIYlyRGjI9vbDXOa2QYKKttvvvI=; b=G++rkHQVWT4ctoWBFWaBkDBP66wgyo7rvmHJAIrZIqjZVsBwYyoyP1LUt1nhxRDjgGa1RmAE5 ebV8TrP6lF/CjRl2sNThL2XgI6qBiKNxV6CoZVjn9ubYedh7P/osLbW X-Developer-Key: i=cryolitia@uniontech.com; a=ed25519; pk=tZ+U+kQkT45GRGewbMSB4VPmvpD+KkHC/Wv3rMOn/PU= X-Endpoint-Received: by B4 Relay for cryolitia@uniontech.com/20250730 with auth_id=474 X-Original-From: Cryolitia PukNgae Reply-To: cryolitia@uniontech.com From: Cryolitia PukNgae It reports a MIN value -15360 for volume control, but will mute when setting it less than -14208 Tested-by: Guoli An Signed-off-by: Cryolitia PukNgae --- sound/usb/mixer.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c index 5fcf1117777d1a1423806ea139a7692eea3c9ee8..34bcbfd8b54e66abc0229eefd35= 4eb7bc4c01576 100644 --- a/sound/usb/mixer.c +++ b/sound/usb/mixer.c @@ -1182,6 +1182,13 @@ static void volume_control_quirks(struct usb_mixer_e= lem_info *cval, cval->res =3D 1; } break; + case USB_ID(0x3302, 0x12db): /* MOONDROP Quark2 */ + if (!strcmp(kctl->id.name, "PCM Playback Volume")) { + usb_audio_info(chip, + "set volume quirk for MOONDROP Quark2\n"); + cval->min =3D -14208; /* Mute under it */ + } + break; } } =20 --=20 2.51.0