From: Honglei Huang <[email protected]>

Wire the restore types into existing data structures:

amdgpu_svm.h:
- Include amdgpu_userptr.h, add restore field to struct amdgpu_svm

amdgpu_svm_range.h:
- AMDGPU_SVM_RANGE_OP_RESTORE = BIT(1) in range_op enum
- RESTORE_WORK() helper macro

Signed-off-by: Honglei Huang <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_svm.h       | 3 +++
 drivers/gpu/drm/amd/amdgpu/amdgpu_svm_range.h | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_svm.h 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_svm.h
index b04ef1617..1ab9c84ad 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_svm.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_svm.h
@@ -38,6 +38,8 @@
 #include <linux/types.h>
 #include <linux/workqueue.h>
 
+#include "amdgpu_userptr.h"
+
 struct amdgpu_device;
 struct amdgpu_vm;
 struct amdgpu_svm_attr_tree;
@@ -92,6 +94,7 @@ struct amdgpu_svm {
        struct rw_semaphore svm_lock;
        spinlock_t work_lock;
        struct amdgpu_svm_gc gc;
+       struct amdgpu_svm_restore restore;
        atomic_t exiting;
        uint64_t checkpoint_ts;
        u8 default_granularity;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_svm_range.h 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_svm_range.h
index 82d4b353b..2d677f096 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_svm_range.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_svm_range.h
@@ -90,6 +90,7 @@ amdgpu_svm_range_invalidate_gpu_mapping(struct 
amdgpu_svm_range *range)
 enum amdgpu_svm_range_op {
        AMDGPU_SVM_RANGE_OP_NONE    = 0,
        AMDGPU_SVM_RANGE_OP_UNMAP   = BIT(0),
+       AMDGPU_SVM_RANGE_OP_RESTORE = BIT(1),
 };
 
 struct amdgpu_svm_range_op_ctx {
@@ -100,6 +101,7 @@ struct amdgpu_svm_range_op_ctx {
 };
 
 #define UNMAP_WORK(ops)                ((ops) & AMDGPU_SVM_RANGE_OP_UNMAP)
+#define RESTORE_WORK(ops)      ((ops) & AMDGPU_SVM_RANGE_OP_RESTORE)
 
 void amdgpu_svm_capture_checkpoint_ts(struct amdgpu_svm *svm);
 
-- 
2.34.1

Reply via email to