drm/msm/a6xx: Skip empty protection ranges entries
authorKonrad Dybcio <konrad.dybcio@linaro.org>
Tue, 20 Jun 2023 11:10:38 +0000 (13:10 +0200)
committerRob Clark <robdclark@chromium.org>
Mon, 7 Aug 2023 21:30:49 +0000 (14:30 -0700)
Some specific SKUs leave certain protection range registers empty.
Allow for that behavior.

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/543334/
Signed-off-by: Rob Clark <robdclark@chromium.org>
drivers/gpu/drm/msm/adreno/a6xx_gpu.c

index e0c90393cda502a38fc00d47fb3ab94df57a3b6d..15006ba63b6a7ecffe026af1a80e66d697900b36 100644 (file)
@@ -935,8 +935,11 @@ static void a6xx_set_cp_protect(struct msm_gpu *gpu)
                  A6XX_CP_PROTECT_CNTL_ACCESS_FAULT_ON_VIOL_EN |
                  A6XX_CP_PROTECT_CNTL_LAST_SPAN_INF_RANGE);
 
-       for (i = 0; i < count - 1; i++)
-               gpu_write(gpu, REG_A6XX_CP_PROTECT(i), regs[i]);
+       for (i = 0; i < count - 1; i++) {
+               /* Intentionally skip writing to some registers */
+               if (regs[i])
+                       gpu_write(gpu, REG_A6XX_CP_PROTECT(i), regs[i]);
+       }
        /* last CP_PROTECT to have "infinite" length on the last entry */
        gpu_write(gpu, REG_A6XX_CP_PROTECT(count_max - 1), regs[i]);
 }