mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-07-19 12:50:21 +02:00
drm/amdgpu: improve wait logic at fence polling
Accomplish this by reading the seq number right away instead of sleep for 5us. There are certain cases where the fence is ready almost immediately. Sleep number granularity was also reduced as the majority of the kiq tlb flush takes between 2us to 6us. Signed-off-by: Alex Sierra <alex.sierra@amd.com> Acked-by: Felix Kuehling <Felix.Kuehling@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
17d62410ae
commit
6e87c42295
|
@ -376,14 +376,11 @@ signed long amdgpu_fence_wait_polling(struct amdgpu_ring *ring,
|
|||
uint32_t wait_seq,
|
||||
signed long timeout)
|
||||
{
|
||||
uint32_t seq;
|
||||
|
||||
do {
|
||||
seq = amdgpu_fence_read(ring);
|
||||
udelay(5);
|
||||
timeout -= 5;
|
||||
} while ((int32_t)(wait_seq - seq) > 0 && timeout > 0);
|
||||
|
||||
while ((int32_t)(wait_seq - amdgpu_fence_read(ring)) > 0 && timeout > 0) {
|
||||
udelay(2);
|
||||
timeout -= 2;
|
||||
}
|
||||
return timeout > 0 ? timeout : 0;
|
||||
}
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue
Block a user