* [PATCH] clk: qcom: gcc-glymur: use collapse-voting for PCIe GDSCs
@ 2026-10-28 9:35 Taniya Das
2026-10-28 12:58 ` Konrad Dybcio
2026-10-28 15:32 ` Abel Vesa
0 siblings, 2 replies; 3+ messages in thread
From: Taniya Das @ 2026-10-28 9:35 UTC (permalink / raw)
To: Bjorn Andersson, Abel Vesa, Stephen Boyd, Brian Masney,
Jerome Brunet, Konrad Dybcio, Dmitry Baryshkov
Cc: Ajit Pandey, Imran Shaik, Jagadeesh Kona, Qiang Yu,
linux-arm-msm, linux-clk, linux-kernel, Taniya Das
The PCIe GDSCs can be shared with other masters and should use the APCS
collapse-vote register when updating the power state.
This is also needed to disable power domains that boot firmware enabled
through the vote register.
Describe the collapse-vote register and mask for every PCIe and PCIe PHY
GDSC.
Fixes: efe504300a17 ("clk: qcom: gcc: Add support for Global Clock Controller")
Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com>
---
drivers/clk/qcom/gcc-glymur.c | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/drivers/clk/qcom/gcc-glymur.c b/drivers/clk/qcom/gcc-glymur.c
index be18a555fe314a41e5335ce8cc100ae8ed226ccb..11be8fa7c7de7c26cc3f69279cc3d5608bbb89a7 100644
--- a/drivers/clk/qcom/gcc-glymur.c
+++ b/drivers/clk/qcom/gcc-glymur.c
@@ -7581,6 +7581,8 @@ static struct gdsc gcc_pcie_0_tunnel_gdsc = {
.en_rest_wait_val = 0x2,
.en_few_wait_val = 0x2,
.clk_dis_wait_val = 0xf,
+ .collapse_ctrl = 0x6214c,
+ .collapse_mask = BIT(2),
.pd = {
.name = "gcc_pcie_0_tunnel_gdsc",
},
@@ -7593,6 +7595,8 @@ static struct gdsc gcc_pcie_1_tunnel_gdsc = {
.en_rest_wait_val = 0x2,
.en_few_wait_val = 0x2,
.clk_dis_wait_val = 0xf,
+ .collapse_ctrl = 0x6214c,
+ .collapse_mask = BIT(1),
.pd = {
.name = "gcc_pcie_1_tunnel_gdsc",
},
@@ -7605,6 +7609,8 @@ static struct gdsc gcc_pcie_2_tunnel_gdsc = {
.en_rest_wait_val = 0x2,
.en_few_wait_val = 0x2,
.clk_dis_wait_val = 0xf,
+ .collapse_ctrl = 0x6214c,
+ .collapse_mask = BIT(3),
.pd = {
.name = "gcc_pcie_2_tunnel_gdsc",
},
@@ -7617,6 +7623,8 @@ static struct gdsc gcc_pcie_3a_gdsc = {
.en_rest_wait_val = 0x2,
.en_few_wait_val = 0x2,
.clk_dis_wait_val = 0xf,
+ .collapse_ctrl = 0x6214c,
+ .collapse_mask = BIT(4),
.pd = {
.name = "gcc_pcie_3a_gdsc",
},
@@ -7629,6 +7637,8 @@ static struct gdsc gcc_pcie_3a_phy_gdsc = {
.en_rest_wait_val = 0x2,
.en_few_wait_val = 0x2,
.clk_dis_wait_val = 0x2,
+ .collapse_ctrl = 0x6214c,
+ .collapse_mask = BIT(5),
.pd = {
.name = "gcc_pcie_3a_phy_gdsc",
},
@@ -7641,6 +7651,8 @@ static struct gdsc gcc_pcie_3b_gdsc = {
.en_rest_wait_val = 0x2,
.en_few_wait_val = 0x2,
.clk_dis_wait_val = 0xf,
+ .collapse_ctrl = 0x6214c,
+ .collapse_mask = BIT(6),
.pd = {
.name = "gcc_pcie_3b_gdsc",
},
@@ -7653,6 +7665,8 @@ static struct gdsc gcc_pcie_3b_phy_gdsc = {
.en_rest_wait_val = 0x2,
.en_few_wait_val = 0x2,
.clk_dis_wait_val = 0x2,
+ .collapse_ctrl = 0x6214c,
+ .collapse_mask = BIT(7),
.pd = {
.name = "gcc_pcie_3b_phy_gdsc",
},
@@ -7665,6 +7679,8 @@ static struct gdsc gcc_pcie_4_gdsc = {
.en_rest_wait_val = 0x2,
.en_few_wait_val = 0x2,
.clk_dis_wait_val = 0xf,
+ .collapse_ctrl = 0x6214c,
+ .collapse_mask = BIT(10),
.pd = {
.name = "gcc_pcie_4_gdsc",
},
@@ -7677,6 +7693,8 @@ static struct gdsc gcc_pcie_4_phy_gdsc = {
.en_rest_wait_val = 0x2,
.en_few_wait_val = 0x2,
.clk_dis_wait_val = 0x2,
+ .collapse_ctrl = 0x6214c,
+ .collapse_mask = BIT(11),
.pd = {
.name = "gcc_pcie_4_phy_gdsc",
},
@@ -7689,6 +7707,8 @@ static struct gdsc gcc_pcie_5_gdsc = {
.en_rest_wait_val = 0x2,
.en_few_wait_val = 0x2,
.clk_dis_wait_val = 0xf,
+ .collapse_ctrl = 0x6214c,
+ .collapse_mask = BIT(8),
.pd = {
.name = "gcc_pcie_5_gdsc",
},
@@ -7701,6 +7721,8 @@ static struct gdsc gcc_pcie_5_phy_gdsc = {
.en_rest_wait_val = 0x2,
.en_few_wait_val = 0x2,
.clk_dis_wait_val = 0x2,
+ .collapse_ctrl = 0x6214c,
+ .collapse_mask = BIT(9),
.pd = {
.name = "gcc_pcie_5_phy_gdsc",
},
@@ -7713,6 +7735,8 @@ static struct gdsc gcc_pcie_6_gdsc = {
.en_rest_wait_val = 0x2,
.en_few_wait_val = 0x2,
.clk_dis_wait_val = 0xf,
+ .collapse_ctrl = 0x6214c,
+ .collapse_mask = BIT(12),
.pd = {
.name = "gcc_pcie_6_gdsc",
},
@@ -7725,6 +7749,8 @@ static struct gdsc gcc_pcie_6_phy_gdsc = {
.en_rest_wait_val = 0x2,
.en_few_wait_val = 0x2,
.clk_dis_wait_val = 0x2,
+ .collapse_ctrl = 0x6214c,
+ .collapse_mask = BIT(13),
.pd = {
.name = "gcc_pcie_6_phy_gdsc",
},
---
base-commit: 151a134a4e6ec66f69db8750c66006f5207f7a9d
change-id: 20261028-gcc_glymur_pcie-b38a0970773d
Best regards,
--
Taniya Das <taniya.das@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] clk: qcom: gcc-glymur: use collapse-voting for PCIe GDSCs
2026-10-28 9:35 [PATCH] clk: qcom: gcc-glymur: use collapse-voting for PCIe GDSCs Taniya Das
@ 2026-10-28 12:58 ` Konrad Dybcio
2026-10-28 15:32 ` Abel Vesa
1 sibling, 0 replies; 3+ messages in thread
From: Konrad Dybcio @ 2026-10-28 12:58 UTC (permalink / raw)
To: Taniya Das, Bjorn Andersson, Abel Vesa, Stephen Boyd,
Brian Masney, Jerome Brunet, Dmitry Baryshkov
Cc: Ajit Pandey, Imran Shaik, Jagadeesh Kona, Qiang Yu,
linux-arm-msm, linux-clk, linux-kernel
On 10/28/26 10:35 AM, Taniya Das wrote:
> The PCIe GDSCs can be shared with other masters and should use the APCS
> collapse-vote register when updating the power state.
>
> This is also needed to disable power domains that boot firmware enabled
> through the vote register.
>
> Describe the collapse-vote register and mask for every PCIe and PCIe PHY
> GDSC.
>
> Fixes: efe504300a17 ("clk: qcom: gcc: Add support for Global Clock Controller")
> Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] clk: qcom: gcc-glymur: use collapse-voting for PCIe GDSCs
2026-10-28 9:35 [PATCH] clk: qcom: gcc-glymur: use collapse-voting for PCIe GDSCs Taniya Das
2026-10-28 12:58 ` Konrad Dybcio
@ 2026-10-28 15:32 ` Abel Vesa
1 sibling, 0 replies; 3+ messages in thread
From: Abel Vesa @ 2026-10-28 15:32 UTC (permalink / raw)
To: Taniya Das
Cc: Bjorn Andersson, Abel Vesa, Stephen Boyd, Brian Masney,
Jerome Brunet, Konrad Dybcio, Dmitry Baryshkov, Ajit Pandey,
Imran Shaik, Jagadeesh Kona, Qiang Yu, linux-arm-msm, linux-clk,
linux-kernel
On 26-10-28 15:05:32, Taniya Das wrote:
> The PCIe GDSCs can be shared with other masters and should use the APCS
> collapse-vote register when updating the power state.
>
> This is also needed to disable power domains that boot firmware enabled
> through the vote register.
>
> Describe the collapse-vote register and mask for every PCIe and PCIe PHY
> GDSC.
>
> Fixes: efe504300a17 ("clk: qcom: gcc: Add support for Global Clock Controller")
> Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com>
Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-10-28 15:32 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-28 9:35 [PATCH] clk: qcom: gcc-glymur: use collapse-voting for PCIe GDSCs Taniya Das
2026-10-28 12:58 ` Konrad Dybcio
2026-10-28 15:32 ` Abel Vesa
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®