Re: [PATCH v1 0/6] ACPI: scan: MIPI DiSco for Imaging support

From: Sakari Ailus
Date: Fri Jun 09 2023 - 05:59:31 EST


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