Comment 724 for bug 1958019

Revision history for this message
In , cam (cam-linux-kernel-bugs) wrote :

(In reply to toyeisfree from comment #708)
> i'm a normal user and i can be super wrong but... why we say that the bios
> is missing something and in Windows work perfectly without that ?

Because the windows drivers from Lenovo have those values hardcoded into them.

Seems that Cirrus Logic generally expects these properties to be in the ACPI tables even for Windows. Sounds like missing properties is an issue in "older" laptop models. I don't think my model is very old, but could be that the work on it started earlier.

The properties are specific to a given laptop model and having the wrong values could physically damage your speakers. Before I knew this, I hard coded the values into a kernel patch and managed to get my own sound working. Fortunately, my speakers are fine.

I certainly don't know how, but perhaps the drivers could be reverse engineered to discover the values of the properties for a given model, and then you could override the DSDT like this to get your sound working:
https://wiki.debian.org/OverridingDSDT

IIRC, you could then use the Intel HDA early patching to set your laptop to use the quirk of another laptop that uses the cs35l41 quirk so you could get sound working without any changes at all to the kernel to get your sound working.