intel / intel/ipu6-drivers

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

Open
#451 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
251
Forks
75
PR merge metrics
No merged PRs in 30d

Description

[acpidump.bin.gz](https://github.com/user-attachments/files/29594381/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]:
```text
[ 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]:
```text
[ 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!

Contributor guide

Open the contributing guide

Research direction

Start by analyzing the attached acpidump.bin.gz and reading drivers/platform/x86/intel/int3472/common.c, especially skl_int3472_get_sensor_adev_and_name, and discrete.c. Confirm the ACPI dependency and OV8856 GPIO/clock details, then add the 21LK001LGE board-data quirk so the rear sensor powers up and probes without the I2C timeout.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, linux
Domain
computer-vision, operating-systems
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.