mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-18 02:46:06 +00:00
drm/vmwgfx: remove vmw_wait_dma_fence
Decomposing fence containers don't seem to make any sense here. So just remove the function entirely and call dma_fence_wait() directly. Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Zack Rusin <zackr@vmware.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220124130328.2376-12-christian.koenig@amd.com
This commit is contained in:
parent
1b3cf0133f
commit
3f1a31ff8e
@ -4500,7 +4500,7 @@ int vmw_execbuf_ioctl(struct drm_device *dev, void *data,
|
||||
goto mksstats_out;
|
||||
}
|
||||
|
||||
ret = vmw_wait_dma_fence(dev_priv->fman, in_fence);
|
||||
ret = dma_fence_wait(in_fence, true);
|
||||
if (ret)
|
||||
goto out;
|
||||
}
|
||||
|
@ -621,52 +621,6 @@ out_no_object:
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* vmw_wait_dma_fence - Wait for a dma fence
|
||||
*
|
||||
* @fman: pointer to a fence manager
|
||||
* @fence: DMA fence to wait on
|
||||
*
|
||||
* This function handles the case when the fence is actually a fence
|
||||
* array. If that's the case, it'll wait on each of the child fence
|
||||
*/
|
||||
int vmw_wait_dma_fence(struct vmw_fence_manager *fman,
|
||||
struct dma_fence *fence)
|
||||
{
|
||||
struct dma_fence_array *fence_array;
|
||||
int ret = 0;
|
||||
int i;
|
||||
|
||||
|
||||
if (dma_fence_is_signaled(fence))
|
||||
return 0;
|
||||
|
||||
if (!dma_fence_is_array(fence))
|
||||
return dma_fence_wait(fence, true);
|
||||
|
||||
/* From i915: Note that if the fence-array was created in
|
||||
* signal-on-any mode, we should *not* decompose it into its individual
|
||||
* fences. However, we don't currently store which mode the fence-array
|
||||
* is operating in. Fortunately, the only user of signal-on-any is
|
||||
* private to amdgpu and we should not see any incoming fence-array
|
||||
* from sync-file being in signal-on-any mode.
|
||||
*/
|
||||
|
||||
fence_array = to_dma_fence_array(fence);
|
||||
for (i = 0; i < fence_array->num_fences; i++) {
|
||||
struct dma_fence *child = fence_array->fences[i];
|
||||
|
||||
ret = dma_fence_wait(child, true);
|
||||
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* vmw_fence_fifo_down - signal all unsignaled fence objects.
|
||||
*/
|
||||
|
@ -104,9 +104,6 @@ extern int vmw_user_fence_create(struct drm_file *file_priv,
|
||||
struct vmw_fence_obj **p_fence,
|
||||
uint32_t *p_handle);
|
||||
|
||||
extern int vmw_wait_dma_fence(struct vmw_fence_manager *fman,
|
||||
struct dma_fence *fence);
|
||||
|
||||
extern void vmw_fence_fifo_up(struct vmw_fence_manager *fman);
|
||||
|
||||
extern void vmw_fence_fifo_down(struct vmw_fence_manager *fman);
|
||||
|
Loading…
x
Reference in New Issue
Block a user