From: Stanislaw Pal <kuncy7@gmail.com>
To: Jie Luo <jie.luo@oss.qualcomm.com>,
Mieczyslaw Nalewaj <namiltd@yahoo.com>
Cc: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
Bjorn Andersson <andersson@kernel.org>,
Stephen Boyd <sboyd@kernel.org>,
Michael Turquette <mturquette@baylibre.com>,
Georg Seema <georgseema@gmail.com>,
Brian Masney <bmasney@redhat.com>,
linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org,
linux-kernel@vger.kernel.org, stable@vger.kernel.org
Subject: Re: [PATCH] clk: qcom: ipq-cmn-pll: keep the CMN block bus clocks enabled
Date: Mon, 24 Aug 2026 22:23:09 +0200 [thread overview]
Message-ID: <20260824202309.1196418-1-kuncy7@gmail.com> (raw)
In-Reply-To: <f8b9192f-fe88-4a8e-86f0-6e2c33ed3f31@oss.qualcomm.com>
On 8/24/26 12:28 PM, Jie Luo wrote:
> As far as I understand, there is no expectation that the CMN PLL
> registers need to be accessed after the CMN PLL driver has finished
> loading on IPQ5018.
Agreed, and measured: with the AHB/SYS pair gated on a fully booted
GL-B3000 (runtime PM autosuspend, gate landing ~75 s after probe,
runtime_status "suspended"), the board keeps running, both radios keep
serving clients, nothing complains. Nothing in Linux needs those
registers after probe, and the v4 commit message says so. The fix is
not about post-probe register access.
To Mieczyslaw's point on clk_summary: that read does not reach the
hardware either way. The provider ops are wrapped in
clk_pm_runtime_get()/put() by the framework (clk.c: recalc_rate at
~1923, prepare at ~1110, set_rate at ~2415/2539 in 6.18), so a debugfs
read would resume the block before touching it - and the outputs are
registered without CLK_GET_RATE_NOCACHE, so clk_summary reports the
cached rate without recalc at all. Accesses through CCF are safe with
or without this patch; the argument for it never rested on them.
> Could we identify which module is blocked after the CMN PLL driver
> probe completes?
None gets the chance. This is not a driver hanging on a register - the
SoC dies and the watchdog resets it, silently, with no console output
after the CMN PLL probe. Georg's timing on the Cudy P5: probe completes
in ~628 us, pm_runtime_put() returns, and the board is dead before the
next initcall starts. So the question "which module" has no answer in
the form of a stuck driver; what exists is a window right after probe
in which the asynchronous gate is fatal, and outside of which (idle
system, above) the very same gate is harmless.
> The UNIPHY block is the consumer of this 50 MHz clock. It divides and
> gates the 50 MHz clock, then routes it to the connected PHY or switch
> on the IPQ5018 platform.
Thank you - that confirms the picture from the DT side (the GE PHY
clocks are fixed-clock stubs in ipq5018.dtsi and no node references
&cmn_pll, so Linux sees a provider with zero consumers while the
consumer is wired in silicon). The 0x74 divider/gate description is
useful and I have noted it.
> Would you be able to try this approach in your code workspace? Since
> the UNIPHY driver is not currently available in the upstream kernel,
> this may be a practical way to validate whether keeping the relevant
> clock path active through the UNIPHY side resolves the issue.
Two measurements already bracket this, so let me put them on the table
before anyone spends time on it:
- GL-B3000, UNIPHY0 disabled in DT (no uniphy driver ever probes),
vanilla put: 6 of 7 boots die. The failure does not need the uniphy
driver, or its clock path, to exist.
- Cudy P5: the board dies before the next initcall after the CMN PLL
probe - i.e. before any uniphy driver could run at all.
So the fatal window opens and closes before the uniphy side gets to
execute anything, upstream driver or not. A fix on the uniphy side can
only start acting after that window, which is why holding the reference
in the provider - the one place that exists at that moment - is what
boots deterministically on all three boards. That said, the gating
behaviour of 0x74 is worth understanding for the uniphy driver that will
eventually come upstream, and I will keep it in mind for that work.
The full set of numbers (per-block isolation, the 15 ms / 2 s delay
experiments on two boards, the idle-gate result) is in v4:
https://lore.kernel.org/linux-clk/20260813093351.178419-1-kuncy7@gmail.com/
next prev parent reply other threads:[~2026-08-24 20:23 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-30 19:13 [PATCH] clk: qcom: ipq-cmn-pll: keep the CMN block bus clocks enabled Stanislaw Pal
2026-08-02 20:53 ` Mieczyslaw Nalewaj
2026-08-03 7:14 ` Jie Luo
2026-08-03 9:10 ` Stanislaw Pal
2026-08-04 11:03 ` Jie Luo
2026-08-04 11:58 ` Stanislaw Pal
2026-08-05 4:52 ` Jie Luo
2026-08-05 8:12 ` Stanislaw Pal
2026-08-06 2:33 ` Jie Luo
2026-08-08 21:45 ` Mieczyslaw Nalewaj
2026-08-09 16:10 ` Stanislaw Pal
2026-08-11 12:54 ` Jie Luo
2026-08-11 19:53 ` Stanislaw Pal
2026-08-19 13:00 ` Konrad Dybcio
2026-08-20 5:39 ` Jie Luo
2026-08-22 11:19 ` Mieczyslaw Nalewaj
2026-08-24 10:28 ` Jie Luo
2026-08-24 19:06 ` Mieczyslaw Nalewaj
2026-08-24 20:23 ` Stanislaw Pal [this message]
2026-08-04 11:53 ` [PATCH v2] " Stanislaw Pal
2026-08-05 18:53 ` Mieczyslaw Nalewaj
2026-08-05 19:36 ` [PATCH v3] " Stanislaw Pal
2026-08-11 11:48 ` Stanislaw Pal
2026-08-13 9:33 ` [PATCH v4] " Stanislaw Pal
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=20260824202309.1196418-1-kuncy7@gmail.com \
--to=kuncy7@gmail.com \
--cc=andersson@kernel.org \
--cc=bmasney@redhat.com \
--cc=georgseema@gmail.com \
--cc=jie.luo@oss.qualcomm.com \
--cc=konrad.dybcio@oss.qualcomm.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mturquette@baylibre.com \
--cc=namiltd@yahoo.com \
--cc=sboyd@kernel.org \
--cc=stable@vger.kernel.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