diff options
| author | Nicholas Kazlauskas <[email protected]> | 2024-02-26 19:29:05 +0000 |
|---|---|---|
| committer | Alex Deucher <[email protected]> | 2024-03-22 19:49:29 +0000 |
| commit | 93ddf00f874c26e078ba01010bc126f521d49e7f (patch) | |
| tree | 128c8121052936638f71621b1371476157fe02c4 /drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | |
| parent | drm/amd/display: increase bb clock for DCN351 (diff) | |
| download | kernel-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
