Re: [PATCH v3 02/15] clk: qcom: Use qcom_branch_set_clk_en()

From: Johan Hovold
Date: Wed Dec 20 2023 - 03:25:29 EST


On Wed, Dec 20, 2023 at 01:30:43AM +0100, Konrad Dybcio wrote:
> Instead of magically poking at the bit0 of branch clocks' CBCR, use
> the newly introduced helper.
>
> Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx>
> Signed-off-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx>

> diff --git a/drivers/clk/qcom/gcc-sc8280xp.c b/drivers/clk/qcom/gcc-sc8280xp.c
> index bfb77931e868..1ba78990b9f4 100644
> --- a/drivers/clk/qcom/gcc-sc8280xp.c
> +++ b/drivers/clk/qcom/gcc-sc8280xp.c
> @@ -7543,21 +7543,15 @@ static int gcc_sc8280xp_probe(struct platform_device *pdev)
> goto err_put_rpm;
> }
>
> - /*
> - * Keep the clocks always-ON

I think you should keep this part of the comment in some form
throughout, for example:

/* Keep some clocks always on */
qcom_branch_set_clk_en(...);
...

> - * GCC_CAMERA_AHB_CLK, GCC_CAMERA_XO_CLK, GCC_DISP_AHB_CLK,
> - * GCC_DISP_XO_CLK, GCC_GPU_CFG_AHB_CLK, GCC_VIDEO_AHB_CLK,
> - * GCC_VIDEO_XO_CLK, GCC_DISP1_AHB_CLK, GCC_DISP1_XO_CLK
> - */
> - regmap_update_bits(regmap, 0x26004, BIT(0), BIT(0));
> - regmap_update_bits(regmap, 0x26020, BIT(0), BIT(0));
> - regmap_update_bits(regmap, 0x27004, BIT(0), BIT(0));
> - regmap_update_bits(regmap, 0x27028, BIT(0), BIT(0));
> - regmap_update_bits(regmap, 0x71004, BIT(0), BIT(0));
> - regmap_update_bits(regmap, 0x28004, BIT(0), BIT(0));
> - regmap_update_bits(regmap, 0x28028, BIT(0), BIT(0));
> - regmap_update_bits(regmap, 0xbb004, BIT(0), BIT(0));
> - regmap_update_bits(regmap, 0xbb028, BIT(0), BIT(0));
> + qcom_branch_set_clk_en(regmap, 0x26004); /* GCC_CAMERA_AHB_CLK */
> + qcom_branch_set_clk_en(regmap, 0x26020); /* GCC_CAMERA_XO_CLK */
> + qcom_branch_set_clk_en(regmap, 0x27004); /* GCC_DISP_AHB_CLK */
> + qcom_branch_set_clk_en(regmap, 0x27028); /* GCC_DISP_XO_CLK */
> + qcom_branch_set_clk_en(regmap, 0x71004); /* GCC_GPU_CFG_AHB_CLK */
> + qcom_branch_set_clk_en(regmap, 0x28004); /* GCC_VIDEO_AHB_CLK */
> + qcom_branch_set_clk_en(regmap, 0x28028); /* GCC_VIDEO_XO_CLK */
> + qcom_branch_set_clk_en(regmap, 0xbb004); /* GCC_DISP1_AHB_CLK */
> + qcom_branch_set_clk_en(regmap, 0xbb028); /* GCC_DISP1_XO_CLK */
>
> ret = qcom_cc_register_rcg_dfs(regmap, gcc_dfs_clocks, ARRAY_SIZE(gcc_dfs_clocks));
> if (ret)

Johan