Thank you for your contribution! Sashiko AI review found 1 potential issue(s) 
to consider:
- [High] drm/msm: mdss: missing qcom,sm7250 UBWC config breaks msm_mdss_init()
--

commit 0057475d95677bf9a33c044b3beaf8c21ba53ed1
Author: Ishu Brar <[email protected]>

drm/msm: mdss: Add SM7250 support

This commit adds the qcom,sm7250-mdss compatible entry to mdss_dt_match[]
to enable MDSS support on SM7250 platforms.

> diff --git a/drivers/gpu/drm/msm/msm_mdss.c b/drivers/gpu/drm/msm/msm_mdss.c
> index e69b122f2687a..f619052bbb463 100644
> --- a/drivers/gpu/drm/msm/msm_mdss.c
> +++ b/drivers/gpu/drm/msm/msm_mdss.c
> @@ -562,6 +562,7 @@ static const struct of_device_id mdss_dt_match[] = {
>       { .compatible = "qcom,sm6350-mdss", .data = &data_76k8 },
>       { .compatible = "qcom,sm6375-mdss", .data = &data_76k8 },
>       { .compatible = "qcom,sm7150-mdss", .data = &data_76k8 },
> +     { .compatible = "qcom,sm7250-mdss", .data = &data_76k8 },

[Severity: High]
Will mdss_probe() and dpu_kms_hw_init() fail with -EINVAL on SM7250 because
qcom,sm7250 is missing from qcom_ubwc_configs[]?

During probe, mdss_probe() -> msm_mdss_init() requires a valid UBWC
configuration:

drivers/gpu/drm/msm/msm_mdss.c:msm_mdss_init() {
        ...
        msm_mdss->mdss_data = qcom_ubwc_config_get_data();
        if (IS_ERR(msm_mdss->mdss_data))
                return ERR_CAST(msm_mdss->mdss_data);
        ...
}

Similarly, dpu_kms_hw_init() in drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
calls qcom_ubwc_config_get_data() and aborts on error:

drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c:dpu_kms_hw_init() {
        ...
        dpu_kms->mdss = qcom_ubwc_config_get_data();
        if (IS_ERR(dpu_kms->mdss)) {
                rc = PTR_ERR(dpu_kms->mdss);
                DPU_ERROR("failed to get UBWC config data: %d\n", rc);
                goto err_pm_put;
        }
        ...
}

Because DRM_MSM selects QCOM_UBWC_CONFIG, qcom_ubwc_config_get_data() in
drivers/soc/qcom/ubwc_config.c matches the root machine compatible against
qcom_ubwc_configs[] via of_machine_get_match_data() and returns
ERR_PTR(-EINVAL) when no entry is found.

Currently, qcom_ubwc_configs[] only contains entries for qcom,sm7125,
qcom,sm7150, qcom,sm7225, and qcom,sm7325 in the SM7xxx family:

drivers/soc/qcom/ubwc_config.c:
        { .compatible = "qcom,sm7150", .data = &ubwc_2_0_hbb14, },
        { .compatible = "qcom,sm7225", .data = &ubwc_2_0_hbb14, },
        { .compatible = "qcom,sm7325", .data = &ubwc_3_1_hbb14, },

Does qcom_ubwc_configs[] also need a qcom,sm7250 entry so that MDSS and DPU
initialization can succeed on SM7250?

-- 
Sashiko AI review ยท 
https://sashiko.dev/#/patchset/[email protected]?part=5

Reply via email to