Hi @Danniel (@dtl131) ,

Thank you so much for looking into this, I've been without internal
speakers for weeks and it was getting genuinely annoying, so I really
appreciate the workaround and the upstream pointer.

Your suggestion does work, but I had to make one small tweak to get
there. Posting both attempts in case it helps others with this machine.

1. What you suggested: didn't work

        options snd-hda-intel model=17aa:3855

After reboot, still broken:

        snd_hda_codec_alc269 hdaudioC1D0: ALC287: picked fixup  for PCI
SSID 17aa:3811

No DSP1 lines at all. The reason is that model is an array indexed by
card number, and on this laptop the discrete NVIDIA HDA controller wins
card 0:

$ cat /sys/module/snd_hda_intel/parameters/model 
        17aa:3855,(null),(null),...
$ cat /proc/asound/cards
        0 [NVidia         ]: HDA-Intel - HDA NVidia
        1 [PCH            ]: HDA-Intel - HDA Intel PCH

So the SSID alias was applied to the NVIDIA HDMI codec, and the ALC287
(on card 1, hence hdaudioC1D0) never saw it. Worth noting the ordering
isn't stable either — on a previous boot the ALC287 was card 0 and
NVIDIA card 1.

2. What worked: setting the alias on the first two slots, so card
enumeration order doesn't matter:

options snd-hda-intel model=17aa:3855,17aa:3855
$ cat /sys/module/snd_hda_intel/parameters/model
        17aa:3855,17aa:3855,(null),(null),...

        snd_hda_codec_alc269 hdaudioC1D0: ALC287: picked fixup  for alias SSID 
17aa:3855
        cs35l41-hda i2c-CLSA0101:00-cs35l41-hda.0: DSP1: 
cirrus/cs35l41-dsp1-spk-prot-17aa3855.wmfw: format 3 timestamp 0x6022b0f4
        cs35l41-hda i2c-CLSA0101:00-cs35l41-hda.0: DSP1: Firmware: 400a4 
vendor: 0x2 v0.29.0, 2 algorithms
        cs35l41-hda i2c-CLSA0101:00-cs35l41-hda.0: DSP1: 
cirrus/cs35l41-dsp1-spk-prot-17aa3855-spkid0-l0.bin (v1): v0.29.0
        cs35l41-hda i2c-CLSA0101:00-cs35l41-hda.1: DSP1: 
cirrus/cs35l41-dsp1-spk-prot-17aa3855-spkid0-r0.bin (v1): v0.29.0

Both CS35L41 amps load firmware (left and right) and internal speakers
are fully working again on 7.0.0-29-generic. This also confirms the
alias SSID match takes precedence over the PCI SSID one, which is what
makes the workaround viable at all.

Hardware for the record: Lenovo Legion 7 16ITHg6 (82K6), ALC287 codec
SSID 17aa:3855, two CS35L41 over I²C (CLSA0101), Ubuntu 26.04, kernel
7.0.0-29-generic. Regression appeared between 7.0.0-22 (good, matched
codec SSID 17aa:3855) and 7.0.0-27.

Since this is a workaround rather than a fix, is there an SRU planned
for dd074f04e into resolute? Happy to help with any test.


Thanks again!

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2163143

Title:
  [Lenovo Legion 7 16ITHg6 82K6, Realtek ALC287 + 2x CS35L41]
  Regression: internal speakers silent since 7.0.0-27; new PCI SSID
  quirk 17aa:3811 shadows codec SSID quirk 17aa:3855

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2163143/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to