]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ACPI: scan: Honor _DEP for Intel CVS devices
authorMiguel Vadillo <miguel.vadillo@intel.com>
Mon, 1 Jun 2026 19:40:40 +0000 (12:40 -0700)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 8 Jun 2026 12:19:30 +0000 (14:19 +0200)
CVS (Computer Vision Sensing) is an ACPI-enumerated device that sits
inline in the CSI-2 path between the camera sensor and Intel IPU.
On platforms where CVS is present, the camera sensor's ACPI node
declares a _DEP dependency on the CVS device.

The CVS driver must be fully initialized before camera sensor drivers
probe, because CVS controls the CSI-2 link ownership handshake (via
GPIO REQ/RESP), the MIPI/CSI-2 lane configuration, and the camera
power domain. Without CVS ready, the sensor driver can bind but the
CSI-2 stream will not function correctly.

The CVS driver calls acpi_dev_clear_dependencies() at the end of its
probe() to unblock waiting consumers once it is ready.

Move the CVS HIDs from acpi_ignore_dep_ids[] to acpi_honor_dep_ids[]
so that camera sensor enumeration is deferred until the CVS driver has
finished probing, matching the behavior already in place for IVSC.

Signed-off-by: Miguel Vadillo <miguel.vadillo@intel.com>
Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Link: https://patch.msgid.link/20260601194040.18223-1-miguel.vadillo@intel.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/scan.c

index 530547cda8b2866ad1aa39dc3a26a66d8ffa3df1..1463eb3a4f6efc11714e812dc42e13d53878acc4 100644 (file)
@@ -848,8 +848,6 @@ static bool acpi_info_matches_ids(struct acpi_device_info *info,
 static const char * const acpi_ignore_dep_ids[] = {
        "PNP0D80", /* Windows-compatible System Power Management Controller */
        "INT33BD", /* Intel Baytrail Mailbox Device */
-       "INTC10DE", /* Intel CVS LNL */
-       "INTC10E0", /* Intel CVS ARL */
        "LATT2021", /* Lattice FW Update Client Driver */
        NULL
 };
@@ -861,6 +859,9 @@ static const char * const acpi_honor_dep_ids[] = {
        "INTC1095", /* IVSC (ADL) driver must be loaded to allow i2c access to camera sensors */
        "INTC100A", /* IVSC (RPL) driver must be loaded to allow i2c access to camera sensors */
        "INTC10CF", /* IVSC (MTL) driver must be loaded to allow i2c access to camera sensors */
+       "INTC10DE", /* CVS (LNL) driver must be loaded to allow camera streaming */
+       "INTC10E0", /* CVS (ARL) driver must be loaded to allow camera streaming */
+       "INTC10E1", /* CVS (PTL) driver must be loaded to allow camera streaming */
        "RSCV0001", /* RISC-V PLIC */
        "RSCV0002", /* RISC-V APLIC */
        "RSCV0005", /* RISC-V SBI MPXY MBOX */