Linux clock framework development
 help / color / mirror / Atom feed
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 25/52] clk: qcom: gcc-sdm845: Tie the CX power domain to controller
Date: Mon, 14 Sep 2026 15:35:23 +0000	[thread overview]
Message-ID: <20260914153523.B156A1F000FF@smtp.kernel.org> (raw)
In-Reply-To: <20260914-qcom-tie-cx-to-gcc-v4-25-9d5a606ada33@oss.qualcomm.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The GCC controller will never runtime suspend (and thus never power down the CX domain) because CLK_IS_CRITICAL clocks hold a permanent runtime PM reference.
--

commit 276e3a012e0f4a45e79abff9518b1f5b28d649cd
Author: Abel Vesa <abel.vesa@oss.qualcomm.com>

clk: qcom: gcc-sdm845: Tie the CX power domain to controller

This commit enables runtime PM for the controller, allowing the CX power
domain to be powered down once all GCC consumers have released their clocks
and GDSCs.

> diff --git a/drivers/clk/qcom/gcc-sdm845.c b/drivers/clk/qcom/gcc-sdm845.c
> index 57d54b45fa527..cde863dcf1851 100644
> --- a/drivers/clk/qcom/gcc-sdm845.c
> +++ b/drivers/clk/qcom/gcc-sdm845.c
> @@ -3959,6 +3959,7 @@ static const struct qcom_cc_desc gcc_sdm845_desc = {
>  	.num_resets = ARRAY_SIZE(gcc_sdm845_resets),
>  	.gdscs = gcc_sdm845_gdscs,
>  	.num_gdscs = ARRAY_SIZE(gcc_sdm845_gdscs),
> +	.use_rpm = true,

[Severity: Medium]
Will the GCC controller ever actually runtime suspend to power down the CX
domain with this change?

The driver has 13 clocks marked as CLK_IS_CRITICAL, for example:

static struct clk_branch gcc_camera_ahb_clk = {
	...
	.clkr = {
		...
		.hw.init = &(struct clk_init_data){
			.name = "gcc_camera_ahb_clk",
			.flags = CLK_IS_CRITICAL,
			...
		},
	},
};

When qcom_cc_really_probe() registers clocks with use_rpm = true, the common
clock framework's clk_pm_runtime_init() sets rpm_enabled = true.

For critical clocks, __clk_core_init() automatically calls clk_core_prepare().
This triggers clk_pm_runtime_get(), which calls pm_runtime_resume_and_get()
and increments the GCC controller's runtime PM usage counter.

Since critical clocks are never unprepared, these references are never
released. Because of this, it appears the controller's usage count will never
drop to zero and the CX domain will permanently remain active, defeating the
purpose of enabling runtime PM.

>  };
>  
>  static const struct of_device_id gcc_sdm845_match_table[] = {

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260914-qcom-tie-cx-to-gcc-v4-0-9d5a606ada33@oss.qualcomm.com?part=25

  reply	other threads:[~2026-09-14 15:35 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
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 [this message]
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=20260914153523.B156A1F000FF@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