The cs35l41 driver does not work on several laptop models that lack the _DSD block.
XiaoYan Li
lxy.lixiaoyan at gmail.com
Mon Aug 22 09:19:39 CEST 2022
Hi,
Several laptop models employ CSC3551 but lack a corresponding _DSD
block in the ACPI table, including but not limited to:
- Zenbook S 13 OLED (UM5302TA)
- HP Envy x360 ey0xxx
- Lenovo Legion 7i Gen 7
Here are some relevant links:
- https://bugzilla.kernel.org/show_bug.cgi?id=216194
- https://lore.kernel.org/all/20220703053225.2203-1-xw897002528@gmail.com/T/#u
- https://lore.kernel.org/all/20220811152923.10143-1-faenkhauser@gmail.com/T/#u
The following is a snippet of the ACPI table from my laptop (UM5302TA):
---
Device (SPKR)
{
Name (_HID, "CSC3551") // _HID: Hardware ID
Name (_SUB, "10431F12") // _SUB: Subsystem ID
Name (_UID, One) // _UID: Unique ID
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Name (RBUF, ResourceTemplate ()
{
I2cSerialBusV2 (0x0040, ControllerInitiated, 0x000F4240,
AddressingMode7Bit, "\\_SB.I2CA",
0x00, ResourceConsumer, , Exclusive,
)
I2cSerialBusV2 (0x0041, ControllerInitiated, 0x000F4240,
AddressingMode7Bit, "\\_SB.I2CA",
0x00, ResourceConsumer, , Exclusive,
)
GpioIo (Exclusive, PullDown, 0x0000, 0x0000,
IoRestrictionOutputOnly,
"\\_SB.GPIO", 0x00, ResourceConsumer, ,
)
{ // Pin list
0x0004
}
GpioIo (Exclusive, PullUp, 0x0000, 0x0000, IoRestrictionInputOnly,
"\\_SB.GPIO", 0x00, ResourceConsumer, ,
)
{ // Pin list
0x009B
}
GpioIo (Shared, PullUp, 0x0064, 0x0000, IoRestrictionInputOnly,
"\\_SB.GPIO", 0x00, ResourceConsumer, ,
)
{ // Pin list
0x0009
}
GpioInt (Edge, ActiveBoth, Shared, PullUp, 0x0064,
"\\_SB.GPIO", 0x00, ResourceConsumer, ,
)
{ // Pin list
0x0009
}
})
Return (RBUF) /* \_SB_.I2CA.SPKR._CRS.RBUF */
}
Method (_STA, 0, NotSerialized) // _STA: Status
{
If ((AMPD == Zero))
{
Return (Zero)
}
Else
{
Return (0x0F)
}
}
Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
{
}
}
---
The Cirrus driver for Windows works perfectly. I don't see anything
related to the _DSD stuff in the INF files that came with the driver
(if I read them correctly).
For reference, here are the two INF files from UM5302TA:
https://gist.github.com/lixiaoyan/7e1f11b153b38339007f6ec9aa149f81
I think we should support those devices out of the box, as the Windows
driver does. This problem does not appear to be limited to a single
model; rather, it appears to be a widespread issue. At least, we
should add some quirks for the models listed above.
Thanks.
(resend after joining the mailing list)
More information about the Alsa-devel
mailing list