diff options
author | Marijn Suijten <[email protected]> | 2020-11-02 21:02:25 +0100 |
---|---|---|
committer | Rob Clark <[email protected]> | 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 <[email protected]>
Tested-by: AngeloGioacchino Del Regno <[email protected]>
Reviewed-by: Jordan Crouse <[email protected]>
Signed-off-by: Rob Clark <[email protected]>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c')
0 files changed, 0 insertions, 0 deletions