]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
clk: qcom: gcc-glymur: Update the halt check flags for pipe clocks
authorTaniya Das <taniya.das@oss.qualcomm.com>
Thu, 25 Sep 2025 10:19:00 +0000 (15:49 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 Dec 2025 13:02:35 +0000 (14:02 +0100)
[ Upstream commit 18da820eb632fbd99167f3fc6650a30db714ddfd ]

The pipe clocks for PCIE and USB are externally sourced and they should
not be polled by the clock driver. Update the halt_check flags to 'SKIP'
to disable polling for these clocks.

This helps avoid the clock status stuck at 'off' warnings, which are
benign, since all consumers of the PHYs must initialize a given instance
before performing any operations.

Fixes: efe504300a17 ("clk: qcom: gcc: Add support for Global Clock Controller")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Taniya Das <taniya.das@oss.qualcomm.com>
Reviewed-by: Imran Shaik <imran.shaik@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250925-glymur_gcc_usb_fixes-v2-1-ee4619571efe@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/clk/qcom/gcc-glymur.c

index 62059120f9720bbac03852c0368f4de3038a559c..d938e7dc5b66ec539c3264a2e212b3d6878b1fde 100644 (file)
@@ -6760,7 +6760,7 @@ static struct clk_branch gcc_usb3_prim_phy_com_aux_clk = {
 
 static struct clk_branch gcc_usb3_prim_phy_pipe_clk = {
        .halt_reg = 0x3f088,
-       .halt_check = BRANCH_HALT_DELAY,
+       .halt_check = BRANCH_HALT_SKIP,
        .hwcg_reg = 0x3f088,
        .hwcg_bit = 1,
        .clkr = {
@@ -6816,7 +6816,7 @@ static struct clk_branch gcc_usb3_sec_phy_com_aux_clk = {
 
 static struct clk_branch gcc_usb3_sec_phy_pipe_clk = {
        .halt_reg = 0xe2078,
-       .halt_check = BRANCH_HALT_VOTED,
+       .halt_check = BRANCH_HALT_SKIP,
        .hwcg_reg = 0xe2078,
        .hwcg_bit = 1,
        .clkr = {
@@ -6872,7 +6872,7 @@ static struct clk_branch gcc_usb3_tert_phy_com_aux_clk = {
 
 static struct clk_branch gcc_usb3_tert_phy_pipe_clk = {
        .halt_reg = 0xe1078,
-       .halt_check = BRANCH_HALT_VOTED,
+       .halt_check = BRANCH_HALT_SKIP,
        .hwcg_reg = 0xe1078,
        .hwcg_bit = 1,
        .clkr = {
@@ -6961,7 +6961,7 @@ static struct clk_branch gcc_usb4_0_master_clk = {
 
 static struct clk_branch gcc_usb4_0_phy_p2rr2p_pipe_clk = {
        .halt_reg = 0x2b0f4,
-       .halt_check = BRANCH_HALT,
+       .halt_check = BRANCH_HALT_SKIP,
        .clkr = {
                .enable_reg = 0x2b0f4,
                .enable_mask = BIT(0),
@@ -6979,7 +6979,7 @@ static struct clk_branch gcc_usb4_0_phy_p2rr2p_pipe_clk = {
 
 static struct clk_branch gcc_usb4_0_phy_pcie_pipe_clk = {
        .halt_reg = 0x2b04c,
-       .halt_check = BRANCH_HALT_VOTED,
+       .halt_check = BRANCH_HALT_SKIP,
        .clkr = {
                .enable_reg = 0x62010,
                .enable_mask = BIT(11),
@@ -7033,7 +7033,7 @@ static struct clk_branch gcc_usb4_0_phy_rx1_clk = {
 
 static struct clk_branch gcc_usb4_0_phy_usb_pipe_clk = {
        .halt_reg = 0x2b0bc,
-       .halt_check = BRANCH_HALT_VOTED,
+       .halt_check = BRANCH_HALT_SKIP,
        .hwcg_reg = 0x2b0bc,
        .hwcg_bit = 1,
        .clkr = {
@@ -7196,7 +7196,7 @@ static struct clk_branch gcc_usb4_1_master_clk = {
 
 static struct clk_branch gcc_usb4_1_phy_p2rr2p_pipe_clk = {
        .halt_reg = 0x2d118,
-       .halt_check = BRANCH_HALT,
+       .halt_check = BRANCH_HALT_SKIP,
        .clkr = {
                .enable_reg = 0x2d118,
                .enable_mask = BIT(0),
@@ -7214,7 +7214,7 @@ static struct clk_branch gcc_usb4_1_phy_p2rr2p_pipe_clk = {
 
 static struct clk_branch gcc_usb4_1_phy_pcie_pipe_clk = {
        .halt_reg = 0x2d04c,
-       .halt_check = BRANCH_HALT_VOTED,
+       .halt_check = BRANCH_HALT_SKIP,
        .clkr = {
                .enable_reg = 0x62010,
                .enable_mask = BIT(12),
@@ -7268,7 +7268,7 @@ static struct clk_branch gcc_usb4_1_phy_rx1_clk = {
 
 static struct clk_branch gcc_usb4_1_phy_usb_pipe_clk = {
        .halt_reg = 0x2d0e0,
-       .halt_check = BRANCH_HALT_VOTED,
+       .halt_check = BRANCH_HALT_SKIP,
        .hwcg_reg = 0x2d0e0,
        .hwcg_bit = 1,
        .clkr = {
@@ -7431,7 +7431,7 @@ static struct clk_branch gcc_usb4_2_master_clk = {
 
 static struct clk_branch gcc_usb4_2_phy_p2rr2p_pipe_clk = {
        .halt_reg = 0xe00f8,
-       .halt_check = BRANCH_HALT,
+       .halt_check = BRANCH_HALT_SKIP,
        .clkr = {
                .enable_reg = 0xe00f8,
                .enable_mask = BIT(0),
@@ -7449,7 +7449,7 @@ static struct clk_branch gcc_usb4_2_phy_p2rr2p_pipe_clk = {
 
 static struct clk_branch gcc_usb4_2_phy_pcie_pipe_clk = {
        .halt_reg = 0xe004c,
-       .halt_check = BRANCH_HALT_VOTED,
+       .halt_check = BRANCH_HALT_SKIP,
        .clkr = {
                .enable_reg = 0x62010,
                .enable_mask = BIT(13),
@@ -7503,7 +7503,7 @@ static struct clk_branch gcc_usb4_2_phy_rx1_clk = {
 
 static struct clk_branch gcc_usb4_2_phy_usb_pipe_clk = {
        .halt_reg = 0xe00c0,
-       .halt_check = BRANCH_HALT_VOTED,
+       .halt_check = BRANCH_HALT_SKIP,
        .hwcg_reg = 0xe00c0,
        .hwcg_bit = 1,
        .clkr = {