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/#...
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.