[PATCH v2] media: ipu-bridge: add the OV13858 rear sensor
From: Sergey Lebedev
Date: Sun Sep 13 2026 - 10:21:48 EST
The Microsoft Surface Pro 11 for Business (Intel Lunar Lake, IPU7) carries
an OV13858 as its rear sensor, enumerated as ACPI device OVTID858. That
HID is not in ipu_supported_sensors[], so ipu_bridge_connect_sensors()
passes over it and the IPU is left with an empty graph:
intel-ipu7 0000:00:05.0: no subdev found in graph
Nothing is logged about the sensor having been passed over, which makes
the failure hard to attribute: the ACPI device is present and enabled and
the i2c client exists.
ov13858 declares two link frequencies, in this order:
#define OV13858_NUM_OF_LINK_FREQS 2
#define OV13858_LINK_FREQ_540MHZ 540000000ULL
#define OV13858_LINK_FREQ_270MHZ 270000000ULL
With the entry added the bridge connects the sensor and the graph is
built:
intel-ipu7: Found supported sensor OVTID858:00 (\_SB.PC00.I2C3.CAMR)
intel_ipu7_isys: bind ov13858 1-0010 nlanes is 4 port is 0
- entity 247: ov13858 1-0010 (1 pad, 1 link, 0 routes)
device node name /dev/v4l-subdev5
pad0: SOURCE
[stream:0 fmt:SGRBG10_1X10/4224x3136 field:none]
-> "Intel IPU7 CSI2 0":0 [ENABLED,IMMUTABLE]
and libcamera captures from it, 30 fps at its own choice of 4220x3136 out
of the sensor's 4224x3136.
The rear camera on this hardware was reported dead publicly by German
Pablo Lindo, who traced it to int3472 not recognising GPIO type 0x08:
https://lore.kernel.org/linux-media/20260903081557.16603-1-germanpapulindez@xxxxxxxxx/
That is a different cause of the same symptom, fixed separately by
"platform/x86: int3472: support the POWER1 GPIO type", which is in
linux-next and not yet in media/next. The missing bridge entry is the
next one along. The sensor also needs power sequencing the in-tree
ov13858 driver does not do on this platform; that is a separate patch
and not a prerequisite for this one to be correct.
Signed-off-by: Sergey Lebedev <lsa.uz@xxxxx>
---
v1: https://lore.kernel.org/linux-media/20260913100932.92087-1-lsa.uz@xxxxx/
v2: no functional change. The Media CI robot flagged one over-75 line in the
commit message, and fixing only that moved the warning to the next quoted
log line, so both are shortened: the PCI address is dropped from the
intel-ipu7 line and the full device path from the intel_ipu7_isys one.
What the lines say is unchanged; only this machine's slot numbering is
gone. checkpatch is now silent.
drivers/media/pci/intel/ipu-bridge.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/media/pci/intel/ipu-bridge.c b/drivers/media/pci/intel/ipu-bridge.c
index 7e65491..8a16c81 100644
--- a/drivers/media/pci/intel/ipu-bridge.c
+++ b/drivers/media/pci/intel/ipu-bridge.c
@@ -88,6 +88,8 @@ static const struct ipu_sensor_config ipu_supported_sensors[] = {
IPU_SENSOR_CONFIG("OVTI08A1", 1, 500000000),
/* Omnivision OV08x40 */
IPU_SENSOR_CONFIG("OVTI08F4", 3, 400000000, 749000000, 800000000),
+ /* Omnivision OV13858 */
+ IPU_SENSOR_CONFIG("OVTID858", 2, 540000000, 270000000),
/* Omnivision OV13B10 */
IPU_SENSOR_CONFIG("OVTI13B1", 1, 560000000),
IPU_SENSOR_CONFIG("OVTIDB10", 1, 560000000),
--
2.50.1 (Apple Git-155)