https://bugzilla.kernel.org/show_bug.cgi?id=215993 Bug ID: 215993 Summary: Serial Bus Multi Instantiate driver fails to allocate SPI device CSC3551:00 Product: Drivers Version: 2.5 Kernel Version: 5.18-rc7 Hardware: All OS: Linux Tree: Mainline Status: NEW Severity: normal Priority: P1 Component: Platform_x86 Assignee: drivers_platform_x86@xxxxxxxxxxxxxxxxxxxx Reporter: matt.perlick@xxxxxxxxx Regression: No Created attachment 300984 --> https://bugzilla.kernel.org/attachment.cgi?id=300984&action=edit Boot Dmesg Distribution: Manjaro CPU: Intel 12th gen i5-1240P Kernel version: 5.18-rc7 Problem Description: TLDR: I think ACPI device HID=CSC3551 should be supported with a new driver but dmesg shows: Serial bus multi instantiate pseudo device driver CSC3551:00: error -ENODEV: failed to allocate SPI device CSC3551:00 from ACPI: -19 Is this a bug in the module? I've been working on getting internal speakers functional on Asus Zenbook UX3402ZA. After ruling out ALSA issues and ALC294 codec configuration, I found out this machine has two amp devices (Cirrus Logic CS35l41?) connected over SPI. These devices are declared under a single ACPI node with HID=CSC3551. I found a patch series for supporting this particular ACPI node in the LKML ( https://lore.kernel.org/lkml/20220121143254.6432-7-sbinding@xxxxxxxxxxxxxxxxxxxxx/T/ ). It requires a special driver because declaring multiple SPI devices in one ACPI node was not previously supported. Looking at the Linux source, I believe this patch has been included in all the 5.18 release candidates. I've compiled rc7 and made sure to set the .config file to include the new module CONFIG_SERIAL_MULTI_INSTANTIATE=y. With this newly compiled kernel, I see this error in dmesg: Serial bus multi instantiate pseudo device driver CSC3551:00: error -ENODEV: failed to allocate SPI device CSC3551:00 from ACPI: -19 Could this be a bug in the module? I'm not sure how to proceed from here. Any advice is appreciated. dmesg: Included as attachment ACPI dsdt.dsl Node: Scope (_SB.PC00.SPI0) { Device (SPK1) { Name (_HID, "CSC3551") // _HID: Hardware ID Name (_SUB, "10431E02") // _SUB: Subsystem ID Name (_UID, One) // _UID: Unique ID Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (SBUF, ResourceTemplate () { SpiSerialBusV2 (0x0000, PolarityLow, FourWireMode, 0x08, ControllerInitiated, 0x003D0900, ClockPolarityLow, ClockPhaseFirst, "\\_SB.PC00.SPI0", 0x00, ResourceConsumer, , Exclusive, ) SpiSerialBusV2 (0x0001, PolarityLow, FourWireMode, 0x08, ControllerInitiated, 0x003D0900, ClockPolarityLow, ClockPhaseFirst, "\\_SB.PC00.SPI0", 0x00, ResourceConsumer, , Exclusive, ) GpioIo (Exclusive, PullUp, 0x0000, 0x0000, IoRestrictionOutputOnly, "\\_SB.GPI0", 0x00, ResourceConsumer, , ) { // Pin list 0x0156 } GpioIo (Exclusive, PullDown, 0x0000, 0x0000, IoRestrictionOutputOnly, "\\_SB.GPI0", 0x00, ResourceConsumer, , ) { // Pin list 0x0065 } GpioIo (Exclusive, PullDown, 0x0000, 0x0000, IoRestrictionInputOnly, "\\_SB.GPI0", 0x00, ResourceConsumer, , ) { // Pin list 0x0165 } GpioIo (Shared, PullUp, 0x0064, 0x0000, IoRestrictionInputOnly, "\\_SB.GPI0", 0x00, ResourceConsumer, , ) { // Pin list 0x0064 } GpioInt (Edge, ActiveBoth, Shared, PullUp, 0x0064, "\\_SB.GPI0", 0x00, ResourceConsumer, , ) { // Pin list 0x0064 } }) Return (SBUF) /* \_SB_.PC00.SPI0.SPK1._CRS.SBUF */ } Method (_STA, 0, NotSerialized) // _STA: Status { If ((AMPP == One)) { Return (0x0F) } Return (Zero) } Method (_DIS, 0, NotSerialized) // _DIS: Disable Device { } } } -- You may reply to this email to add a comment. You are receiving this mail because: You are watching the assignee of the bug.