* [RFC PATCH] ALSA: hda/realtek: fix missing chained flag in fixup
@ 2026-11-15 13:22 Sungwoo Kim
2026-11-15 13:26 ` Sungwoo Kim
2026-11-15 13:32 ` sashiko-bot
0 siblings, 2 replies; 4+ messages in thread
From: Sungwoo Kim @ 2026-11-15 13:22 UTC (permalink / raw)
To: Jaroslav Kysela, Takashi Iwai
Cc: Dave Tian, Sungwoo Kim, linux-sound, linux-kernel
The fixup specifies a chain_id but does not set the chained flag,
which prevents the chained fixup from being executed.
Should chained be set to true here?
This was identified through static analysis and has not been tested
on actual hardware.
Signed-off-by: Sungwoo Kim <iam@sung-woo.kim>
---
sound/hda/codecs/realtek/alc269.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c
index 96fa8c2782bb..1be2e609c28d 100644
--- a/sound/hda/codecs/realtek/alc269.c
+++ b/sound/hda/codecs/realtek/alc269.c
@@ -6431,6 +6431,7 @@ static const struct hda_fixup alc269_fixups[] = {
{ 0x1e, 0x411111f0 },
{ }
},
+ .chained = true,
.chain_id = ALC269_FIXUP_DMIC,
},
[ALC269_FIXUP_CZC_TMI] = {
@@ -6449,6 +6450,7 @@ static const struct hda_fixup alc269_fixups[] = {
{ 0x20, 0x8000ffff },
{ }
},
+ .chained = true,
.chain_id = ALC269_FIXUP_DMIC,
},
[ALC269_FIXUP_CZC_L101] = {
@@ -6467,6 +6469,7 @@ static const struct hda_fixup alc269_fixups[] = {
{ 0x1e, 0x411111f0 },
{ }
},
+ .chained = true,
.chain_id = ALC269_FIXUP_DMIC,
},
[ALC269_FIXUP_LEMOTE_A1802] = {
@@ -6485,6 +6488,7 @@ static const struct hda_fixup alc269_fixups[] = {
{ 0x21, 0x03214020 },
{ }
},
+ .chained = true,
.chain_id = ALC269_FIXUP_DMIC,
},
[ALC269_FIXUP_LEMOTE_A190X] = {
@@ -6497,6 +6501,7 @@ static const struct hda_fixup alc269_fixups[] = {
{ 0x1b, 0x0201401f }, /* front lineout */
{ }
},
+ .chained = true,
.chain_id = ALC269_FIXUP_DMIC,
},
[ALC256_FIXUP_INTEL_NUC8_RUGGED] = {
--
2.47.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [RFC PATCH] ALSA: hda/realtek: fix missing chained flag in fixup
2026-11-15 13:22 [RFC PATCH] ALSA: hda/realtek: fix missing chained flag in fixup Sungwoo Kim
@ 2026-11-15 13:26 ` Sungwoo Kim
2026-11-15 13:35 ` Sungwoo Kim
2026-11-15 13:32 ` sashiko-bot
1 sibling, 1 reply; 4+ messages in thread
From: Sungwoo Kim @ 2026-11-15 13:26 UTC (permalink / raw)
To: Jaroslav Kysela, Takashi Iwai; +Cc: Dave Tian, linux-sound, linux-kernel
One more, ALC668_FIXUP_ASUS_Nx51_HEADSET_MODE in alc662.c also has the
same issue (missing .chained=true)
On Sun, Nov 15, 2026 at 8:23 AM Sungwoo Kim <iam@sung-woo.kim> wrote:
>
> The fixup specifies a chain_id but does not set the chained flag,
> which prevents the chained fixup from being executed.
>
> Should chained be set to true here?
>
> This was identified through static analysis and has not been tested
> on actual hardware.
>
> Signed-off-by: Sungwoo Kim <iam@sung-woo.kim>
> ---
> sound/hda/codecs/realtek/alc269.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c
> index 96fa8c2782bb..1be2e609c28d 100644
> --- a/sound/hda/codecs/realtek/alc269.c
> +++ b/sound/hda/codecs/realtek/alc269.c
> @@ -6431,6 +6431,7 @@ static const struct hda_fixup alc269_fixups[] = {
> { 0x1e, 0x411111f0 },
> { }
> },
> + .chained = true,
> .chain_id = ALC269_FIXUP_DMIC,
> },
> [ALC269_FIXUP_CZC_TMI] = {
> @@ -6449,6 +6450,7 @@ static const struct hda_fixup alc269_fixups[] = {
> { 0x20, 0x8000ffff },
> { }
> },
> + .chained = true,
> .chain_id = ALC269_FIXUP_DMIC,
> },
> [ALC269_FIXUP_CZC_L101] = {
> @@ -6467,6 +6469,7 @@ static const struct hda_fixup alc269_fixups[] = {
> { 0x1e, 0x411111f0 },
> { }
> },
> + .chained = true,
> .chain_id = ALC269_FIXUP_DMIC,
> },
> [ALC269_FIXUP_LEMOTE_A1802] = {
> @@ -6485,6 +6488,7 @@ static const struct hda_fixup alc269_fixups[] = {
> { 0x21, 0x03214020 },
> { }
> },
> + .chained = true,
> .chain_id = ALC269_FIXUP_DMIC,
> },
> [ALC269_FIXUP_LEMOTE_A190X] = {
> @@ -6497,6 +6501,7 @@ static const struct hda_fixup alc269_fixups[] = {
> { 0x1b, 0x0201401f }, /* front lineout */
> { }
> },
> + .chained = true,
> .chain_id = ALC269_FIXUP_DMIC,
> },
> [ALC256_FIXUP_INTEL_NUC8_RUGGED] = {
> --
> 2.47.3
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [RFC PATCH] ALSA: hda/realtek: fix missing chained flag in fixup
2026-11-15 13:22 [RFC PATCH] ALSA: hda/realtek: fix missing chained flag in fixup Sungwoo Kim
2026-11-15 13:26 ` Sungwoo Kim
@ 2026-11-15 13:32 ` sashiko-bot
1 sibling, 0 replies; 4+ messages in thread
From: sashiko-bot @ 2026-11-15 13:32 UTC (permalink / raw)
To: Sungwoo Kim; +Cc: linux-sound
Thank you for your contribution! Sashiko AI review found 1 potential
issue to consider:
- [High] ALSA: hda/realtek: chaining ALC269_FIXUP_DMIC clobbers board
pin configs
--
commit c0d3245c2b82a623907d3583db3347a65c5b33dc
Author: Sungwoo Kim <iam@sung-woo.kim>
ALSA: hda/realtek: fix missing chained flag in fixup
This commit sets .chained = true on five Loongson-3 pin fixup entries in
alc269_fixups[] that specify .chain_id = ALC269_FIXUP_DMIC.
> diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c
> index 96fa8c2782bb4..1be2e609c28d0 100644
> --- a/sound/hda/codecs/realtek/alc269.c
> +++ b/sound/hda/codecs/realtek/alc269.c
> @@ -6431,6 +6431,7 @@ static const struct hda_fixup alc269_fixups[] = {
> { 0x1e, 0x411111f0 },
> { }
> },
> + .chained = true,
> .chain_id = ALC269_FIXUP_DMIC,
> },
> [ALC269_FIXUP_CZC_TMI] = {
> @@ -6449,6 +6450,7 @@ static const struct hda_fixup alc269_fixups[] = {
> { 0x20, 0x8000ffff },
> { }
> },
> + .chained = true,
> .chain_id = ALC269_FIXUP_DMIC,
> },
> [ALC269_FIXUP_CZC_L101] = {
> @@ -6467,6 +6469,7 @@ static const struct hda_fixup alc269_fixups[] = {
> { 0x1e, 0x411111f0 },
> { }
> },
> + .chained = true,
> .chain_id = ALC269_FIXUP_DMIC,
> },
> [ALC269_FIXUP_LEMOTE_A1802] = {
> @@ -6485,6 +6488,7 @@ static const struct hda_fixup alc269_fixups[] = {
> { 0x21, 0x03214020 },
> { }
> },
> + .chained = true,
> .chain_id = ALC269_FIXUP_DMIC,
> },
> [ALC269_FIXUP_LEMOTE_A190X] = {
> @@ -6497,6 +6501,7 @@ static const struct hda_fixup alc269_fixups[] = {
> { 0x1b, 0x0201401f }, /* front lineout */
> { }
> },
> + .chained = true,
> .chain_id = ALC269_FIXUP_DMIC,
> },
> [ALC256_FIXUP_INTEL_NUC8_RUGGED] = {
[Severity: High]
Does chaining ALC269_FIXUP_DMIC here overwrite the board-specific pin
configurations on all five machines?
sound/hda/codecs/realtek/alc269.c:alc269_fixups[] {
[ALC269_FIXUP_DMIC] = {
.type = HDA_FIXUP_PINS,
.v.pins = (const struct hda_pintbl[]) {
{ 0x12, 0x99a3092f }, /* int-mic */
{ 0x14, 0x99130110 }, /* speaker */
{ 0x15, 0x0121401f }, /* HP out */
{ 0x18, 0x01a19c20 }, /* mic */
{ }
},
},
}
When __snd_hda_apply_fixup() applies ALC269_FIXUP_DMIC after the primary
fixup, snd_hda_add_pincfg() replaces any existing pin config for the same
NID in codec->driver_pins. For example, in ALC269_FIXUP_CZC_L101, pins
0x12 and 0x15 are disabled because headphone out is on 0x1b and 0x14 is
an external line-out jack, so running ALC269_FIXUP_DMIC re-enables 0x12
and 0x15 and turns 0x14 into an internal speaker.
The unused .chain_id = ALC269_FIXUP_DMIC initializers appear to be
copy-paste remnants from commit f1ec5be17b9a ("ALSA: hda/realtek: Add
alc269/alc662 pin-tables for Loongson-3 laptops") and should be removed
instead of enabled.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261115132215.4084031-2-iam@sung-woo.kim?part=1
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [RFC PATCH] ALSA: hda/realtek: fix missing chained flag in fixup
2026-11-15 13:26 ` Sungwoo Kim
@ 2026-11-15 13:35 ` Sungwoo Kim
0 siblings, 0 replies; 4+ messages in thread
From: Sungwoo Kim @ 2026-11-15 13:35 UTC (permalink / raw)
To: Jaroslav Kysela, Takashi Iwai; +Cc: Dave Tian, linux-sound, linux-kernel
One more, sorry for the multiple followups: CXT_PINCFG_LENOVO_NOTEBOOK
in conexant.c.
On Sun, Nov 15, 2026 at 8:26 AM Sungwoo Kim <iam@sung-woo.kim> wrote:
>
> One more, ALC668_FIXUP_ASUS_Nx51_HEADSET_MODE in alc662.c also has the
> same issue (missing .chained=true)
>
> On Sun, Nov 15, 2026 at 8:23 AM Sungwoo Kim <iam@sung-woo.kim> wrote:
> >
> > The fixup specifies a chain_id but does not set the chained flag,
> > which prevents the chained fixup from being executed.
> >
> > Should chained be set to true here?
> >
> > This was identified through static analysis and has not been tested
> > on actual hardware.
> >
> > Signed-off-by: Sungwoo Kim <iam@sung-woo.kim>
> > ---
> > sound/hda/codecs/realtek/alc269.c | 5 +++++
> > 1 file changed, 5 insertions(+)
> >
> > diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c
> > index 96fa8c2782bb..1be2e609c28d 100644
> > --- a/sound/hda/codecs/realtek/alc269.c
> > +++ b/sound/hda/codecs/realtek/alc269.c
> > @@ -6431,6 +6431,7 @@ static const struct hda_fixup alc269_fixups[] = {
> > { 0x1e, 0x411111f0 },
> > { }
> > },
> > + .chained = true,
> > .chain_id = ALC269_FIXUP_DMIC,
> > },
> > [ALC269_FIXUP_CZC_TMI] = {
> > @@ -6449,6 +6450,7 @@ static const struct hda_fixup alc269_fixups[] = {
> > { 0x20, 0x8000ffff },
> > { }
> > },
> > + .chained = true,
> > .chain_id = ALC269_FIXUP_DMIC,
> > },
> > [ALC269_FIXUP_CZC_L101] = {
> > @@ -6467,6 +6469,7 @@ static const struct hda_fixup alc269_fixups[] = {
> > { 0x1e, 0x411111f0 },
> > { }
> > },
> > + .chained = true,
> > .chain_id = ALC269_FIXUP_DMIC,
> > },
> > [ALC269_FIXUP_LEMOTE_A1802] = {
> > @@ -6485,6 +6488,7 @@ static const struct hda_fixup alc269_fixups[] = {
> > { 0x21, 0x03214020 },
> > { }
> > },
> > + .chained = true,
> > .chain_id = ALC269_FIXUP_DMIC,
> > },
> > [ALC269_FIXUP_LEMOTE_A190X] = {
> > @@ -6497,6 +6501,7 @@ static const struct hda_fixup alc269_fixups[] = {
> > { 0x1b, 0x0201401f }, /* front lineout */
> > { }
> > },
> > + .chained = true,
> > .chain_id = ALC269_FIXUP_DMIC,
> > },
> > [ALC256_FIXUP_INTEL_NUC8_RUGGED] = {
> > --
> > 2.47.3
> >
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-11-15 13:36 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-15 13:22 [RFC PATCH] ALSA: hda/realtek: fix missing chained flag in fixup Sungwoo Kim
2026-11-15 13:26 ` Sungwoo Kim
2026-11-15 13:35 ` Sungwoo Kim
2026-11-15 13:32 ` sashiko-bot
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.