Public bug reported:

His is the hardware:

Laptop: Lenovo Legion 7 16IAX7
Audio codec: Realtek ALC287
Codec subsystem ID: 0x17aa3874
Smart amp ACPI HID: CSC3551 / CS35L41

Known Working/Related Quirk:

Nearby supported Lenovo board appears to be 17AA386F.
Using snd-hda-intel model alias makes Realtek pick that quirk:
`options snd-hda-intel model=17aa:386f`. 

Installed Mint / Ubuntu OEM Kernel

```
Kernel: 6.17.0-1025-oem

/proc/asound/card0/codec#0:
Codec: Realtek ALC287
Subsystem Id: 0x17aa3874
```

I tried setting the realtek alias like this:
After setting /etc/modprobe.d/legion-audio.conf to:
options snd-hda-intel model=17aa:386f

dmesg shows:
snd_hda_codec_alc269 hdaudioC0D0: ALC287: picked fixup for alias SSID 17aa:386f

But CS35L41 Amp Still Fails:

dmesg:
cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: Failed property cirrus,dev-index: -22
cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: error -EINVAL: Platform not supported
cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: probe with driver cs35l41-hda failed 
with error -22
cs35l41-hda i2c-CSC3551:00-cs35l41-hda.1: Failed property cirrus,dev-index: -22
cs35l41-hda i2c-CSC3551:00-cs35l41-hda.1: error -EINVAL: Platform not supported
cs35l41-hda i2c-CSC3551:00-cs35l41-hda.1: probe with driver cs35l41-hda failed 
with error -22


I tried to find anything related to DSDs for CS35L41 and couldn't find anything.

Command:
`sudo dmesg | grep -i 'Adding DSD'`

Result:
`No output`

I also tried this with a bunch of other distros (albeit on live USB
sticks).

Linux Mint installed system:
- Kernel: 6.17.0-1025-oem
- Built-in speakers fail
- Same CS35L41 errors

Linux Mint live USB:
- Kernel: 6.14.0-037-generic
- Built-in speakers fail
- Same CS35L41 errors

Ubuntu live USB:
- Built-in speakers fail
- Same CS35L41 errors

Fedora live USB:
- Kernel: 6.19.10-300.fc44.x86_64
- Built-in speakers fail
- Same CS35L41 errors

I tried with Bluetooth audio and headphones and they work, so userspace audio 
routing/codecs are functional.
I am constantly seeing the amp probe fail with missing 
cirrus,dev-index/platform data.

The real board SSID is 17AA3874, while a nearby Legion board 17AA386F
appears to have existing support.

Last but not the least, i was searching for this online and i could see
this:

https://codebrowser.dev/linux/linux/sound/hda/codecs/realtek/alc269.c.html#7242
(this is probably why the realek alias was picked up.

It may also need a Realtek ALC287 quirk entry 
SND_PCI_QUIRK(0x17aa, 0x3874, "Legion 7 16IAX7", ALC287_FIXUP_CS35L41_I2C_2)

and in 
https://codebrowser.dev/linux/linux/sound/hda/codecs/side-codecs/cs35l41_hda_property.c.html#125
 (adjacent to this i think?)

Please bear with me as this is my first bug report and I am happy to
provide any other information as well.

I have also created a bug ticket in the kernel.org bugzilla:
https://bugzilla.kernel.org/show_bug.cgi?id=221663

** Affects: linux (Ubuntu)
     Importance: Undecided
         Status: New

** Bug watch added: Linux Kernel Bug Tracker #221663
   https://bugzilla.kernel.org/show_bug.cgi?id=221663

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

Title:
  Lenovo Legion 7 16IAX7 17AA3874: CS35L41 amps fail with missing
  cirrus,dev-index

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


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

Reply via email to