Commit 3f1a31ff authored by Christian König's avatar Christian König
Browse files

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: default avatarChristian König <christian.koenig@amd.com>
Reviewed-by: default avatarZack Rusin <zackr@vmware.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220124130328.2376-12-christian.koenig@amd.com
parent 1b3cf013
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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;
	}
+0 −46
Original line number Diff line number Diff line
@@ -621,52 +621,6 @@ int vmw_user_fence_create(struct drm_file *file_priv,
	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.
 */
+0 −3
Original line number Diff line number Diff line
@@ -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);