From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
To: Saikiran B <bjsaikiran@gmail.com>
Cc: linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org,
rfoss@kernel.org, todor.too@gmail.com,
Bryan O'Donoghue <bod@kernel.org>,
vladimir.zapolskiy@linaro.org, Hans de Goede <hansg@kernel.org>,
sakari.ailus@linux.intel.com, mchehab@kernel.org,
stable@vger.kernel.org
Subject: Re: [PATCH v3 3/3] media: i2c: ov02c10: Use runtime PM autosuspend to avoid brownouts
Date: Tue, 27 Jan 2026 10:50:58 +0000 [thread overview]
Message-ID: <aaab1d32-9375-47d2-8524-e80e076b864e@linaro.org> (raw)
In-Reply-To: <CAAFDt1tsyvtAa84bFK2Hq5yG_F15SUUseBd5Xi-DB8GnUj7+7A@mail.gmail.com>
On 27/01/2026 10:40, Saikiran B wrote:
> Hi Bryan,
>
> Regarding the 1.1s race condition:
>
> I have implemented support for the generic regulator-off-on-delay-us
> property
> in the qcom-rpmh-regulator driver and set the constraint to 2.3s in the
> device tree for the Yoga Slim 7x.
Yes but please listen to me. That is an extraordinary delay being
introduced.
It is indicative of a serious problem we have not root caused. These
LDOs are used in mobile phones which are aggressively designed to save
power all the time.
In fact the whole idea of voting for clocks and bandwidth is it mitigate
the default assumption in these class of devices - switch off the power
first.
What is that 2.3 seconds, why is it needed. "Brownout" but why ? I don't
think we have really established.
> I tested the 1.1s scenario you mentioned, and it is working fine. The
> regulator
> core now correctly blocks the enable call until the physical discharge delay
> has passed, preventing the brownout without needing logic in the camera
> driver.
The physical discharge delay we have _not_ established IMO. Have you
checked the CCI pins ?
I think we should stop pushing patches until a root-cause has been
identified.
For example - we can interrogate the LDO settings via SPMI registers to
see if the LDO is really switched off.
Similarly we can interrogate the LDOs to see if they are set for active
discharge.
A fix might be to make a platform driver to set those bits for the
relevant LDOs absent a firmware fix for the same.
I'm not comfortable pushing changes predicated on papering over an issue
that hasn't been root-caused.
>
> I am going to drop the Autosuspend patch entirely and verify the clean
> driver one last time.
>
> Plan for v4:
> 1. Submit the Regulator/DT fixes separately to linux-arm-msm.
> 2. Submit v4 of this series containing only the cleanup and power-
> sequence fixes.
>
> Thanks for pushing for the correct fix, the regulator approach is indeed
> much cleaner.
>
> Thanks & Regards,
> Saikiran
>
>
> On Tue, 27 Jan 2026, 15:16 Bryan O'Donoghue, <bryan.odonoghue@linaro.org
> <mailto:bryan.odonoghue@linaro.org>> wrote:
>
> On 26/01/2026 17:34, Saikiran wrote:
> > On Qualcomm X1E80100 platforms, the OV02C10 sensor experiences
> brownouts
> > if power-cycled too quickly (< 2.3s) due to slow passive discharge of
> > regulator rails.
> >
> > Implement Runtime PM Autosuspend with a delay of 1000ms. This
> keeps the
> > regulators enabled for a short duration after the device is closed,
> > preventing costly power-off/power-on cycles during rapid user
> > interactions (e.g., browser permission checks).
>
> But if you try to power the sensor 1.1 seconds later what happens ?
>
> With this commit log this submission is a NAK, for example why do I
> want
> this change on an x86 machine ?
>
> We need to root-cause the failure not paper over it.
>
> ---
> bod
>
next prev parent reply other threads:[~2026-01-27 10:51 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-26 17:34 [PATCH v3 0/3] media: i2c: ov02c10: Fix brownouts and power sequence Saikiran
2026-01-26 17:34 ` [PATCH v3 1/3] media: i2c: ov02c10: Fix use-after-free in remove function Saikiran
2026-01-27 10:30 ` Hans de Goede
2026-01-26 17:34 ` [PATCH v3 2/3] media: i2c: ov02c10: Correct power-on sequence and timing Saikiran
2026-01-27 10:40 ` Hans de Goede
2026-01-27 10:47 ` Bryan O'Donoghue
2026-01-27 10:50 ` Hans de Goede
2026-01-26 17:34 ` [PATCH v3 3/3] media: i2c: ov02c10: Use runtime PM autosuspend to avoid brownouts Saikiran
2026-01-27 9:46 ` Bryan O'Donoghue
2026-01-27 10:43 ` Hans de Goede
2026-01-27 10:44 ` Hans de Goede
[not found] ` <CAAFDt1tsyvtAa84bFK2Hq5yG_F15SUUseBd5Xi-DB8GnUj7+7A@mail.gmail.com>
2026-01-27 10:50 ` Bryan O'Donoghue [this message]
[not found] ` <CAAFDt1vKn5ssoTQZduGKb5eOeN74P=FVk9f01go1d-JS71Zt0A@mail.gmail.com>
2026-01-27 11:06 ` Bryan O'Donoghue
2026-01-27 11:11 ` Bryan O'Donoghue
2026-01-27 16:20 ` Saikiran B
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aaab1d32-9375-47d2-8524-e80e076b864e@linaro.org \
--to=bryan.odonoghue@linaro.org \
--cc=bjsaikiran@gmail.com \
--cc=bod@kernel.org \
--cc=hansg@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=rfoss@kernel.org \
--cc=sakari.ailus@linux.intel.com \
--cc=stable@vger.kernel.org \
--cc=todor.too@gmail.com \
--cc=vladimir.zapolskiy@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox