summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/i915_vma_types.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/i915_vma_types.h')
-rw-r--r--drivers/gpu/drm/i915/i915_vma_types.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_vma_types.h b/drivers/gpu/drm/i915/i915_vma_types.h
index 7d830a6a0b51..405c82e1bc30 100644
--- a/drivers/gpu/drm/i915/i915_vma_types.h
+++ b/drivers/gpu/drm/i915/i915_vma_types.h
@@ -264,6 +264,28 @@ struct i915_vma {
#define I915_VMA_SCANOUT_BIT 17
#define I915_VMA_SCANOUT ((int)BIT(I915_VMA_SCANOUT_BIT))
+ /**
+ * I915_VMA_PERSISTENT_BIT:
+ * The vma is persistent (created with VM_BIND call).
+ *
+ * I915_VMA_PURGED_BIT:
+ * The persistent vma is force unbound either due to VM_UNBIND call
+ * from UMD or VM is released. Do not check/wait for VM activeness
+ * in i915_vma_is_active() and i915_vma_sync() calls.
+ *
+ * I915_VMA_FREED_BIT:
+ * The persistent vma is being released by UMD via VM_UNBIND call.
+ * While releasing the vma, do not take VM_BIND lock as VM_UNBIND call
+ * already holds the lock.
+ */
+#define I915_VMA_PERSISTENT_BIT 19
+#define I915_VMA_PURGED_BIT 20
+#define I915_VMA_FREED_BIT 21
+
+#define I915_VMA_PERSISTENT ((int)BIT(I915_VMA_PERSISTENT_BIT))
+#define I915_VMA_PURGED ((int)BIT(I915_VMA_PURGED_BIT))
+#define I915_VMA_FREED ((int)BIT(I915_VMA_FREED_BIT))
+
struct i915_active active;
#define I915_VMA_PAGES_BIAS 24
@@ -292,6 +314,7 @@ struct i915_vma {
struct list_head vm_bind_link; /* Link in persistent VMA list */
/* Link in non-private persistent VMA list */
struct list_head non_priv_vm_bind_link;
+ struct list_head vm_rebind_link; /* Link in vm_rebind_list */
/** Timeline fence for vm_bind completion notification */
struct {