[Bug 215993] New: Serial Bus Multi Instantiate driver fails to allocate SPI device CSC3551:00

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.



[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux