* [PATCH 2/4] ALSA: hda/realtek: Add quirk for Acer Predator PH16-71
2026-08-11 2:48 [PATCH 1/4] ALSA: hda/realtek: Rename Line Out control to Headphone on ThinkPad X1 Carbon 6th Zhang Heng
@ 2026-08-11 2:49 ` Zhang Heng
2026-08-11 6:13 ` Takashi Iwai
2026-08-11 2:49 ` [PATCH 3/4] ALSA: hda/realtek: Add quirk for Lenovo Legion Pro 5 16ADR10 Zhang Heng
` (2 subsequent siblings)
3 siblings, 1 reply; 10+ messages in thread
From: Zhang Heng @ 2026-08-11 2:49 UTC (permalink / raw)
To: tiwai, perex; +Cc: linux-sound, linux-kernel, Zhang Heng
The Acer Predator PH16-71 (subsystem 0x1025:0x166c) with Realtek ALC245
codec has a non-functional headset microphone. Adding the
ALC2XX_FIXUP_HEADSET_MIC quirk resolves the issue.
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=221641
Signed-off-by: Zhang Heng <zhangheng@kylinos.cn>
---
sound/hda/codecs/realtek/alc269.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c
index da9c816b8c4f..445b0ed4ca43 100644
--- a/sound/hda/codecs/realtek/alc269.c
+++ b/sound/hda/codecs/realtek/alc269.c
@@ -7064,6 +7064,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x1025, 0x160e, "Acer PT316-51S", ALC2XX_FIXUP_HEADSET_MIC),
SND_PCI_QUIRK(0x1025, 0x161f, "Acer S40-54", ALC256_FIXUP_ACER_MIC_NO_PRESENCE),
SND_PCI_QUIRK(0x1025, 0x1640, "Acer Aspire A315-44P", ALC256_FIXUP_ACER_SFG16_MICMUTE_LED),
+ SND_PCI_QUIRK(0x1025, 0x166c, "Acer Predator PH16-71", ALC2XX_FIXUP_HEADSET_MIC),
SND_PCI_QUIRK(0x1025, 0x1679, "Acer Nitro 16 AN16-41", ALC2XX_FIXUP_HEADSET_MIC),
SND_PCI_QUIRK(0x1025, 0x169a, "Acer Swift SFG16", ALC256_FIXUP_ACER_SFG16_MICMUTE_LED),
SND_PCI_QUIRK(0x1025, 0x171e, "Acer Nitro ANV15-51", ALC245_FIXUP_ACER_MICMUTE_LED),
--
2.25.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH 3/4] ALSA: hda/realtek: Add quirk for Lenovo Legion Pro 5 16ADR10
2026-08-11 2:48 [PATCH 1/4] ALSA: hda/realtek: Rename Line Out control to Headphone on ThinkPad X1 Carbon 6th Zhang Heng
2026-08-11 2:49 ` [PATCH 2/4] ALSA: hda/realtek: Add quirk for Acer Predator PH16-71 Zhang Heng
@ 2026-08-11 2:49 ` Zhang Heng
2026-08-11 6:13 ` Takashi Iwai
2026-08-11 2:49 ` [PATCH 4/4] ALSA: usb-audio: Fix popping noise on Valeton GP-200 Zhang Heng
2026-08-11 6:12 ` [PATCH 1/4] ALSA: hda/realtek: Rename Line Out control to Headphone on ThinkPad X1 Carbon 6th Takashi Iwai
3 siblings, 1 reply; 10+ messages in thread
From: Zhang Heng @ 2026-08-11 2:49 UTC (permalink / raw)
To: tiwai, perex; +Cc: linux-sound, linux-kernel, Zhang Heng, Efe Yılmaz
The Lenovo Legion Pro 5 16ADR10 (codec SSID 0x17aa:0x3926) suffers from
distorted/crackling speaker output, as only one speaker pin is driven
without proper COEF/amp initialization.
Add HDA_CODEC_QUIRK applying ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN
to enable both speaker pins and proper amp initialization, restoring
clean audio output at all volume levels.
Tested: Both internal speaker pairs are now driven correctly and
distortion is gone; headphone output remains unaffected.
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=221595
Signed-off-by: Zhang Heng <zhangheng@kylinos.cn>
Tested-by: Efe Yılmaz <efe.tcyilmaz@gmail.com>
---
sound/hda/codecs/realtek/alc269.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c
index 445b0ed4ca43..c1c70be8fb8f 100644
--- a/sound/hda/codecs/realtek/alc269.c
+++ b/sound/hda/codecs/realtek/alc269.c
@@ -8075,6 +8075,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x17aa, 0x38b8, "Yoga S780-14.5 proX AMD YC Dual", ALC287_FIXUP_TAS2781_I2C),
SND_PCI_QUIRK(0x17aa, 0x38b9, "Yoga S780-14.5 proX AMD LX Dual", ALC287_FIXUP_TAS2781_I2C),
SND_PCI_QUIRK(0x17aa, 0x38ba, "Yoga S780-14.5 Air AMD quad YC", ALC287_FIXUP_TAS2781_I2C),
+ HDA_CODEC_QUIRK(0x17aa, 0x3926, "Legion Pro 5 16ADR10", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN),
/* Legion R9000P ADR10 shares PCI SSID 17aa:38bb with Yoga S780-14.5 Air AMD quad AAC;
* use codec SSID to distinguish them
*/
--
2.25.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH 4/4] ALSA: usb-audio: Fix popping noise on Valeton GP-200
2026-08-11 2:48 [PATCH 1/4] ALSA: hda/realtek: Rename Line Out control to Headphone on ThinkPad X1 Carbon 6th Zhang Heng
2026-08-11 2:49 ` [PATCH 2/4] ALSA: hda/realtek: Add quirk for Acer Predator PH16-71 Zhang Heng
2026-08-11 2:49 ` [PATCH 3/4] ALSA: hda/realtek: Add quirk for Lenovo Legion Pro 5 16ADR10 Zhang Heng
@ 2026-08-11 2:49 ` Zhang Heng
2026-08-11 6:13 ` Takashi Iwai
2026-08-11 6:12 ` [PATCH 1/4] ALSA: hda/realtek: Rename Line Out control to Headphone on ThinkPad X1 Carbon 6th Takashi Iwai
3 siblings, 1 reply; 10+ messages in thread
From: Zhang Heng @ 2026-08-11 2:49 UTC (permalink / raw)
To: tiwai, perex; +Cc: linux-sound, linux-kernel, Zhang Heng
The Valeton GP-200 guitar multi-effects processor exhibits a continuous
popping noise (~6Hz) during playback and recording. Force implicit
feedback to resolve the issue.
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=221662
Signed-off-by: Zhang Heng <zhangheng@kylinos.cn>
---
sound/usb/quirks.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index 6087daee939d..00b686a6c25b 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -2532,6 +2532,8 @@ static const struct usb_audio_quirk_flags_table quirk_flags_table[] = {
QUIRK_FLAG_ALIGN_TRANSFER),
DEVICE_FLG(0x534d, 0x2109, /* MacroSilicon MS2109 */
QUIRK_FLAG_ALIGN_TRANSFER),
+ DEVICE_FLG(0x84ef, 0x002a, /* Valeton GP-200 */
+ QUIRK_FLAG_GENERIC_IMPLICIT_FB),
DEVICE_FLG(0x84ef, 0x0082, /* Hotone Audio Pulze Mini */
QUIRK_FLAG_MIXER_PLAYBACK_LINEAR_VOL | QUIRK_FLAG_MIXER_CAPTURE_LINEAR_VOL),
--
2.25.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH 1/4] ALSA: hda/realtek: Rename Line Out control to Headphone on ThinkPad X1 Carbon 6th
2026-08-11 2:48 [PATCH 1/4] ALSA: hda/realtek: Rename Line Out control to Headphone on ThinkPad X1 Carbon 6th Zhang Heng
` (2 preceding siblings ...)
2026-08-11 2:49 ` [PATCH 4/4] ALSA: usb-audio: Fix popping noise on Valeton GP-200 Zhang Heng
@ 2026-08-11 6:12 ` Takashi Iwai
2026-08-11 6:27 ` [PATCH v2] " Zhang Heng
3 siblings, 1 reply; 10+ messages in thread
From: Takashi Iwai @ 2026-08-11 6:12 UTC (permalink / raw)
To: Zhang Heng; +Cc: tiwai, perex, linux-sound, linux-kernel, Branislav Klocok
On Tue, 11 Aug 2026 04:48:59 +0200,
Zhang Heng wrote:
>
> The ThinkPad X1 Carbon 6th Gen (ALC285, SSID 17aa:225c) has no physical
> Line Out jack. The 3.5mm headphone jack is wired to the headphone DAC,
> but the ALSA HDA driver names the corresponding control as
> "Line Out Playback Volume" (node 0x02).
>
> PipeWire's ALSA Card Profile (ACP) silences "Line Out" when headphones
> are activated, which incorrectly mutes the headphone output.
>
> Add a quirk to rename the control to "Headphone Playback Volume" via
> alc285_lenovo_dac_rename().
>
> Tested on openSUSE Tumbleweed (kernel 7.1.5):
> - Control renamed successfully, no name collision with "Headphone Playback Switch"
> - Headphone output works across multiple PipeWire/WirePlumber restarts
> and port switches
>
> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=221522
> Signed-off-by: Zhang Heng <zhangheng@kylinos.cn>
> Tested-by: Branislav Klocok <branislav.klocok@orava.sk>
> ---
> sound/hda/codecs/realtek/alc269.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c
> index 6b36c730ce78..da9c816b8c4f 100644
> --- a/sound/hda/codecs/realtek/alc269.c
> +++ b/sound/hda/codecs/realtek/alc269.c
> @@ -2572,6 +2572,13 @@ static void alc282_fixup_asus_tx300(struct hda_codec *codec,
> }
> }
>
> +static void alc285_lenovo_dac_rename(struct hda_codec *codec,
> + const struct hda_fixup *fix, int action)
> +{
> + if (action == HDA_FIXUP_ACT_BUILD)
> + rename_ctl(codec, "Line Out Playback Volume",
> + "Headphone Playback Volume");
> +}
> static void alc290_fixup_mono_speakers(struct hda_codec *codec,
> const struct hda_fixup *fix, int action)
> {
> @@ -6998,6 +7005,10 @@ static const struct hda_fixup alc269_fixups[] = {
> .chained = true,
> .chain_id = ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN,
> },
> + [ALC285_LENOVO_DAC_RENAME] = {
> + .type = HDA_FIXUP_FUNC,
> + .v.func = alc285_lenovo_dac_rename,
> + },
> };
>
> static const struct hda_quirk alc269_fixup_tbl[] = {
> @@ -7956,6 +7967,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
> SND_PCI_QUIRK(0x17aa, 0x224b, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
> SND_PCI_QUIRK(0x17aa, 0x224c, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
> SND_PCI_QUIRK(0x17aa, 0x224d, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
> + SND_PCI_QUIRK(0x17aa, 0x225c, "Lenovo ThinkPad X1 Carbon 6th Gen", ALC285_LENOVO_DAC_RENAME),
> SND_PCI_QUIRK(0x17aa, 0x225d, "Thinkpad T480", ALC269_FIXUP_THINKPAD_LIMIT_INT_MIC_BOOST),
> SND_PCI_QUIRK(0x17aa, 0x2288, "Thinkpad X390", ALC285_FIXUP_THINKPAD_NO_BASS_SPK_HEADSET_JACK),
> SND_PCI_QUIRK(0x17aa, 0x2292, "Thinkpad X1 Carbon 7th", ALC285_FIXUP_THINKPAD_HEADSET_JACK),
Hmm, this patch is broken -- missing the definition of enum
ALC285_LENOVO_DAC_RENAME?
thanks,
Takashi
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH v2] ALSA: hda/realtek: Rename Line Out control to Headphone on ThinkPad X1 Carbon 6th
2026-08-11 6:12 ` [PATCH 1/4] ALSA: hda/realtek: Rename Line Out control to Headphone on ThinkPad X1 Carbon 6th Takashi Iwai
@ 2026-08-11 6:27 ` Zhang Heng
2026-08-11 6:45 ` Takashi Iwai
0 siblings, 1 reply; 10+ messages in thread
From: Zhang Heng @ 2026-08-11 6:27 UTC (permalink / raw)
To: tiwai; +Cc: linux-kernel, linux-sound, perex, Zhang Heng, Branislav Klocok
The ThinkPad X1 Carbon 6th Gen (ALC285, SSID 17aa:225c) has no physical
Line Out jack. The 3.5mm headphone jack is wired to the headphone DAC,
but the ALSA HDA driver names the corresponding control as
"Line Out Playback Volume" (node 0x02).
PipeWire's ALSA Card Profile (ACP) silences "Line Out" when headphones
are activated, which incorrectly mutes the headphone output.
Add a quirk to rename the control to "Headphone Playback Volume" via
alc285_lenovo_dac_rename().
Tested on openSUSE Tumbleweed (kernel 7.1.5):
- Control renamed successfully, no name collision with "Headphone Playback Switch"
- Headphone output works across multiple PipeWire/WirePlumber restarts
and port switches
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=221522
Signed-off-by: Zhang Heng <zhangheng@kylinos.cn>
Tested-by: Branislav Klocok <branislav.klocok@orava.sk>
---
sound/hda/codecs/realtek/alc269.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c
index 6b36c730ce78..48d887d1324f 100644
--- a/sound/hda/codecs/realtek/alc269.c
+++ b/sound/hda/codecs/realtek/alc269.c
@@ -2572,6 +2572,13 @@ static void alc282_fixup_asus_tx300(struct hda_codec *codec,
}
}
+static void alc285_lenovo_dac_rename(struct hda_codec *codec,
+ const struct hda_fixup *fix, int action)
+{
+ if (action == HDA_FIXUP_ACT_BUILD)
+ rename_ctl(codec, "Line Out Playback Volume",
+ "Headphone Playback Volume");
+}
static void alc290_fixup_mono_speakers(struct hda_codec *codec,
const struct hda_fixup *fix, int action)
{
@@ -4289,6 +4296,7 @@ enum {
ALC287_FIXUP_AW88399_I2C_2,
ALC287_FIXUP_LENOVO_LEGION_AW88399,
ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN_HEADSET,
+ ALC285_LENOVO_DAC_RENAME,
};
/* A special fixup for Lenovo C940 and Yoga Duet 7;
@@ -6998,6 +7006,10 @@ static const struct hda_fixup alc269_fixups[] = {
.chained = true,
.chain_id = ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN,
},
+ [ALC285_LENOVO_DAC_RENAME] = {
+ .type = HDA_FIXUP_FUNC,
+ .v.func = alc285_lenovo_dac_rename,
+ },
};
static const struct hda_quirk alc269_fixup_tbl[] = {
@@ -7956,6 +7968,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x17aa, 0x224b, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
SND_PCI_QUIRK(0x17aa, 0x224c, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
SND_PCI_QUIRK(0x17aa, 0x224d, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
+ SND_PCI_QUIRK(0x17aa, 0x225c, "Lenovo ThinkPad X1 Carbon 6th Gen", ALC285_LENOVO_DAC_RENAME),
SND_PCI_QUIRK(0x17aa, 0x225d, "Thinkpad T480", ALC269_FIXUP_THINKPAD_LIMIT_INT_MIC_BOOST),
SND_PCI_QUIRK(0x17aa, 0x2288, "Thinkpad X390", ALC285_FIXUP_THINKPAD_NO_BASS_SPK_HEADSET_JACK),
SND_PCI_QUIRK(0x17aa, 0x2292, "Thinkpad X1 Carbon 7th", ALC285_FIXUP_THINKPAD_HEADSET_JACK),
--
2.25.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH v2] ALSA: hda/realtek: Rename Line Out control to Headphone on ThinkPad X1 Carbon 6th
2026-08-11 6:27 ` [PATCH v2] " Zhang Heng
@ 2026-08-11 6:45 ` Takashi Iwai
0 siblings, 0 replies; 10+ messages in thread
From: Takashi Iwai @ 2026-08-11 6:45 UTC (permalink / raw)
To: Zhang Heng; +Cc: tiwai, linux-kernel, linux-sound, perex, Branislav Klocok
On Tue, 11 Aug 2026 08:27:34 +0200,
Zhang Heng wrote:
>
> The ThinkPad X1 Carbon 6th Gen (ALC285, SSID 17aa:225c) has no physical
> Line Out jack. The 3.5mm headphone jack is wired to the headphone DAC,
> but the ALSA HDA driver names the corresponding control as
> "Line Out Playback Volume" (node 0x02).
>
> PipeWire's ALSA Card Profile (ACP) silences "Line Out" when headphones
> are activated, which incorrectly mutes the headphone output.
>
> Add a quirk to rename the control to "Headphone Playback Volume" via
> alc285_lenovo_dac_rename().
>
> Tested on openSUSE Tumbleweed (kernel 7.1.5):
> - Control renamed successfully, no name collision with "Headphone Playback Switch"
> - Headphone output works across multiple PipeWire/WirePlumber restarts
> and port switches
>
> Closes: https://bugzilla.kernel.org/show_bug.cgi?id=221522
> Signed-off-by: Zhang Heng <zhangheng@kylinos.cn>
> Tested-by: Branislav Klocok <branislav.klocok@orava.sk>
Applied now to for-next branch. Thanks.
Takashi
^ permalink raw reply [flat|nested] 10+ messages in thread