Re: [PATCH 3/3] media: ov02c10: Accept a 26 MHz external clock
From: Tomas Moro
Date: Tue Sep 22 2026 - 02:37:44 EST
Hi Felipe,
First of all, thank you for the good work on this.
I tested this series (v1, all three patches) on a Samsung Galaxy Book3
Pro, whose board feeds the sensor 26 MHz. Without the series the sensor
does not probe:
ov02c10 i2c-OVTI02C1:00: error -EINVAL: external clock 26000000 is not supported
ov02c10 i2c-OVTI02C1:00: probe with driver ov02c10 failed with error -22
Hardware
DMI: SAMSUNG ELECTRONICS CO., LTD. / 960XFG / NP960XFG-KC2IT
BIOS P07RGU.330.240529.ZQ, i7-1360P, IPU6 [8086:a75d]
sensor ACPI HID OVTI02C1, clock 26 MHz (clk_summary)
Software
7.2.6 (linux-cachyos, clang + ThinLTO). ov02c10.c there is identical
to v7.2.6 stable, the three patches applied. Only ov02c10
was rebuilt (out of tree). In-tree intel_ipu6 + intel_ipu6_isys.
libcamera 0.7.2, simple pipeline, GPU soft ISP.
Results
probe OK
controls link_frequency 541666667, pixel_rate 216666666,
2 lanes; get_selection bounds 1928x1092,
crop 1920x1080
streaming 1920x1092 at 40.70 fps, steady, no drops over
several 400-frame runs. That is ~35 % above 30 fps,
which matches the link frequency. Raw SGRBG10 1928x1092 capture works too.
stream start one "csi2-0 error: Frame sync error" every time
first buffer the first dequeued buffer is always empty
orientation image is rotated 180 degrees. This model is not in
the ipu-bridge upside-down DMI list; strings above.
s2idle 7 cycles (rtcwake -m freeze), idle and right after
streaming: all resumed, sensor still bound, capture
works.
s2idle while refused by isys, not a hang becuse the running stream is
streaming wedged afterwards, a new open works:
intel_ipu6_isys.isys intel_ipu6.isys.40: PM: dpm_run_callback(): isys_suspend [intel_ipu6_isys] returns -16
intel_ipu6_isys.isys intel_ipu6.isys.40: PM: failed to suspend: error -16
PM: Some devices failed to suspend, or early wake event detected
PM: suspend exit
intel_ipu6_isys.isys intel_ipu6.isys.40: stream stop time out
intel_ipu6_isys.isys intel_ipu6.isys.40: stream close time out
Same tests with out-of-tree intel-ipu6-psys loaded and bound
(intel/ipu6-drivers 71bddb5, built unmodified against this kernel):
identical results, 4 more s2idle cycles all resumed. The s2idle hang from
intel/ipu6-drivers#381 does not reproduce here on 7.2.6.
Footnote, unrelated to this series: I saw one hard lockup (no trace) on
the first stream after rmmod of intel-ipu6-psys. I think that taking it out
might have given me a corrupt state, had to reboot.
Happy to test v2.
Tested-by: Mars-Wave <tmorolias@xxxxxxxxx> # Samsung Galaxy Book3 Pro NP960XFG (github.com/MarsWave)