From: Mike Tipton <mike.tipton@oss.qualcomm.com>
To: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Cc: Krzysztof Kozlowski <krzk@kernel.org>,
Luca Weiss <luca.weiss@fairphone.com>,
Taniya Das <taniya.das@oss.qualcomm.com>,
Georgi Djakov <djakov@kernel.org>,
Bjorn Andersson <andersson@kernel.org>,
Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
~postmarketos/upstreaming@lists.sr.ht,
phone-devel@vger.kernel.org, linux-pm@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org,
linux-clk@vger.kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH 2/5] dt-bindings: clock: qcom,milos-camcc: Document interconnect path
Date: Mon, 23 Mar 2026 19:48:08 -0700 [thread overview]
Message-ID: <acH7aEBvSbiNwhBz@hu-mdtipton-lv.qualcomm.com> (raw)
In-Reply-To: <9f8619d4-43ac-4bc0-9598-c498d59a27b8@oss.qualcomm.com>
On Mon, Jan 19, 2026 at 11:28:07AM +0100, Konrad Dybcio wrote:
>
>
> On 1/19/26 11:20 AM, Konrad Dybcio wrote:
> > On 1/17/26 12:46 PM, Krzysztof Kozlowski wrote:
> >> On Fri, Jan 16, 2026 at 02:17:21PM +0100, Luca Weiss wrote:
> >>> Document an interconnect path for camcc that's required to enable
> >>> the CAMSS_TOP_GDSC power domain.
> >>
> >> I find it confusing. Enabling GDSC power domains is done via power
> >> domains, not via interconnects. Do not represent power domains as
> >> interconnects, it's something completely different.
> >
> > The name of the power domains is CAMSS_TOP_GDSC (seems you misread)
> >
> > For the power domain to successfully turn on, the MNoC needs to be
> > turned on (empirical evidence). The way to do it is to request a
> > nonzero vote on this interconnect path
> >
> > (presumably because the GDSC or its invisible providers require
> > something connected over that bus to carry out their enable sequences).
The GDSC itself shouldn't depend on MMNOC in order to turn on properly.
It should turn on just fine without it. There *is* a dependency between
CAM_TOP_GDSC and MMNOC, but it's in the opposite direction.
For MMNOC to turn off properly when all BW votes are removed, the
CAM_TOP_GDSC must already be off. If CAM_TOP_GDSC is still on when MMNOC
starts turning off, then MMNOC will get stuck in its collapse sequence.
MMNOC waits for all HW clients to de-assert their active signals before
it'll allow itself to collapse. Most HW blocks assert this active signal
more dynamically than camera does rather than tying it to GDSC state.
The GDSC asserting active signals to RPMh that prevent NOC collapse is
unique to this particular camera GDSC.
If MMNOC BW is removed when CAM_TOP_GDSC is still enabled, then it
should reproduce as an icc_set_bw() failure on MMNOC rather than a GDSC
enable failure. The icc_set_bw(0) request would succeed because RPMh
immediately ACKs down requests, but the collapse sequence would get
stuck in the background. Later, when someone calls icc_set_bw() again
with a non-zero BW to enable MMNOC, then that request would fail because
MMNOC is still stuck in the prior collapse sequence.
Note I haven't explicitly confirmed the Milos behavior, but this has
been the HW dependency for at least several generations of chips now.
I've never seen this GDSC get stuck turning on because MMNOC if off, nor
would I be able to explain offhand why that would happen. But MMNOC
certainly does depend on this GDSC for the reasons stated above.
So, regardless of the originally stated rationale, CAM_TOP_GDSC voting
on MMNOC *is* a logical requirement to guarantee that MMNOC doesn't turn
off when the GDSC is still on. Otherwise, that requirement would be left
entirely up to consumers to understand and enforce.
next prev parent reply other threads:[~2026-03-24 2:48 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-16 13:17 [PATCH 0/5] Support enabling interconnect path for GDSC for fixing Milos camcc Luca Weiss
2026-01-16 13:17 ` [PATCH 1/5] interconnect: Add devm_of_icc_get_by_index() as exported API for users Luca Weiss
2026-01-16 16:31 ` Dmitry Baryshkov
2026-01-19 10:43 ` Konrad Dybcio
2026-01-16 13:17 ` [PATCH 2/5] dt-bindings: clock: qcom,milos-camcc: Document interconnect path Luca Weiss
2026-01-17 11:46 ` Krzysztof Kozlowski
2026-01-19 10:20 ` Konrad Dybcio
2026-01-19 10:28 ` Konrad Dybcio
2026-03-06 10:37 ` Luca Weiss
2026-03-24 2:48 ` Mike Tipton [this message]
2026-03-24 11:13 ` Konrad Dybcio
2026-03-30 14:55 ` Luca Weiss
2026-04-02 3:10 ` Mike Tipton
2026-01-16 13:17 ` [PATCH 3/5] clk: qcom: gdsc: Support enabling interconnect path for power domain Luca Weiss
2026-03-24 3:34 ` Mike Tipton
2026-01-16 13:17 ` [PATCH 4/5] clk: qcom: camcc-milos: Declare icc path dependency for CAMSS_TOP_GDSC Luca Weiss
2026-01-16 16:34 ` Dmitry Baryshkov
2026-01-16 13:17 ` [PATCH 5/5] arm64: dts: qcom: milos: Add interconnects to camcc Luca Weiss
2026-01-16 16:34 ` Dmitry Baryshkov
2026-03-23 12:46 ` [PATCH 0/5] Support enabling interconnect path for GDSC for fixing Milos camcc Konrad Dybcio
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=acH7aEBvSbiNwhBz@hu-mdtipton-lv.qualcomm.com \
--to=mike.tipton@oss.qualcomm.com \
--cc=andersson@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=djakov@kernel.org \
--cc=konrad.dybcio@oss.qualcomm.com \
--cc=krzk+dt@kernel.org \
--cc=krzk@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=luca.weiss@fairphone.com \
--cc=mturquette@baylibre.com \
--cc=phone-devel@vger.kernel.org \
--cc=robh@kernel.org \
--cc=sboyd@kernel.org \
--cc=taniya.das@oss.qualcomm.com \
--cc=~postmarketos/upstreaming@lists.sr.ht \
/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