Re: [PATCH] clk: qcom: enable ALWAYS_ON for titan_top_gdsc

From: Vladimir Zapolskiy

Date: Mon Jun 29 2026 - 09:03:14 EST


Hi Brian,

On 6/29/26 14:03, Brian Masney wrote:
Hi Vladimir,

On Fri, Jun 26, 2026 at 07:54:39PM +0300, Vladimir Zapolskiy wrote:
On 6/26/26 19:32, Konrad Dybcio wrote:
On 6/26/26 6:26 PM, Brian Masney wrote:
With the introduction of sync_state support in the clk and pmdomain
subsystems, the following warning happens when the unused clocks are
shutdown in camcc-sc8280xp:

Stuck at _on_ sounds wrong.. does clk_ignore_unused / removing
the sync state from the clock part only resolve this? There may
be a clock dependency for the TITAN_TOP_GDSC that we're failing to
describe


Let me remind that there is a series, which solves this problem in a proper
and elegant way, it would be nice to get the review tags though:

[1] https://lore.kernel.org/linux-clk/20260331140142.892579-1-vladimir.zapolskiy@xxxxxxxxxx

As I mentioned in my other message, this series didn't address my issue.
sc8280xp wasn't included in your series, so I had to make the following
change in my tree:

absolutely, sc8280xp CAMCC should be also fixed in that respect.


diff --git a/drivers/clk/qcom/camcc-sc8280xp.c b/drivers/clk/qcom/camcc-sc8280xp.c
index 18f5a3eb313e1..4724ea54c5f67 100644
--- a/drivers/clk/qcom/camcc-sc8280xp.c
+++ b/drivers/clk/qcom/camcc-sc8280xp.c
@@ -2995,6 +2995,7 @@ static const struct qcom_cc_desc camcc_sc8280xp_desc = {
.num_resets = ARRAY_SIZE(camcc_sc8280xp_resets),
.gdscs = camcc_sc8280xp_gdscs,
.num_gdscs = ARRAY_SIZE(camcc_sc8280xp_gdscs),
+ .cc_gdsc = &titan_top_gdsc,
};
static const struct of_device_id camcc_sc8280xp_match_table[] = {


commenting the series I was also directed by Konrad's review comment on it.
In addition one problem, which I immediate observe, is that camcc_sc8280xp_desc
misses the necessary .use_rpm flag, can you please do me a favour and test
my series plus the add-on change below?

diff --git a/drivers/clk/qcom/camcc-sc8280xp.c b/drivers/clk/qcom/camcc-sc8280xp.c
index 18f5a3eb313e..a15e9754bfb2 100644
--- a/drivers/clk/qcom/camcc-sc8280xp.c
+++ b/drivers/clk/qcom/camcc-sc8280xp.c
@@ -2995,6 +2995,8 @@ static const struct qcom_cc_desc camcc_sc8280xp_desc = {
.num_resets = ARRAY_SIZE(camcc_sc8280xp_resets),
.gdscs = camcc_sc8280xp_gdscs,
.num_gdscs = ARRAY_SIZE(camcc_sc8280xp_gdscs),
+ .use_rpm = true,
+ .cc_gdsc = &titan_top_gdsc,
};
static const struct of_device_id camcc_sc8280xp_match_table[] = {


Anyway despite my posted series and the above change for sc8280xp resolve
one well-established problem in the CAMCC drivers, I believe there might be
more unresolved issues on top, which should be addressed separately.

--
Best wishes,
Vladimir