On Thu, Oct 10, 2024 at 06:08:47PM +0800, Jingyi Wang wrote: > Add LLCC configuration for the QCS8300 platform. There is an errata on > LB_CNT information on QCS8300 platform, override the value to get the > right number of banks. > > Signed-off-by: Jingyi Wang <quic_jingyw@xxxxxxxxxxx> > --- > drivers/soc/qcom/llcc-qcom.c | 72 ++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 72 insertions(+) > > @@ -3391,6 +3456,12 @@ static int qcom_llcc_probe(struct platform_device *pdev) > num_banks >>= LLCC_LB_CNT_SHIFT; > drv_data->num_banks = num_banks; > > + /* LB_CNT information is wrong on QCS8300, override the value */ > + if (of_device_is_compatible(dev->of_node, "qcom,qcs8300-llcc")) { > + num_banks = 4; > + drv_data->num_banks = 4; > + } Nit: I think it might be better to skip reading LLCC_COMMON_STATUS0 register completely and just set num_banks instead. See [1] [1] https://lore.kernel.org/linux-arm-msm/20241019-sar2130p-llcc-v1-2-4e09063d04f2@xxxxxxxxxx/ > + > drv_data->regmaps = devm_kcalloc(dev, num_banks, sizeof(*drv_data->regmaps), GFP_KERNEL); > if (!drv_data->regmaps) { > ret = -ENOMEM; > @@ -3484,6 +3555,7 @@ static int qcom_llcc_probe(struct platform_device *pdev) > } > > static const struct of_device_id qcom_llcc_of_match[] = { > + { .compatible = "qcom,qcs8300-llcc", .data = &qcs8300_cfgs}, > { .compatible = "qcom,qdu1000-llcc", .data = &qdu1000_cfgs}, > { .compatible = "qcom,sa8775p-llcc", .data = &sa8775p_cfgs }, > { .compatible = "qcom,sc7180-llcc", .data = &sc7180_cfgs }, > > -- > 2.25.1 > -- With best wishes Dmitry