* [PATCH] clk: qcom: smd-rpm: Skip proxy votes on clocks for QCM2290
@ 2026-09-10 13:44 Imran Shaik
2026-09-11 9:06 ` Konrad Dybcio
0 siblings, 1 reply; 3+ messages in thread
From: Imran Shaik @ 2026-09-10 13:44 UTC (permalink / raw)
To: Bjorn Andersson, Stephen Boyd, Brian Masney, Jerome Brunet,
Rob Herring, Georgi Djakov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, Stephen Boyd,
linux-arm-msm, linux-clk, linux-kernel, Imran Shaik
clk_smd_rpm_handoff() votes both active and sleep RPM resource states for
every clock, keeping them non-zero until a consumer takes over. If there
is no consumer, those clocks will remain active in the idle scenario as
well, and the sleep vote is never cleared, blocking XO shutdown.
Introduce the skip_clks_handoff flag to handle this on QCM2290 clocks,
keeping other targets unaffected.
Fixes: 00f64b58874e ("clk: qcom: Add support for SMD-RPM Clocks")
Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
---
This patch is dependent on [1], as crypto driver earlier was surviving on
the proxy votes on Qualcomm Shikra SoC and dropping the proxy votes will
impact the bootup. Now patch series [1] takes care of the resource
voting from the crypto driver side.
[1] https://lore.kernel.org/linux-arm-msm/20260907-b4-shikra_crypto_changse-v6-0-0676f61894b3@oss.qualcomm.com/
---
drivers/clk/qcom/clk-smd-rpm.c | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/drivers/clk/qcom/clk-smd-rpm.c b/drivers/clk/qcom/clk-smd-rpm.c
index 487d715ed5d2..b78c8cc730b5 100644
--- a/drivers/clk/qcom/clk-smd-rpm.c
+++ b/drivers/clk/qcom/clk-smd-rpm.c
@@ -183,6 +183,7 @@ struct rpm_smd_clk_desc {
const struct clk_smd_rpm ** const icc_clks;
size_t num_icc_clks;
bool scaling_before_handover;
+ bool skip_clks_handoff;
};
static DEFINE_MUTEX(rpm_smd_clk_lock);
@@ -1280,7 +1281,8 @@ static const struct rpm_smd_clk_desc rpm_clk_qcm2290 = {
.clks = qcm2290_clks,
.num_clks = ARRAY_SIZE(qcm2290_clks),
.icc_clks = qcm2290_icc_clks,
- .num_icc_clks = ARRAY_SIZE(qcm2290_icc_clks)
+ .num_icc_clks = ARRAY_SIZE(qcm2290_icc_clks),
+ .skip_clks_handoff = true,
};
static const struct of_device_id rpm_smd_clk_match_table[] = {
@@ -1358,13 +1360,15 @@ static int rpm_smd_clk_probe(struct platform_device *pdev)
goto err;
}
- for (i = 0; i < num_clks; i++) {
- if (!rpm_smd_clks[i])
- continue;
+ if (!desc->skip_clks_handoff) {
+ for (i = 0; i < num_clks; i++) {
+ if (!rpm_smd_clks[i])
+ continue;
- ret = clk_smd_rpm_handoff(rpm_smd_clks[i]);
- if (ret)
- goto err;
+ ret = clk_smd_rpm_handoff(rpm_smd_clks[i]);
+ if (ret)
+ goto err;
+ }
}
for (i = 0; i < desc->num_icc_clks; i++) {
---
base-commit: c68a982815dcce5464e3bf2a31ac94f5146c04ca
change-id: 20260909-clk-smd-rpm-skip-proxy-7725549ea74d
prerequisite-change-id: 20260701-b4-shikra_crypto_changse-f2d6d5bf04b5:v6
prerequisite-patch-id: e24447d3ab70f48b099251c3d6c1307e0aee9d2c
prerequisite-patch-id: 64e9302a1de7a654ffa65af12daff3866531a00c
Best regards,
--
Imran Shaik <imran.shaik@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] clk: qcom: smd-rpm: Skip proxy votes on clocks for QCM2290
2026-09-10 13:44 [PATCH] clk: qcom: smd-rpm: Skip proxy votes on clocks for QCM2290 Imran Shaik
@ 2026-09-11 9:06 ` Konrad Dybcio
2026-09-16 11:05 ` Imran Shaik
0 siblings, 1 reply; 3+ messages in thread
From: Konrad Dybcio @ 2026-09-11 9:06 UTC (permalink / raw)
To: Imran Shaik, Bjorn Andersson, Stephen Boyd, Brian Masney,
Jerome Brunet, Rob Herring, Georgi Djakov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, Stephen Boyd,
linux-arm-msm, linux-clk, linux-kernel
On 9/10/26 3:44 PM, Imran Shaik wrote:
> clk_smd_rpm_handoff() votes both active and sleep RPM resource states for
> every clock, keeping them non-zero until a consumer takes over. If there
> is no consumer, those clocks will remain active in the idle scenario as
> well, and the sleep vote is never cleared, blocking XO shutdown.
>
> Introduce the skip_clks_handoff flag to handle this on QCM2290 clocks,
> keeping other targets unaffected.
>
> Fixes: 00f64b58874e ("clk: qcom: Add support for SMD-RPM Clocks")
> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
> ---
Are you booting with clk_ignore_unused?
Konrad
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] clk: qcom: smd-rpm: Skip proxy votes on clocks for QCM2290
2026-09-11 9:06 ` Konrad Dybcio
@ 2026-09-16 11:05 ` Imran Shaik
0 siblings, 0 replies; 3+ messages in thread
From: Imran Shaik @ 2026-09-16 11:05 UTC (permalink / raw)
To: Konrad Dybcio, Bjorn Andersson, Stephen Boyd, Brian Masney,
Jerome Brunet, Rob Herring, Georgi Djakov
Cc: Ajit Pandey, Taniya Das, Jagadeesh Kona, Stephen Boyd,
linux-arm-msm, linux-clk, linux-kernel
On 11-09-2026 02:36 pm, Konrad Dybcio wrote:
> On 9/10/26 3:44 PM, Imran Shaik wrote:
>> clk_smd_rpm_handoff() votes both active and sleep RPM resource states for
>> every clock, keeping them non-zero until a consumer takes over. If there
>> is no consumer, those clocks will remain active in the idle scenario as
>> well, and the sleep vote is never cleared, blocking XO shutdown.
>>
>> Introduce the skip_clks_handoff flag to handle this on QCM2290 clocks,
>> keeping other targets unaffected.
>>
>> Fixes: 00f64b58874e ("clk: qcom: Add support for SMD-RPM Clocks")
>> Signed-off-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
>> ---
>
> Are you booting with clk_ignore_unused?
>
No Konrad, clk_ignore_unused is not present.
Irrespective of clk_ignore_unused, the proxy votes are placed to RPM
during handoff. If no consumer takes over, those votes remain active,
keeping the resource ON in idle and preventing XO shutdown.
Thanks,
Imran
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-09-16 11:05 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-10 13:44 [PATCH] clk: qcom: smd-rpm: Skip proxy votes on clocks for QCM2290 Imran Shaik
2026-09-11 9:06 ` Konrad Dybcio
2026-09-16 11:05 ` Imran Shaik
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®