summaryrefslogtreecommitdiff
path: root/drivers/clk/qcom/clk-cpu-8996.c
diff options
context:
space:
mode:
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>2023-01-13 15:05:36 +0300
committerBjorn Andersson <andersson@kernel.org>2023-01-19 06:06:51 +0300
commit72537606f03c8007029211867a7fa63d2d41b8b8 (patch)
tree005f44c62cf7c9c4e82066990a5390f7f3c6c010 /drivers/clk/qcom/clk-cpu-8996.c
parentfe8a500534e74de08a2878205404f3c858629da8 (diff)
downloadlinux-72537606f03c8007029211867a7fa63d2d41b8b8.tar.xz
clk: qcom: cpu-8996: skip ACD init if the setup is valid
Check whether L2 registers contain correct values and skip programming if they are valid. This follows the code present downstream. Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Signed-off-by: Bjorn Andersson <andersson@kernel.org> Link: https://lore.kernel.org/r/20230113120544.59320-7-dmitry.baryshkov@linaro.org
Diffstat (limited to 'drivers/clk/qcom/clk-cpu-8996.c')
-rw-r--r--drivers/clk/qcom/clk-cpu-8996.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/clk/qcom/clk-cpu-8996.c b/drivers/clk/qcom/clk-cpu-8996.c
index 0e0c00d44c6f..7e5246ca7e7f 100644
--- a/drivers/clk/qcom/clk-cpu-8996.c
+++ b/drivers/clk/qcom/clk-cpu-8996.c
@@ -472,10 +472,15 @@ static void __iomem *base;
static void qcom_cpu_clk_msm8996_acd_init(void __iomem *base)
{
u64 hwid;
+ u32 val;
unsigned long flags;
spin_lock_irqsave(&qcom_clk_acd_lock, flags);
+ val = kryo_l2_get_indirect_reg(L2ACDTD_REG);
+ if (val == 0x00006a11)
+ goto out;
+
hwid = read_cpuid_mpidr() & CPU_AFINITY_MASK;
kryo_l2_set_indirect_reg(L2ACDTD_REG, 0x00006a11);
@@ -492,6 +497,7 @@ static void qcom_cpu_clk_msm8996_acd_init(void __iomem *base)
writel(0xf, base + PERFCL_REG_OFFSET + SSSCTL_OFFSET);
}
+out:
spin_unlock_irqrestore(&qcom_clk_acd_lock, flags);
}