Commit 72537606 authored by Dmitry Baryshkov's avatar Dmitry Baryshkov Committed by Bjorn Andersson
Browse files

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: default avatarKonrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: default avatarBjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230113120544.59320-7-dmitry.baryshkov@linaro.org
parent fe8a5005
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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);
}