Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/msm: Fix bv_fence being used as bv_rptr

The bv_fence field of rbmemptrs was being used incorrectly as the BV
rptr shadow pointer in some places.

Add a bv_rptr field and change the code to use that instead.

Reviewed-by: Akhil P Oommen <quic_akhilpo@quicinc.com>
Tested-by: Rob Clark <robdclark@gmail.com>
Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8650-QRD
Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8450-HDK
Signed-off-by: Antonino Maniscalco <antomani103@gmail.com>
Patchwork: https://patchwork.freedesktop.org/patch/618010/
Signed-off-by: Rob Clark <robdclark@chromium.org>

authored by

Antonino Maniscalco and committed by
Rob Clark
76a28f4c 9852d85e

+2 -1
+1 -1
drivers/gpu/drm/msm/adreno/a6xx_gpu.c
··· 1129 1129 /* ..which means "always" on A7xx, also for BV shadow */ 1130 1130 if (adreno_is_a7xx(adreno_gpu)) { 1131 1131 gpu_write64(gpu, REG_A7XX_CP_BV_RB_RPTR_ADDR, 1132 - rbmemptr(gpu->rb[0], bv_fence)); 1132 + rbmemptr(gpu->rb[0], bv_rptr)); 1133 1133 } 1134 1134 1135 1135 /* Always come up on rb 0 */
+1
drivers/gpu/drm/msm/msm_ringbuffer.h
··· 31 31 volatile uint32_t rptr; 32 32 volatile uint32_t fence; 33 33 /* Introduced on A7xx */ 34 + volatile uint32_t bv_rptr; 34 35 volatile uint32_t bv_fence; 35 36 36 37 volatile struct msm_gpu_submit_stats stats[MSM_GPU_SUBMIT_STATS_COUNT];