On 15.08.2024 8:26 PM, Antonino Maniscalco wrote: > 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. > > Signed-off-by: Antonino Maniscalco <antomani103@xxxxxxxxx> > --- > drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 2 +- > drivers/gpu/drm/msm/msm_ringbuffer.h | 1 + > 2 files changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c > index bcaec86ac67a..32a4faa93d7f 100644 > --- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c > +++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c > @@ -1132,7 +1132,7 @@ static int hw_init(struct msm_gpu *gpu) > /* ..which means "always" on A7xx, also for BV shadow */ > if (adreno_is_a7xx(adreno_gpu)) { > gpu_write64(gpu, REG_A7XX_CP_BV_RB_RPTR_ADDR, > - rbmemptr(gpu->rb[0], bv_fence)); > + rbmemptr(gpu->rb[0], bv_rptr)); > } > > /* Always come up on rb 0 */ > diff --git a/drivers/gpu/drm/msm/msm_ringbuffer.h b/drivers/gpu/drm/msm/msm_ringbuffer.h > index 0d6beb8cd39a..40791b2ade46 100644 > --- a/drivers/gpu/drm/msm/msm_ringbuffer.h > +++ b/drivers/gpu/drm/msm/msm_ringbuffer.h > @@ -31,6 +31,7 @@ struct msm_rbmemptrs { > volatile uint32_t rptr; > volatile uint32_t fence; > /* Introduced on A7xx */ > + volatile uint32_t bv_rptr; This is never initialized or assigned any value, no? Konrad