aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
diff options
context:
space:
mode:
authorNicholas Kazlauskas <[email protected]>2024-02-26 19:29:05 +0000
committerAlex Deucher <[email protected]>2024-03-22 19:49:29 +0000
commit93ddf00f874c26e078ba01010bc126f521d49e7f (patch)
tree128c8121052936638f71621b1371476157fe02c4 /drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
parentdrm/amd/display: increase bb clock for DCN351 (diff)
downloadkernel-93ddf00f874c26e078ba01010bc126f521d49e7f.tar.gz
kernel-93ddf00f874c26e078ba01010bc126f521d49e7f.zip
drm/amd/display: Detect and disallow idle reallow during reentrancy
[Why] Cursor updates can be preempted by queued flips in some DMs. The synchronization model causes this to occur within the same thread at an intermediate level when we insert logs into the OS queue. Since this occurs on the same thread and we're still holding the lock (recursively) the cache is coherent. The exit sequence will run twice since we technically haven't finished the exit the first time, so we need a way to detect and avoid the reallow in the middle of this call to prevent the hang on the cursor update that was preempted. [How] Keep a counter that tracks the depth of the exit calls. Do not reallow until the counter is zero. Reviewed-by: Duncan Ma <[email protected]> Acked-by: Wayne Lin <[email protected]> Signed-off-by: Nicholas Kazlauskas <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_device.c')
0 files changed, 0 insertions, 0 deletions