OSDN Git Service

drm/msm/a5xx: Disable UCHE global filter
authorKonrad Dybcio <konrad.dybcio@somainline.org>
Wed, 13 Jan 2021 18:33:39 +0000 (19:33 +0100)
committerRob Clark <robdclark@chromium.org>
Sun, 31 Jan 2021 19:34:35 +0000 (11:34 -0800)
Port over the command from downstream to prevent undefined
behaviour.

Signed-off-by: Konrad Dybcio <konrad.dybcio@somainline.org>
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org>
Reviewed-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@chromium.org>
drivers/gpu/drm/msm/adreno/a5xx.xml.h
drivers/gpu/drm/msm/adreno/a5xx_gpu.c

index 346cc6f..7b9fcfe 100644 (file)
@@ -2367,6 +2367,8 @@ static inline uint32_t A5XX_VSC_RESOLVE_CNTL_Y(uint32_t val)
 
 #define REG_A5XX_UCHE_ADDR_MODE_CNTL                           0x00000e80
 
+#define REG_A5XX_UCHE_MODE_CNTL                                        0x00000e81
+
 #define REG_A5XX_UCHE_SVM_CNTL                                 0x00000e82
 
 #define REG_A5XX_UCHE_WRITE_THRU_BASE_LO                       0x00000e87
index 23fc851..7e553d3 100644 (file)
@@ -754,6 +754,9 @@ static int a5xx_hw_init(struct msm_gpu *gpu)
            adreno_is_a512(adreno_gpu))
                gpu_rmw(gpu, REG_A5XX_RB_DBG_ECO_CNTL, 0, (1 << 9));
 
+       /* Disable UCHE global filter as SP can invalidate/flush independently */
+       gpu_write(gpu, REG_A5XX_UCHE_MODE_CNTL, BIT(29));
+
        /* Enable USE_RETENTION_FLOPS */
        gpu_write(gpu, REG_A5XX_CP_CHICKEN_DBG, 0x02000000);