From: Stanislaw Pal <kuncy7@gmail.com>
To: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>,
Jie Luo <jie.luo@oss.qualcomm.com>
Cc: Mieczyslaw Nalewaj <namiltd@yahoo.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
Subject: Re: [PATCH] clk: qcom: ipq-cmn-pll: keep the CMN block bus clocks enabled
Date: Wed, 9 Sep 2026 15:20:49 +0200 [thread overview]
Message-ID: <20260909132049.37611-1-kuncy7@gmail.com> (raw)
In-Reply-To: <b58e3f64-1a5c-4db4-a51b-7138fb3609da@oss.qualcomm.com>
On 9/9/26 2:12 PM, Konrad Dybcio wrote:
> Is it only the UNIPHY consuming the 50 MHz one?
>
> What consumes the XO clock? What consumes the sleep clock?
Nothing in Linux consumes any of the three today.
grep -rn '&cmn_pll' arch/arm64/boot/dts/qcom/ on v6.18 gives, in full:
ipq5018.dtsi:258: assigned-clocks = <&cmn_pll IPQ5018_CMN_PLL_CLK>;
ipq5424.dtsi:288: assigned-clocks = <&cmn_pll IPQ5424_CMN_PLL_CLK>;
ipq9574.dtsi:359: assigned-clocks = <&cmn_pll CMN_PLL_CLK>;
ipq9574.dtsi:1253: <&cmn_pll NSS_1200MHZ_CLK>,
ipq9574.dtsi:1254: <&cmn_pll PPE_353MHZ_CLK>,
The first three are the provider setting its own VCO rate. The only
real consumer anywhere is the IPQ9574 NSS clock controller. No device
tree in the tree references XO_24MHZ_CLK or SLEEP_32KHZ_CLK, on any
SoC - and of the five compatibles the driver carries, only ipq5018,
ipq5424 and ipq9574 have a cmn_pll node in mainline at all.
On IPQ5018 specifically:
- eth-50mhz: Jie is right that the UNIPHY takes it, and it will become
a clk_get() consumer once IPQ5018 UNIPHY/PCS support lands. The node
in the pending work has
clocks = <&gcc GCC_UNIPHY_AHB_CLK>, <&gcc GCC_UNIPHY_SYS_CLK>,
<&gcc GCC_UNIPHY_RX_CLK>, <&gcc GCC_UNIPHY_TX_CLK>,
<&cmn_pll IPQ5018_ETH_50MHZ_CLK>;
clock-names = "ahb", "sys", "port5_rx", "port5_tx", "ref";
In mainline there is no such node yet - the only "uniphy" nodes on
IPQ5018 are the two PCIe PHYs - so that 50 MHz path exists in
silicon with nothing holding a handle on it from Linux.
- xo-24mhz and sleep-32khz: I know of no consumer, in tree or out.
Worth noting these are not what the rest of the SoC runs on: the
platform's 24 MHz XO and 32 kHz sleep clock come from the board
oscillators described separately in ipq5018.dtsi (xo_clk ->
ref_96mhz_clk -> xo_board_clk, and sleep_clk), not from the CMN
block. The CMN outputs at the same nominal rates look like
re-exports for hard-wired internal use.
I would rather this did not decide the patch, though, because the
failure it fixes is not a later register access to the CMN block.
Mieczyslaw's summary in the v4 thread put it that way; the mechanism I
measured is narrower, and it is what the v4 commit message describes:
- gating those same two clocks on an idle, fully booted GL-B3000
(runtime PM autosuspend, gate landing ~75 s after probe) is
harmless - runtime_status "suspended", both radios still serving
clients;
- with UNIPHY0 disabled in the device tree, so that no uniphy driver
exists in that boot at all, the board still dies in 6 of 7 boots;
- stretching the end of probe by 15 ms, or by a full 2 s, still ends
in a watchdog reset, 8 of 8 boots each.
So what hangs the SoC is the gate transition landing amid early-boot
bus activity, not any consumer's access afterwards. That is also why
no consumer-side scheme can help: the window is between the CMN PLL
probe returning and the first clk_get() by anybody, whichever consumer
eventually turns up.
Thanks for the Ack on v4.
Best regards,
Stanislaw
next prev parent reply other threads:[~2026-09-09 13:20 UTC|newest]
Thread overview: 30+ 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
2026-09-09 12:12 ` Konrad Dybcio
2026-09-09 13:20 ` Stanislaw Pal [this message]
2026-09-09 13:37 ` Konrad Dybcio
2026-09-11 14:18 ` Jie Luo
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
2026-09-08 10:57 ` Mieczyslaw Nalewaj
2026-09-09 12:10 ` 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=20260909132049.37611-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 \
/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.