mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-27 03:49:57 -04:00
drm/xe: Add xe_exec_queue_last_fence_test_dep
Helpful to determine if a bind can immediately use CPU or needs to be deferred a drm scheduler job. v7: - Better wording in kernel doc (Matthew Auld) Signed-off-by: Matthew Brost <matthew.brost@intel.com> Reviewed-by: Matthew Auld <matthew.auld@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240704041652.272920-4-matthew.brost@intel.com
This commit is contained in:
@@ -906,3 +906,26 @@ void xe_exec_queue_last_fence_set(struct xe_exec_queue *q, struct xe_vm *vm,
|
||||
xe_exec_queue_last_fence_put(q, vm);
|
||||
q->last_fence = dma_fence_get(fence);
|
||||
}
|
||||
|
||||
/**
|
||||
* xe_exec_queue_last_fence_test_dep - Test last fence dependency of queue
|
||||
* @q: The exec queue
|
||||
* @vm: The VM the engine does a bind or exec for
|
||||
*
|
||||
* Returns:
|
||||
* -ETIME if there exists an unsignalled last fence dependency, zero otherwise.
|
||||
*/
|
||||
int xe_exec_queue_last_fence_test_dep(struct xe_exec_queue *q, struct xe_vm *vm)
|
||||
{
|
||||
struct dma_fence *fence;
|
||||
int err = 0;
|
||||
|
||||
fence = xe_exec_queue_last_fence_get(q, vm);
|
||||
if (fence) {
|
||||
err = test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags) ?
|
||||
0 : -ETIME;
|
||||
dma_fence_put(fence);
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user