diff options
author | Marijn Suijten <marijn.suijten@somainline.org> | 2020-11-02 21:02:25 +0100 |
---|---|---|
committer | Rob Clark <robdclark@chromium.org> | 2020-12-05 08:19:15 -0800 |
commit | 7cc29fcdfcc8784e97c5151c848e193800ec79ac (patch) | |
tree | 4a46137d14a7da1d8f043b829ee57bca266ec057 /drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | |
parent | 05ae91d960fd2b60199ab7b671efd7868948d961 (diff) |
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: 8907afb476ac ("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>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c')
0 files changed, 0 insertions, 0 deletions