From: Takashi Iwai <tiwai@suse.de>
To: "René Rebe" <rene@exactco.de>
Cc: linux-sound@vger.kernel.org, Takashi Iwai <tiwai@suse.com>,
Kailang Yang <kailang@realtek.com>
Subject: Re: [PATCH] fixup realtek/alc288 headphone for MS Surface 2, 3 and
Date: Mon, 17 Nov 2025 17:20:03 +0100 [thread overview]
Message-ID: <87ikf8fx70.wl-tiwai@suse.de> (raw)
In-Reply-To: <20251116.162633.1272923634893984527.rene@exactco.de>
On Sun, 16 Nov 2025 16:26:33 +0100,
René Rebe wrote:
>
> The Surface Pro 2 and 3 have a strage frequency response and miss most
> of the bass. I discovered connecting the HP out to the main DAC fixes
> this. Maybe the other is mono or whatever strangely mixed signal for
> the built-in speakers?
>
> I later noticed the Lenovo Ideapad 720S (AMD) exhibited the same
> problem, so this may be a more wide-spread general bug w/ Realtek
> codecs and the hda_auto_parser, ...
Usually in a case like this, we provide a fixed wiring by a static DAC
table, or do some other tricks instead of directly writing a verb.
Could you give the alsa-info.sh outputs from those?
thanks,
Takashi
>
> Signed-off-by: René Rebe <rene@exactco.de>
>
> diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c
> index 4aec5067c59d..81ac86b65796 100644
> --- a/sound/hda/codecs/realtek/alc269.c
> +++ b/sound/hda/codecs/realtek/alc269.c
> @@ -2259,6 +2259,17 @@ static void alc282_fixup_asus_tx300(struct hda_codec *codec,
> }
> }
>
> +static void alc288_fixup_headset(struct hda_codec *codec,
> + const struct hda_fixup *fix, int action)
> +{
> + if (action == HDA_FIXUP_ACT_INIT) {
> + /* Surface Pro? */
> + int nid = codec->core.vendor_id == 0x10ec0280 ? 0x15 : 0x21;
> + /* DAC node 0x0c is giving low bass output, reverse default order. */
> + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_CONNECT_SEL, 1);
> + }
> +}
> +
> static void alc290_fixup_mono_speakers(struct hda_codec *codec,
> const struct hda_fixup *fix, int action)
> {
> @@ -3483,6 +3495,7 @@ enum {
> ALC283_FIXUP_SENSE_COMBO_JACK,
> ALC282_FIXUP_ASUS_TX300,
> ALC283_FIXUP_INT_MIC,
> + ALC288_FIXUP_HEADSET,
> ALC290_FIXUP_MONO_SPEAKERS,
> ALC290_FIXUP_MONO_SPEAKERS_HSJACK,
> ALC290_FIXUP_SUBWOOFER,
> @@ -4245,6 +4258,10 @@ static const struct hda_fixup alc269_fixups[] = {
> .chained = true,
> .chain_id = ALC269_FIXUP_LIMIT_INT_MIC_BOOST
> },
> + [ALC288_FIXUP_HEADSET] = {
> + .type = HDA_FIXUP_FUNC,
> + .v.func = alc288_fixup_headset,
> + },
> [ALC290_FIXUP_SUBWOOFER_HSJACK] = {
> .type = HDA_FIXUP_PINS,
> .v.pins = (const struct hda_pintbl[]) {
> @@ -6872,6 +6889,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
> SND_PCI_QUIRK(0x10ec, 0x12cc, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
> SND_PCI_QUIRK(0x10ec, 0x12f6, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
> SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-SZ6", ALC269_FIXUP_ASPIRE_HEADSET_MIC),
> + SND_PCI_QUIRK(0x1414, 0x9c20, "Microsoft Surface Pro 2/3", ALC288_FIXUP_HEADSET),
> SND_PCI_QUIRK(0x144d, 0xc109, "Samsung Ativ book 9 (NP900X3G)", ALC269_FIXUP_INV_DMIC),
> SND_PCI_QUIRK(0x144d, 0xc169, "Samsung Notebook 9 Pen (NP930SBE-K01US)", ALC298_FIXUP_SAMSUNG_AMP),
> SND_PCI_QUIRK(0x144d, 0xc176, "Samsung Notebook 9 Pro (NP930MBE-K04US)", ALC298_FIXUP_SAMSUNG_AMP),
> @@ -7053,6 +7071,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
> SND_PCI_QUIRK(0x17aa, 0x3801, "Lenovo Yoga9 14IAP7", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN),
> HDA_CODEC_QUIRK(0x17aa, 0x3802, "DuetITL 2021", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS),
> SND_PCI_QUIRK(0x17aa, 0x3802, "Lenovo Yoga Pro 9 14IRP8", ALC287_FIXUP_TAS2781_I2C),
> + SND_PCI_QUIRK(0x17aa, 0x3812, "Lenovo Ideapad 720S", ALC288_FIXUP_HEADSET),
> SND_PCI_QUIRK(0x17aa, 0x3813, "Legion 7i 15IMHG05", ALC287_FIXUP_LEGION_15IMHG05_SPEAKERS),
> SND_PCI_QUIRK(0x17aa, 0x3818, "Lenovo C940 / Yoga Duet 7", ALC298_FIXUP_LENOVO_C940_DUET7),
> SND_PCI_QUIRK(0x17aa, 0x3819, "Lenovo 13s Gen2 ITL", ALC287_FIXUP_13S_GEN2_SPEAKERS),
>
> --
> René Rebe, ExactCODE GmbH, Berlin, Germany
> https://exactco.de | https://t2linux.com | https://rene.rebe.de
next prev parent reply other threads:[~2025-11-17 16:20 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-16 15:26 [PATCH] fixup realtek/alc288 headphone for MS Surface 2, 3 and René Rebe
2025-11-17 16:20 ` Takashi Iwai [this message]
2025-11-17 20:07 ` René Rebe
2025-11-19 15:13 ` Takashi Iwai
2025-11-19 15:44 ` Takashi Iwai
2025-11-19 17:17 ` René Rebe
2025-11-20 6:52 ` Takashi Iwai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ikf8fx70.wl-tiwai@suse.de \
--to=tiwai@suse.de \
--cc=kailang@realtek.com \
--cc=linux-sound@vger.kernel.org \
--cc=rene@exactco.de \
--cc=tiwai@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.