From: Casey Connolly <casey.connolly@linaro.org>
To: Sumit Garg <sumit.garg@kernel.org>,
Aswin Murugan <aswin.murugan@oss.qualcomm.com>
Cc: u-boot-qcom@groups.io, u-boot@lists.denx.de,
Neil Armstrong <neil.armstrong@linaro.org>,
Tom Rini <trini@konsulko.com>,
Jaehoon Chung <jh80.chung@samsung.com>,
Peng Fan <peng.fan@nxp.com>
Subject: Re: [PATCH 0/3] Qualcomm: rpmh and regulator fixes
Date: Tue, 5 May 2026 15:20:13 +0200 [thread overview]
Message-ID: <c2612a4e-48a2-465e-a338-68e542bde723@linaro.org> (raw)
In-Reply-To: <afRBNIa6wsFXU2VS@sumit-xelite>
On 01/05/2026 07:59, Sumit Garg wrote:
> Hi Casey,
>
> On Mon, Apr 13, 2026 at 01:06:13PM +0200, Casey Connolly wrote:
>> The RPMh API is frustratingly complicated and lacks public
>> documentation. With the Linux drivers being the only available sources
>> but are highly asynchronous and thus hard to translate to U-Boot.
>
> There is new source of synchronous RPMh upstream driver which is being
> pushed to upstream OP-TEE project here [1]. I agree U-Boot single
> threaded execution model requires drivers to be simplified coming from
> highly asynchronous Linux context.
ahh, that's a nice reference to have but still a big hard to follow.
I think this might be a case where it makes sense to diverge more from
Linux. The OP-TEE driver also seems to be asynchronous (just not IRQ
driven).
There's definitely a bunch more unsolved bugs with the U-Boot driver,
restricting it to just handle one cmd per request and only ever use a
single TCS at least we know it works in that configuration. Obviously
not really ideal.
>
> [1] https://github.com/OP-TEE/optee_os/pull/7796
>
>>
>> The main issue seems to relate to sending multiple commands in a single
>> TCS request, currently this is only done by the interconnect driver and
>> while this may not be the underlying cause it seems to be safer to avoid
>> this for now.
>
> Can you share which particular peripheral is being tested here to
> reproduce the issues you are facing?
The repro is just booting Linux on sm8650 HDK after U-Boot's ICC driver
has sent votes. Linux will either hang during rpmh regulator probing or
get RPMh IRQ spammed and then crash.
I spent a bit of time in Trace32 but it didn't seem like I was gonna get
anywhere with that with my current knowledge. If you could advise (maybe
off-list?) on how to actually debug RPMh requests that would be amazing!
Perhaps I should revisit hansei.py? But yeah it would help a lot to get
some pointers on that.
>
>>
>> Adjust the bcm-voter driver to avoid sending multiple commands per
>> write, and additionally adjust how we send RPMh requests as well as
>> improve the cleanup we do prior to booting the OS.
>>
>
> Aswin,
>
> Is there something you can help Casey with this multiple RPMh requests
> issue?
>
>> Lastly, add a missing piece to the rpmh regulator driver to ensure
>> that when a supply gets enabled we also propagate a vote to its parent
>> supply. This seems to have been missed from the original port (perhaps
>> because the Linux regulator core handles this automatically?) but it is
>> necessary for some peripherals on some boards to work (e.g. to ensure
>> that the spms supplier for an LDO gets enabled).
>>
>
> Again it will be better if you list down the specific peripherals here.
>
> -Sumit
>
>> ---
>> Casey Connolly (3):
>> soc/qcom: rpmh: properly fix synchronous requests
>> soc/qcom: rpmh: only allow rpmh writes of a single command
>> power: regulator: qcom-rpmh: propagate votes to parent supplies
>>
>> drivers/interconnect/qcom/bcm-voter.c | 16 +++---
>> drivers/power/regulator/qcom-rpmh-regulator.c | 35 +++++++++++++-
>> drivers/soc/qcom/rpmh-rsc.c | 70 ++++++++++++++++++++-------
>> drivers/soc/qcom/rpmh.c | 6 +++
>> 4 files changed, 102 insertions(+), 25 deletions(-)
>> ---
>> base-commit: c704af3c8b0f37929bce8c2a4bba27d6e89919c7
>>
>> // Casey (she/they)
>>
--
// Casey (she/her)
prev parent reply other threads:[~2026-05-05 13:20 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-13 11:06 [PATCH 0/3] Qualcomm: rpmh and regulator fixes Casey Connolly
2026-04-13 11:06 ` [PATCH 1/3] soc/qcom: rpmh: properly fix synchronous requests Casey Connolly
2026-04-13 11:06 ` [PATCH 2/3] soc/qcom: rpmh: only allow rpmh writes of a single command Casey Connolly
2026-04-13 11:06 ` [PATCH 3/3] power: regulator: qcom-rpmh: propagate votes to parent supplies Casey Connolly
2026-05-01 5:59 ` [PATCH 0/3] Qualcomm: rpmh and regulator fixes Sumit Garg
2026-05-05 13:20 ` Casey Connolly [this message]
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=c2612a4e-48a2-465e-a338-68e542bde723@linaro.org \
--to=casey.connolly@linaro.org \
--cc=aswin.murugan@oss.qualcomm.com \
--cc=jh80.chung@samsung.com \
--cc=neil.armstrong@linaro.org \
--cc=peng.fan@nxp.com \
--cc=sumit.garg@kernel.org \
--cc=trini@konsulko.com \
--cc=u-boot-qcom@groups.io \
--cc=u-boot@lists.denx.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.