Re: [PATCH v4 19/29] drm/msm/adreno: use version ranges in A8xx UBWC code

From: Akhil P Oommen

Date: Thu May 07 2026 - 11:03:40 EST


On 5/7/2026 6:33 PM, Dmitry Baryshkov wrote:
> In order to simplify handling of UBWC minor revisions (like 3.1 or 4.3)
> use version ranges instead of a case switch.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxxxxxxxx>

Reviewed-by: Akhil P Oommen <akhilpo@xxxxxxxxxxxxxxxx>

-Akhil

> ---
> drivers/gpu/drm/msm/adreno/a8xx_gpu.c | 32 +++++++++++++++-----------------
> 1 file changed, 15 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/adreno/a8xx_gpu.c b/drivers/gpu/drm/msm/adreno/a8xx_gpu.c
> index 5c73a9ebb22b..29d559fe4683 100644
> --- a/drivers/gpu/drm/msm/adreno/a8xx_gpu.c
> +++ b/drivers/gpu/drm/msm/adreno/a8xx_gpu.c
> @@ -286,26 +286,24 @@ static void a8xx_set_ubwc_config(struct msm_gpu *gpu)
> u32 hbb, hbb_hi, hbb_lo, mode;
> u8 uavflagprd_inv = 2;
>
> - switch (ubwc_version) {
> - case UBWC_6_0:
> + if (ubwc_version > UBWC_6_0)
> + dev_err(&gpu->pdev->dev, "Unknown UBWC version: 0x%x\n", ubwc_version);
> +
> + if (ubwc_version == UBWC_6_0)
> yuvnotcomptofc = true;
> - rgb565_predicator = true;
> - break;
> - case UBWC_5_0:
> - rgb565_predicator = true;
> - break;
> - case UBWC_4_0:
> - rgb565_predicator = true;
> - fp16compoptdis = true;
> +
> + if (ubwc_version < UBWC_5_0 &&
> + ubwc_version >= UBWC_4_0)
> rgba8888_lossless = true;
> - break;
> - case UBWC_3_0:
> +
> + if (ubwc_version < UBWC_4_3)
> fp16compoptdis = true;
> - break;
> - default:
> - dev_err(&gpu->pdev->dev, "Unknown UBWC version: 0x%x\n", ubwc_version);
> - break;
> - }
> +
> + if (cfg->ubwc_enc_version >= UBWC_4_0)
> + rgb565_predicator = true;
> +
> + if (ubwc_version < UBWC_3_0)
> + dev_err(&gpu->pdev->dev, "Unsupported UBWC version: 0x%x\n", ubwc_version);
>
> mode = qcom_ubwc_version_tag(cfg);
>
>