All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.