From: sashiko-bot@kernel.org
To: "Abel Vesa" <abel.vesa@oss.qualcomm.com>
Cc: linux-clk@vger.kernel.org, robh@kernel.org,
devicetree@vger.kernel.org, conor+dt@kernel.org
Subject: Re: [PATCH v4 22/52] clk: qcom: gcc-sc7180: Tie the CX power domain to controller
Date: Mon, 14 Sep 2026 14:52:52 +0000 [thread overview]
Message-ID: <20260914145253.33C911F000FF@smtp.kernel.org> (raw)
In-Reply-To: <20260914-qcom-tie-cx-to-gcc-v4-22-9d5a606ada33@oss.qualcomm.com>
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] Critical clocks permanently hold a runtime PM reference on the controller, preventing it from suspending and defeating the patch's purpose to power down the CX domain.
- [High] Enabling runtime PM breaks the manual boot handoff of the GPU GDSC if the controller actually suspends.
--
commit 0aa0dbfeaa58a3fdbcbae9974a5bd2ab77272a27
Author: Abel Vesa <abel.vesa@oss.qualcomm.com>
clk: qcom: gcc-sc7180: Tie the CX power domain to controller
Enable runtime PM for the controller, allowing CX to be powered down
once all GCC consumers have released their clocks and GDSCs.
> diff --git a/drivers/clk/qcom/gcc-sc7180.c b/drivers/clk/qcom/gcc-sc7180.c
> index 4a49ad7a9e5be..f3a245470a4de 100644
> --- a/drivers/clk/qcom/gcc-sc7180.c
> +++ b/drivers/clk/qcom/gcc-sc7180.c
> @@ -2418,6 +2418,7 @@ static const struct qcom_cc_desc gcc_sc7180_desc = {
> .num_resets = ARRAY_SIZE(gcc_sc7180_resets),
> .gdscs = gcc_sc7180_gdscs,
> .num_gdscs = ARRAY_SIZE(gcc_sc7180_gdscs),
> + .use_rpm = true,
[Severity: High]
Since this controller uses critical clocks like gcc_cpuss_ahb_clk and
gcc_sys_noc_cpuss_ahb_clk (registered with CLK_IS_CRITICAL), will the
Common Clock Framework indefinitely hold a runtime PM reference on the
controller?
During clock registration, the CCF calls clk_core_prepare_enable() for
critical clocks, which increments the provider device's PM runtime usage
counter via clk_pm_runtime_get().
Because critical clocks are never unprepared, the PM usage counter will never
drop to zero. Will this prevent the GCC controller from runtime suspending,
thereby permanently keeping the CX power domain on and defeating the purpose
of this patch?
[Severity: High]
If the controller does manage to runtime suspend, does this break the
manual boot handoff of the GPU GDSC?
In gcc_sc7180_probe(), raw register writes are used to enable certain clocks:
qcom_branch_set_clk_en(regmap, 0x71004); /* GCC_GPU_CFG_AHB_CLK */
Because this bypasses the Common Clock Framework, no PM runtime reference is
taken to keep the controller active for these blocks.
If pm_runtime_put_sync() at the end of probe actually suspends the device,
cutting power to the CX domain, will these manual writes be rendered
ineffective and cause a crash when downstream drivers probe?
> };
>
> static const struct of_device_id gcc_sc7180_match_table[] = {
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260914-qcom-tie-cx-to-gcc-v4-0-9d5a606ada33@oss.qualcomm.com?part=22
next prev parent reply other threads:[~2026-09-14 14:52 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-14 12:46 [PATCH v4 00/52] clk: qcom: Tie CX power domains to GCCs Abel Vesa
2026-09-14 12:47 ` [PATCH v4 01/52] dt-bindings: clock: qcom: gcc-sdm845: Add CX power domain Abel Vesa
2026-09-17 8:23 ` Krzysztof Kozlowski
2026-09-14 12:47 ` [PATCH v4 02/52] dt-bindings: clock: qcom: gcc-sm8150: " Abel Vesa
2026-09-17 8:25 ` Krzysztof Kozlowski
2026-09-14 12:47 ` [PATCH v4 03/52] dt-bindings: clock: qcom: gcc-sm8250: " Abel Vesa
2026-09-17 8:26 ` Krzysztof Kozlowski
2026-09-14 12:47 ` [PATCH v4 04/52] dt-bindings: clock: qcom: gcc-sm8350: " Abel Vesa
2026-09-17 8:29 ` Krzysztof Kozlowski
2026-09-14 12:47 ` [PATCH v4 05/52] dt-bindings: clock: qcom: gcc-sm8450: " Abel Vesa
2026-09-17 8:30 ` Krzysztof Kozlowski
2026-09-14 12:47 ` [PATCH v4 06/52] dt-bindings: clock: qcom: qcs615-gcc: " Abel Vesa
2026-09-17 8:30 ` Krzysztof Kozlowski
2026-09-14 12:47 ` [PATCH v4 07/52] dt-bindings: clock: qcom: sm8550-gcc: " Abel Vesa
2026-09-17 8:30 ` Krzysztof Kozlowski
2026-09-14 12:47 ` [PATCH v4 08/52] dt-bindings: clock: qcom: sm8650-gcc: " Abel Vesa
2026-09-17 8:31 ` Krzysztof Kozlowski
2026-09-14 12:47 ` [PATCH v4 09/52] dt-bindings: clock: qcom: sm8750-gcc: " Abel Vesa
2026-09-17 8:31 ` Krzysztof Kozlowski
2026-09-14 12:47 ` [PATCH v4 10/52] dt-bindings: clock: qcom: sm4450-gcc: " Abel Vesa
2026-09-17 8:31 ` Krzysztof Kozlowski
2026-09-14 12:47 ` [PATCH v4 11/52] dt-bindings: clock: qcom: gcc-sm6350: " Abel Vesa
2026-09-17 8:32 ` Krzysztof Kozlowski
2026-09-14 12:47 ` [PATCH v4 12/52] dt-bindings: clock: qcom: qcs8300-gcc: " Abel Vesa
2026-09-17 8:32 ` Krzysztof Kozlowski
2026-09-14 12:47 ` [PATCH v4 13/52] dt-bindings: clock: qcom: qdu1000-gcc: " Abel Vesa
2026-09-15 9:15 ` Taniya Das
2026-09-14 12:47 ` [PATCH v4 14/52] dt-bindings: clock: qcom: sdx75-gcc: " Abel Vesa
2026-09-17 8:32 ` Krzysztof Kozlowski
2026-09-14 12:47 ` [PATCH v4 15/52] clk: qcom: gcc-eliza: Tie the CX power domain to controller Abel Vesa
2026-09-14 13:44 ` sashiko-bot
2026-09-14 12:47 ` [PATCH v4 16/52] clk: qcom: gcc-kaanapali: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 17/52] clk: qcom: gcc-qcs615: " Abel Vesa
2026-09-14 13:58 ` sashiko-bot
2026-09-14 12:47 ` [PATCH v4 18/52] clk: qcom: gcc-qcs8300: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 19/52] clk: qcom: gcc-qdu1000: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 20/52] clk: qcom: gcc-sa8775p: " Abel Vesa
2026-09-14 14:31 ` sashiko-bot
2026-09-14 12:47 ` [PATCH v4 21/52] clk: qcom: gcc-sar2130p: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 22/52] clk: qcom: gcc-sc7180: " Abel Vesa
2026-09-14 14:52 ` sashiko-bot [this message]
2026-09-14 12:47 ` [PATCH v4 23/52] clk: qcom: gcc-sc7280: " Abel Vesa
2026-09-14 15:21 ` sashiko-bot
2026-09-15 8:06 ` Taniya Das
2026-09-14 12:47 ` [PATCH v4 24/52] clk: qcom: gcc-sdm670: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 25/52] clk: qcom: gcc-sdm845: " Abel Vesa
2026-09-14 15:35 ` sashiko-bot
2026-09-14 12:47 ` [PATCH v4 26/52] clk: qcom: gcc-sdx75: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 27/52] clk: qcom: gcc-sm4450: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 28/52] clk: qcom: gcc-sm6350: " Abel Vesa
2026-09-14 15:56 ` sashiko-bot
2026-09-14 12:47 ` [PATCH v4 29/52] clk: qcom: gcc-sm8150: " Abel Vesa
2026-09-14 16:17 ` sashiko-bot
2026-09-14 12:47 ` [PATCH v4 30/52] clk: qcom: gcc-sm8250: " Abel Vesa
2026-09-14 16:23 ` sashiko-bot
2026-09-14 12:47 ` [PATCH v4 31/52] clk: qcom: gcc-sm8350: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 32/52] clk: qcom: gcc-sm8450: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 33/52] clk: qcom: gcc-sm8550: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 34/52] clk: qcom: gcc-sm8650: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 35/52] clk: qcom: gcc-sm8750: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 36/52] clk: qcom: gcc-x1e80100: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 37/52] arm64: dts: qcom: kaanapali: Add GCC CX power domain Abel Vesa
2026-09-14 12:47 ` [PATCH v4 38/52] arm64: dts: qcom: monaco: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 39/52] arm64: dts: qcom: qdu1000: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 40/52] arm64: dts: qcom: sar2130p: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 41/52] arm64: dts: qcom: sdm670: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 42/52] arm64: dts: qcom: sdx75: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 43/52] arm64: dts: qcom: sm4450: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 44/52] arm64: dts: qcom: sm6350: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 45/52] arm64: dts: qcom: sm8150: " Abel Vesa
2026-09-14 17:39 ` sashiko-bot
2026-09-14 12:47 ` [PATCH v4 46/52] arm64: dts: qcom: sm8250: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 47/52] arm64: dts: qcom: sm8350: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 48/52] arm64: dts: qcom: sm8450: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 49/52] arm64: dts: qcom: sm8550: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 50/52] arm64: dts: qcom: sm8650: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 51/52] arm64: dts: qcom: sm8750: " Abel Vesa
2026-09-14 12:47 ` [PATCH v4 52/52] arm64: dts: qcom: talos: " Abel Vesa
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=20260914145253.33C911F000FF@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=abel.vesa@oss.qualcomm.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=linux-clk@vger.kernel.org \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/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