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
