From: Dmitry Baryshkov Date: Wed, 20 May 2026 14:51:25 +0000 (+0300) Subject: drm/msm/adreno: use version ranges in A8xx UBWC code X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=579f66114027467246e6c480ec028a22dcf25034;p=thirdparty%2Fkernel%2Flinux.git drm/msm/adreno: use version ranges in A8xx UBWC code In order to simplify handling of UBWC minor revisions (like 3.1 or 4.3) use version ranges instead of a case switch. Reviewed-by: Akhil P Oommen Signed-off-by: Dmitry Baryshkov Patchwork: https://patchwork.freedesktop.org/patch/726506/ Link: https://lore.kernel.org/r/20260520-ubwc-rework-v5-18-72f2749bc807@oss.qualcomm.com --- diff --git a/drivers/gpu/drm/msm/adreno/a8xx_gpu.c b/drivers/gpu/drm/msm/adreno/a8xx_gpu.c index 5c73a9ebb22bb..29d559fe46834 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);