clk: qcom: gcc-msm8996: Remove RPM bus clocks
authorKonrad Dybcio <konrad.dybcio@linaro.org>
Thu, 31 Aug 2023 09:39:14 +0000 (11:39 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 20 Nov 2023 10:51:55 +0000 (11:51 +0100)
[ Upstream commit 4afda5f6bcdf673ef2556fcfa458daf3a5a648d8 ]

The GCC driver contains clocks that are owned (meaning configured and
scaled) by the RPM core.

Remove them from Linux to stop interjecting the RPM's logic.

Fixes: b1e010c0730a ("clk: qcom: Add MSM8996 Global Clock Control (GCC) driver")
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Tested-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20230830-topic-rpmbusclocks8996gcc-v1-1-9e99bedcdc3b@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/clk/qcom/gcc-msm8996.c

index e161637..ff5a167 100644 (file)
@@ -245,71 +245,6 @@ static const struct clk_parent_data gcc_xo_gpll0_gpll4_gpll0_early_div[] = {
        { .hw = &gpll0_early_div.hw }
 };
 
-static const struct freq_tbl ftbl_system_noc_clk_src[] = {
-       F(19200000, P_XO, 1, 0, 0),
-       F(50000000, P_GPLL0_EARLY_DIV, 6, 0, 0),
-       F(100000000, P_GPLL0, 6, 0, 0),
-       F(150000000, P_GPLL0, 4, 0, 0),
-       F(200000000, P_GPLL0, 3, 0, 0),
-       F(240000000, P_GPLL0, 2.5, 0, 0),
-       { }
-};
-
-static struct clk_rcg2 system_noc_clk_src = {
-       .cmd_rcgr = 0x0401c,
-       .hid_width = 5,
-       .parent_map = gcc_xo_gpll0_gpll0_early_div_map,
-       .freq_tbl = ftbl_system_noc_clk_src,
-       .clkr.hw.init = &(struct clk_init_data){
-               .name = "system_noc_clk_src",
-               .parent_data = gcc_xo_gpll0_gpll0_early_div,
-               .num_parents = ARRAY_SIZE(gcc_xo_gpll0_gpll0_early_div),
-               .ops = &clk_rcg2_ops,
-       },
-};
-
-static const struct freq_tbl ftbl_config_noc_clk_src[] = {
-       F(19200000, P_XO, 1, 0, 0),
-       F(37500000, P_GPLL0, 16, 0, 0),
-       F(75000000, P_GPLL0, 8, 0, 0),
-       { }
-};
-
-static struct clk_rcg2 config_noc_clk_src = {
-       .cmd_rcgr = 0x0500c,
-       .hid_width = 5,
-       .parent_map = gcc_xo_gpll0_map,
-       .freq_tbl = ftbl_config_noc_clk_src,
-       .clkr.hw.init = &(struct clk_init_data){
-               .name = "config_noc_clk_src",
-               .parent_data = gcc_xo_gpll0,
-               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
-               .ops = &clk_rcg2_ops,
-       },
-};
-
-static const struct freq_tbl ftbl_periph_noc_clk_src[] = {
-       F(19200000, P_XO, 1, 0, 0),
-       F(37500000, P_GPLL0, 16, 0, 0),
-       F(50000000, P_GPLL0, 12, 0, 0),
-       F(75000000, P_GPLL0, 8, 0, 0),
-       F(100000000, P_GPLL0, 6, 0, 0),
-       { }
-};
-
-static struct clk_rcg2 periph_noc_clk_src = {
-       .cmd_rcgr = 0x06014,
-       .hid_width = 5,
-       .parent_map = gcc_xo_gpll0_map,
-       .freq_tbl = ftbl_periph_noc_clk_src,
-       .clkr.hw.init = &(struct clk_init_data){
-               .name = "periph_noc_clk_src",
-               .parent_data = gcc_xo_gpll0,
-               .num_parents = ARRAY_SIZE(gcc_xo_gpll0),
-               .ops = &clk_rcg2_ops,
-       },
-};
-
 static const struct freq_tbl ftbl_usb30_master_clk_src[] = {
        F(19200000, P_XO, 1, 0, 0),
        F(120000000, P_GPLL0, 5, 0, 0),
@@ -1298,11 +1233,7 @@ static struct clk_branch gcc_mmss_noc_cfg_ahb_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_mmss_noc_cfg_ahb_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &config_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED,
+                       .flags = CLK_IGNORE_UNUSED,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -1465,11 +1396,6 @@ static struct clk_branch gcc_usb_phy_cfg_ahb2phy_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_usb_phy_cfg_ahb2phy_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &periph_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -1499,11 +1425,6 @@ static struct clk_branch gcc_sdcc1_ahb_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_sdcc1_ahb_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &periph_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -1550,11 +1471,6 @@ static struct clk_branch gcc_sdcc2_ahb_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_sdcc2_ahb_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &periph_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -1584,11 +1500,6 @@ static struct clk_branch gcc_sdcc3_ahb_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_sdcc3_ahb_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &periph_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -1618,11 +1529,6 @@ static struct clk_branch gcc_sdcc4_ahb_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_sdcc4_ahb_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &periph_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -1636,11 +1542,6 @@ static struct clk_branch gcc_blsp1_ahb_clk = {
                .enable_mask = BIT(17),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_blsp1_ahb_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &periph_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -1978,11 +1879,6 @@ static struct clk_branch gcc_blsp2_ahb_clk = {
                .enable_mask = BIT(15),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_blsp2_ahb_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &periph_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -2319,11 +2215,6 @@ static struct clk_branch gcc_pdm_ahb_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_pdm_ahb_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &periph_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -2354,11 +2245,6 @@ static struct clk_branch gcc_prng_ahb_clk = {
                .enable_mask = BIT(13),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_prng_ahb_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &config_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -2371,11 +2257,6 @@ static struct clk_branch gcc_tsif_ahb_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_tsif_ahb_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &periph_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -2423,11 +2304,6 @@ static struct clk_branch gcc_boot_rom_ahb_clk = {
                .enable_mask = BIT(10),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_boot_rom_ahb_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &config_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -2521,11 +2397,6 @@ static struct clk_branch gcc_pcie_0_slv_axi_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_pcie_0_slv_axi_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &system_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -2538,11 +2409,6 @@ static struct clk_branch gcc_pcie_0_mstr_axi_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_pcie_0_mstr_axi_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &system_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -2555,11 +2421,6 @@ static struct clk_branch gcc_pcie_0_cfg_ahb_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_pcie_0_cfg_ahb_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &config_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -2607,11 +2468,6 @@ static struct clk_branch gcc_pcie_1_slv_axi_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_pcie_1_slv_axi_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &system_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -2624,11 +2480,6 @@ static struct clk_branch gcc_pcie_1_mstr_axi_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_pcie_1_mstr_axi_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &system_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -2641,11 +2492,6 @@ static struct clk_branch gcc_pcie_1_cfg_ahb_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_pcie_1_cfg_ahb_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &config_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -2693,11 +2539,6 @@ static struct clk_branch gcc_pcie_2_slv_axi_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_pcie_2_slv_axi_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &system_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -2710,11 +2551,6 @@ static struct clk_branch gcc_pcie_2_mstr_axi_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_pcie_2_mstr_axi_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &system_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -2727,11 +2563,6 @@ static struct clk_branch gcc_pcie_2_cfg_ahb_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_pcie_2_cfg_ahb_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &config_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -2779,11 +2610,6 @@ static struct clk_branch gcc_pcie_phy_cfg_ahb_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_pcie_phy_cfg_ahb_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &config_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -2830,11 +2656,6 @@ static struct clk_branch gcc_ufs_ahb_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_ufs_ahb_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &config_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -3061,11 +2882,7 @@ static struct clk_branch gcc_aggre0_snoc_axi_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_aggre0_snoc_axi_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &system_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL,
+                       .flags = CLK_IS_CRITICAL,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -3078,11 +2895,7 @@ static struct clk_branch gcc_aggre0_cnoc_ahb_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_aggre0_cnoc_ahb_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &config_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL,
+                       .flags = CLK_IS_CRITICAL,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -3095,11 +2908,7 @@ static struct clk_branch gcc_smmu_aggre0_axi_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_smmu_aggre0_axi_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &system_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL,
+                       .flags = CLK_IS_CRITICAL,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -3112,11 +2921,7 @@ static struct clk_branch gcc_smmu_aggre0_ahb_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_smmu_aggre0_ahb_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &config_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL,
+                       .flags = CLK_IS_CRITICAL,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -3163,10 +2968,6 @@ static struct clk_branch gcc_dcc_ahb_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_dcc_ahb_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &config_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -3179,10 +2980,6 @@ static struct clk_branch gcc_aggre0_noc_mpu_cfg_ahb_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_aggre0_noc_mpu_cfg_ahb_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &config_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -3195,11 +2992,6 @@ static struct clk_branch gcc_qspi_ahb_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_qspi_ahb_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &periph_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
-                       .flags = CLK_SET_RATE_PARENT,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -3348,10 +3140,6 @@ static struct clk_branch gcc_mss_cfg_ahb_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_mss_cfg_ahb_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &config_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -3364,10 +3152,6 @@ static struct clk_branch gcc_mss_mnoc_bimc_axi_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_mss_mnoc_bimc_axi_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &system_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -3380,10 +3164,6 @@ static struct clk_branch gcc_mss_snoc_axi_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_mss_snoc_axi_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &system_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -3396,10 +3176,6 @@ static struct clk_branch gcc_mss_q6_bimc_axi_clk = {
                .enable_mask = BIT(0),
                .hw.init = &(struct clk_init_data){
                        .name = "gcc_mss_q6_bimc_axi_clk",
-                       .parent_hws = (const struct clk_hw*[]){
-                               &system_noc_clk_src.clkr.hw,
-                       },
-                       .num_parents = 1,
                        .ops = &clk_branch2_ops,
                },
        },
@@ -3495,9 +3271,6 @@ static struct clk_regmap *gcc_msm8996_clocks[] = {
        [GPLL0] = &gpll0.clkr,
        [GPLL4_EARLY] = &gpll4_early.clkr,
        [GPLL4] = &gpll4.clkr,
-       [SYSTEM_NOC_CLK_SRC] = &system_noc_clk_src.clkr,
-       [CONFIG_NOC_CLK_SRC] = &config_noc_clk_src.clkr,
-       [PERIPH_NOC_CLK_SRC] = &periph_noc_clk_src.clkr,
        [USB30_MASTER_CLK_SRC] = &usb30_master_clk_src.clkr,
        [USB30_MOCK_UTMI_CLK_SRC] = &usb30_mock_utmi_clk_src.clkr,
        [USB3_PHY_AUX_CLK_SRC] = &usb3_phy_aux_clk_src.clkr,