diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | 20 | 
1 files changed, 15 insertions, 5 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h index 9c85d494f2a2..204ab13184ed 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h @@ -36,6 +36,8 @@  #include "amdgpu_ring.h"  #include "amdgpu_ids.h" +struct drm_exec; +  struct amdgpu_bo_va;  struct amdgpu_job;  struct amdgpu_bo_list_entry; @@ -84,7 +86,13 @@ struct amdgpu_mem_stats;  /* PDE Block Fragment Size for VEGA10 */  #define AMDGPU_PDE_BFS(a)	((uint64_t)a << 59) +/* Flag combination to set no-retry with TF disabled */ +#define AMDGPU_VM_NORETRY_FLAGS	(AMDGPU_PTE_EXECUTABLE | AMDGPU_PDE_PTE | \ +				AMDGPU_PTE_TF) +/* Flag combination to set no-retry with TF enabled */ +#define AMDGPU_VM_NORETRY_FLAGS_TF (AMDGPU_PTE_VALID | AMDGPU_PTE_SYSTEM | \ +				   AMDGPU_PTE_PRT)  /* For GFX9 */  #define AMDGPU_PTE_MTYPE_VG10(a)	((uint64_t)(a) << 57)  #define AMDGPU_PTE_MTYPE_VG10_MASK	AMDGPU_PTE_MTYPE_VG10(3ULL) @@ -392,13 +400,12 @@ int amdgpu_vm_set_pasid(struct amdgpu_device *adev, struct amdgpu_vm *vm,  			u32 pasid);  long amdgpu_vm_wait_idle(struct amdgpu_vm *vm, long timeout); -int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm); +int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm, int32_t xcp_id);  int amdgpu_vm_make_compute(struct amdgpu_device *adev, struct amdgpu_vm *vm);  void amdgpu_vm_release_compute(struct amdgpu_device *adev, struct amdgpu_vm *vm);  void amdgpu_vm_fini(struct amdgpu_device *adev, struct amdgpu_vm *vm); -void amdgpu_vm_get_pd_bo(struct amdgpu_vm *vm, -			 struct list_head *validated, -			 struct amdgpu_bo_list_entry *entry); +int amdgpu_vm_lock_pd(struct amdgpu_vm *vm, struct drm_exec *exec, +		      unsigned int num_fences);  bool amdgpu_vm_ready(struct amdgpu_vm *vm);  uint64_t amdgpu_vm_generation(struct amdgpu_device *adev, struct amdgpu_vm *vm);  int amdgpu_vm_validate_pt_bos(struct amdgpu_device *adev, struct amdgpu_vm *vm, @@ -475,7 +482,8 @@ void amdgpu_vm_get_memory(struct amdgpu_vm *vm,  int amdgpu_vm_pt_clear(struct amdgpu_device *adev, struct amdgpu_vm *vm,  		       struct amdgpu_bo_vm *vmbo, bool immediate);  int amdgpu_vm_pt_create(struct amdgpu_device *adev, struct amdgpu_vm *vm, -			int level, bool immediate, struct amdgpu_bo_vm **vmbo); +			int level, bool immediate, struct amdgpu_bo_vm **vmbo, +			int32_t xcp_id);  void amdgpu_vm_pt_free_root(struct amdgpu_device *adev, struct amdgpu_vm *vm);  bool amdgpu_vm_pt_is_root_clean(struct amdgpu_device *adev,  				struct amdgpu_vm *vm); @@ -491,6 +499,8 @@ void amdgpu_vm_pt_free_work(struct work_struct *work);  void amdgpu_debugfs_vm_bo_info(struct amdgpu_vm *vm, struct seq_file *m);  #endif +int amdgpu_vm_pt_map_tables(struct amdgpu_device *adev, struct amdgpu_vm *vm); +  /**   * amdgpu_vm_tlb_seq - return tlb flush sequence number   * @vm: the amdgpu_vm structure to query  |