linux/drivers/gpu
Marijn Suijten 7cc29fcdfc drm/msm: a5xx: Make preemption reset case reentrant
nr_rings is reset to 1, but when this function is called for a second
(and third!) time nr_rings > 1 is false, thus the else case is entered
to set up a buffer for the RPTR shadow and consequently written to
RB_RPTR_ADDR, hanging platforms without WHERE_AM_I firmware support.

Restructure the condition in such a way that shadow buffer setup only
ever happens when has_whereami is true; otherwise preemption is only
finalized when the number of ring buffers has not been reset to 1 yet.

Fixes: 8907afb476 ("drm/msm: Allow a5xx to mark the RPTR shadow as privileged")
Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
Tested-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org>
Reviewed-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@chromium.org>
2020-12-05 08:19:15 -08:00
..
drm drm/msm: a5xx: Make preemption reset case reentrant 2020-12-05 08:19:15 -08:00
host1x drm next for 5.10-rc1 2020-10-15 10:46:16 -07:00
ipu-v3 treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
trace
vga vgaarb: mark vga_tryget static 2020-08-01 11:28:17 +02:00
Makefile