Commit fa78e367 authored by Christian König's avatar Christian König

drm/amdgpu: stop getting excl fence separately

Just grab all fences for the display flip in one go.
Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
Acked-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211028132630.2330-2-christian.koenig@amd.com
parent 2cbb8d4d
...@@ -457,7 +457,6 @@ struct amdgpu_flip_work { ...@@ -457,7 +457,6 @@ struct amdgpu_flip_work {
uint64_t base; uint64_t base;
struct drm_pending_vblank_event *event; struct drm_pending_vblank_event *event;
struct amdgpu_bo *old_abo; struct amdgpu_bo *old_abo;
struct dma_fence *excl;
unsigned shared_count; unsigned shared_count;
struct dma_fence **shared; struct dma_fence **shared;
struct dma_fence_cb cb; struct dma_fence_cb cb;
......
...@@ -83,9 +83,6 @@ static void amdgpu_display_flip_work_func(struct work_struct *__work) ...@@ -83,9 +83,6 @@ static void amdgpu_display_flip_work_func(struct work_struct *__work)
unsigned i; unsigned i;
int vpos, hpos; int vpos, hpos;
if (amdgpu_display_flip_handle_fence(work, &work->excl))
return;
for (i = 0; i < work->shared_count; ++i) for (i = 0; i < work->shared_count; ++i)
if (amdgpu_display_flip_handle_fence(work, &work->shared[i])) if (amdgpu_display_flip_handle_fence(work, &work->shared[i]))
return; return;
...@@ -203,7 +200,7 @@ int amdgpu_display_crtc_page_flip_target(struct drm_crtc *crtc, ...@@ -203,7 +200,7 @@ int amdgpu_display_crtc_page_flip_target(struct drm_crtc *crtc,
goto unpin; goto unpin;
} }
r = dma_resv_get_fences(new_abo->tbo.base.resv, &work->excl, r = dma_resv_get_fences(new_abo->tbo.base.resv, NULL,
&work->shared_count, &work->shared); &work->shared_count, &work->shared);
if (unlikely(r != 0)) { if (unlikely(r != 0)) {
DRM_ERROR("failed to get fences for buffer\n"); DRM_ERROR("failed to get fences for buffer\n");
...@@ -253,7 +250,6 @@ int amdgpu_display_crtc_page_flip_target(struct drm_crtc *crtc, ...@@ -253,7 +250,6 @@ int amdgpu_display_crtc_page_flip_target(struct drm_crtc *crtc,
cleanup: cleanup:
amdgpu_bo_unref(&work->old_abo); amdgpu_bo_unref(&work->old_abo);
dma_fence_put(work->excl);
for (i = 0; i < work->shared_count; ++i) for (i = 0; i < work->shared_count; ++i)
dma_fence_put(work->shared[i]); dma_fence_put(work->shared[i]);
kfree(work->shared); kfree(work->shared);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment