> -----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