Re: [PATCH v1 0/2] i2c: qcom-cci, media: ov02c10: Fix camera power cycling

From: Birk Skyum

Date: Thu Oct 22 2026 - 10:16:09 EST


On Thu, 22 Oct 2026 12:44:16 +0530, Saikiran <bjsaikiran@xxxxxxxxx> wrote:
> Tested on Lenovo Yoga Slim 7x (Snapdragon X Elite): 20 consecutive Kamoso
> camera open/close cycles. The sensor entered runtime-active on each open and
> returned to runtime-suspended on each close.

I ran this series through the restart test from my CCI series [1] on a
Yoga Slim 7x with 7.3. 1/2 applies as posted. 2/2 is against a tree
with an extra delay at the top of ov02c10_power_on(), so I made its
three changes on 7.3 by hand. Each cycle streams five frames with
v4l2-ctl, waits, and starts again, 20 cycles per pause:

pause 0.05 s 0.1 s 0.2 s 0.5 s 1 s 2 s
7.3 19/20 19/20 19/20 19/20 15/20 0/20
+ 1/2 19/20 19/20 19/20 19/20 12/20 0/20
+ 1/2, 2/2 18/20 19/20 18/20 19/20 17/20 0/20

Every failure is the first CCI write timing out ("master 1 queue 0
timeout"). 1/2 does select the sleep state while the controller is
runtime suspended (pinctrl-handles shows "sleep", and "default" once it
resumes), but with the 1 s autosuspend the controller never suspends
when the camera is closed and opened again within a second. After a
longer pause the restart works without the series as well, which is
the case 20 Kamoso cycles cover.

On this machine both bus lines read low while the sensor is off, with
the pull-ups on, so the unpowered sensor clamps them, and both read
high once it is powered again. The CCI queue still stays on its first
command until cci_reset(). The pin levels and queue registers are in
my reply to Loic [2], where a reset on resume plus one retry of a
message after a timeout made 120 of 120 restarts work.

[1] https://lore.kernel.org/r/20261020193946.51478-1-birk.skyum@xxxxx
[2] https://lore.kernel.org/r/179261145907.36927.5158021314822941179@xxxxx