On 10/20/2024 12:29 AM, Dmitry Baryshkov wrote: > 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/ > Just went through the series and the follow up sereies, I think it is a good idea to add the property in the config. Thanks! >> + >> 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 >> > Thanks, Jingyi