Hi Rafael, On Wed, May 24, 2023 at 08:06:09PM +0200, Rafael J. Wysocki wrote: > On Wed, May 24, 2023 at 1:48 PM Rafael J. Wysocki <rjw@xxxxxxxxxxxxx> wrote: > > > > Hi Folks, > > > > This basically is a re-write of a recent patch series from Sakari: > > > > https://lore.kernel.org/linux-acpi/20230329100951.1522322-1-sakari.ailus@xxxxxxxxxxxxxxx > > > > The general idea is the same - CSI-2 resource descriptors, introduced in > > ACPI 6.4 and defined by > > > > https://uefi.org/specs/ACPI/6.5/06_Device_Configuration.html#camera-serial-interface-csi-2-connection-resource-descriptor > > > > are found and used for creating a set of software nodes that represent the CSI-2 > > connection graph. > > > > These software nodes need to be available before any scan handlers or ACPI drivers > > are bound to any struct acpi_device objects, so all of that is done at the early > > stage of ACPI device enumeration, but unnecessary ACPI namespace walks are avoided. > > > > The CSI-2 software nodes are populated with data extracted from the CSI-2 resource > > descriptors themselves and from device properties defined by the MIPI DiSco for > > Imaging specification (see https://www.mipi.org/specifications/mipi-disco-imaging). > > > > Patches [4,6/6] come from the original series directly, but the other patches have > > been changes substantially, so I've decided to re-start patch series versioning from > > scratch. > > > > This series is based on the patch at > > > > https://patchwork.kernel.org/project/linux-acpi/patch/12223415.O9o76ZdvQC@kreacher/ > > > > applied on top of 6.4-rc3. > > > > Later on, I'll put all of this material into a special git branch for easier > > access. > > The patches are now available from the acpi-mipi-disco-imaging branch > in the linux-pm.git tree at kernel.org. I've been doing some testing on this version. It oopses and that's relatively easy to fix by removing the kfree() that releases memory of the software nodes and properties. It doesn't work with that change either, it would seem like that the _CRS CSI2 data is (most of the time) released before it gets used for creating the software nodes, leading node registration to fail. This appears to be taking place in different processes --- there's a work queue. Moving the release of the _CRS CSI-2 resources to where they are no longer needed makes the system crash early at boot. I've yet to debug this further. -- Regards, Sakari Ailus