amdgpu: add CS dependencies v2

This allows the driver to specify on which previous CS to wait.

v2: fix spelling in comment

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com> (v1)
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
diff --git a/amdgpu/amdgpu.h b/amdgpu/amdgpu.h
index c4c0cd4..deaa092 100644
--- a/amdgpu/amdgpu.h
+++ b/amdgpu/amdgpu.h
@@ -252,6 +252,30 @@
 };
 
 /**
+ * Structure describing CS dependency
+ *
+ * \sa amdgpu_cs_request, amdgpu_cs_submit()
+ *
+*/
+struct amdgpu_cs_dep_info {
+	/** Context to which the fence belongs */
+	amdgpu_context_handle	context;
+
+	/** To which HW IP type the fence belongs */
+	uint32_t		ip_type;
+
+	/** IP instance index if there are several IPs of the same type. */
+	uint32_t		ip_instance;
+
+	/** Ring index of the HW IP */
+	uint32_t		ring;
+
+	/** Specify fence for which we need to check
+	 * submission status.*/
+	uint64_t		fence;
+};
+
+/**
  * Structure describing IB
  *
  * \sa amdgpu_cs_request, amdgpu_cs_submit()
@@ -301,6 +325,18 @@
 	 */
 	amdgpu_bo_list_handle resources;
 
+	/**
+	 * Number of dependencies this Command submission needs to
+	 * wait for before starting execution.
+	 */
+	uint32_t number_of_dependencies;
+
+	/**
+	 * Array of dependencies which need to be met before
+	 * execution can start.
+	 */
+	struct amdgpu_cs_dep_info *dependencies;
+
 	/** Number of IBs to submit in the field ibs. */
 	uint32_t number_of_ibs;