RE: [PATCH v3 3/3] ACPI: delay enumeration of devices with a _DEP pointing to INTC1059 device

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

 




> -----Original Message-----
> From: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>
> 
> Hi Wentong,
> 
> On Mon, Mar 27, 2023 at 02:23:08PM +0800, Wentong Wu wrote:
> > Inside IVSC, switching ownership requires an interface with two
> > different hardware modules, ACE and CSI. The software interface to
> > these modules is based on Intel MEI framework. Usually mei client
> > devices are dynamically created, so the info of consumers depending on
> > mei client devices is not present in the firmware tables.
> 
> Ouch.

MEI client devices are not ACPI devices in our case.

> 
> >
> > This causes problems with the probe ordering with respect to drivers
> > for consumers of these mei client devices. But on these camera sensor
> > devices, the ACPI nodes describing the sensors all have a _DEP
> > dependency on the matching INTC1059 ACPI device, so adding INTC1059 to
> > acpi_honor_dep_ids allows solving the probe-ordering problem by
> > delaying the enumeration of ACPI-devices which have a _DEP dependency on
> an INTC1059 device.
> 
> What does the INTC1059 device represent?

This is the IVSC device on which camera sensor has _DEP 

            Device (CVFD)
            {
                Name (_HID, "INTC1059")  // _HID: Hardware ID
                Name (_DDN, "Intel CVF Device")  // _DDN: DOS Device Name
                Method (SID, 1, Serialized)
                {
                    Return (HCID (One))
                }
            }

        Device (LNK1)
        {
            Name (PNIO, Package (0x01)
            {
                "\\_SB.PC00.SPI1.SPFD.CVFD"
            })
            Name (PUSB, Package (0x02)
            {
                "\\_SB.PC00.SPI1.SPFD.CVFD", 
                "\\_SB.PC00.XHCI.RHUB.HS08.VIC0"
            })
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (L1EN)
                {
                    Return (0x0F)
                }
                Else
                {
                    Return (Zero)
                }
            }

            Method (_DEP, 0, NotSerialized)  // _DEP: Dependencies
            {
                If (L1EN)
                {
                    If ((CVFS == 0x02))
                    {
                        Return (PUSB) /* \_SB_.PC00.LNK1.PUSB */
                    }

                    If ((CVFS == One))
                    {
                        Return (PNIO) /* \_SB_.PC00.LNK1.PNIO */
                    }
                    Else
                    {
                        Return (CDEP (L1CL, L1BS))
                    }
                }
                Else
                {
                    Return (Package (0x01)
                    {
                        PC00
                    })
                }
            }
> 
> --
> Sakari Ailus




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux