Skip to content

[BUG] Lenovo ThinkPad X12 Detachable Gen 2 (21LK001LGE): INT3472 discrete missing board-data / broken _DEP for OV8856 rear camera #451

Description

@haju-ecos

acpidump.bin.gz


[BUG] Lenovo ThinkPad X12 Detachable Gen 2 (21LK001LGE): INT3472 discrete missing board-data / broken _DEP for OV8856 rear camera


Description:

Hello,

I am trying to get the camera system working on the new Lenovo ThinkPad X12 Detachable Gen 2 under Linux (Kernel 7.1.2/7.6.2).

While the front camera (Chicony USB UVC) works out of the box, the rear camera (OmniVision OV8856, ACPI ID: OVTI8856:00) fails to probe with an I2C read timeout (error -5).

Hardware & Environment:

  • System: Lenovo ThinkPad X12 Detachable Gen 2 [1.1.5]
  • DMI board_name / product_name: 21LK001LGE
  • Platform: Intel Meteor Lake (Core Ultra)
  • Sensor: OmniVision OV8856 (OVTI8856:00)
  • Kernel: Custom Gentoo build (v7.1.2 / v7.6.2)

Symptoms & Logs:

Upon boot, the ov8856 driver attempts to probe but times out on i2c_designware.2 [2.1.8]:

[   12.129093] i2c_designware i2c_designware.2: controller timed out
[   12.129110] ov8856 i2c-OVTI8856:00: failed to find sensor: -5
[   12.129125] ov8856 i2c-OVTI8856:00: probe with driver ov8856 failed with error -5

During earlier debugging, intel_skl_int3472_discrete loaded but threw the following warning [1.2.8, 2.4.4]:

[ 3453.889943] int3472-discrete INT3472:01: INT3472 seems to have no dependents.

Because of this missing ACPI dependency (_DEP / _PLD), the driver failed to map any power regulators or clocks to the sensor [2.3.2, 2.4.4].

Debugging & Root Cause Analysis:

  1. Bypassing the ACPI dependency bug:
    We patched drivers/platform/x86/intel/int3472/common.c in skl_int3472_get_sensor_adev_and_name to include a manual fallback for "OVTI8856" when acpi_dev_get_next_consumer_dev returns NULL.
    With this patch, the driver successfully binds to INT3472:01 without throwing any warnings.

  2. Missing Board-Data:
    Even though the driver successfully binds with the fallback patch, the ov8856 sensor still times out with -5. This is because there is no matching DMI board-data entry for 21LK001LGE in drivers/platform/x86/intel/int3472/discrete.c [3.4.4].
    The driver does not know which physical GPIO pins to toggle (reset/powerdown) or which clock to register, leaving the camera unpowered [3.1.1, 3.4.4].

Attached Files:

I have attached the acpidump from this system (acpidump.bin).

Could you please help analyze the ACPI tables to extract the correct GPIO/clock configuration and add the corresponding DMI board-data quirk for the ThinkPad X12 Detachable Gen 2 (21LK001LGE) to discrete.c? [3.4.4]

Thank you very much for your help!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions