[PATCH 0/2] media: ipu6: make 1-lane sensors on MCD PHY port B stream (ThinkPad X1 Carbon Gen 11 IR camera)
From: Dan Person
Date: Mon Oct 19 2026 - 17:58:54 EST
The IR camera of the Lenovo ThinkPad X1 Carbon Gen 11 (OmniVision OV9234,
ACPI OVTI9234, one CSI-2 lane on driver port 0) has never produced a frame
on Linux: the sensor streams, the ISYS firmware acknowledges open and start,
the PHY reports ready, the CSI-2 error status stays clear, and every
capture times out.
I traced the sensor's I2C traffic on Windows and Linux (the initialisation
writes are identical), then compared the MCD PHY register tables in
ipu6-isys-mcd-phy.c with the tables embedded in the Windows IPU6 driver.
The Windows driver has no 1-lane table for PHY port B; it programs a
1-lane sensor there with the 2-lane port B set. Doing the same in Linux
makes the sensor stream Y10 644x364 at 30 fps, alongside the 2-lane OV2740
on the other port. The current 1-lane port B table also contains one value
(0x5d060100 in register 0xaa8) that appears in no Windows table; it may be
a transcription error, but I have only tested replacing the whole table.
Patch 1 makes that change and removes the now-unused table. Patch 2 adds
the OV9234 to ipu-bridge. The sensor driver itself is not part of this
series: its mode tables were recovered from the vendor driver, so it is
published out of tree for now at
https://github.com/carboniste-it/ipu6-ir-face for anyone who wants to
write a proper upstream driver. Patch 2 can wait for that if preferred.
Tested on Ubuntu 24.04 HWE kernels 6.14 and 7.0.
Dan Person (2):
media: ipu6: isys: use the port B 2-lane PHY settings for 1-lane
sensors
media: ipu-bridge: Add OmniVision OV9234
drivers/media/pci/intel/ipu-bridge.c | 2 ++
.../media/pci/intel/ipu6/ipu6-isys-mcd-phy.c | 31 ++++---------------
2 files changed, 8 insertions(+), 25 deletions(-)
--
2.53.0