diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h | 7 | 
1 files changed, 7 insertions, 0 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h index b499a3de8bb6..d3c27a3c43f6 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h @@ -92,6 +92,9 @@ struct amdgpu_gmc_funcs {  	/* flush the vm tlb via mmio */  	void (*flush_gpu_tlb)(struct amdgpu_device *adev, uint32_t vmid,  				uint32_t vmhub, uint32_t flush_type); +	/* flush the vm tlb via pasid */ +	int (*flush_gpu_tlb_pasid)(struct amdgpu_device *adev, uint16_t pasid, +					uint32_t flush_type, bool all_hub);  	/* flush the vm tlb via ring */  	uint64_t (*emit_flush_gpu_tlb)(struct amdgpu_ring *ring, unsigned vmid,  				       uint64_t pd_addr); @@ -216,6 +219,9 @@ struct amdgpu_gmc {  };  #define amdgpu_gmc_flush_gpu_tlb(adev, vmid, vmhub, type) ((adev)->gmc.gmc_funcs->flush_gpu_tlb((adev), (vmid), (vmhub), (type))) +#define amdgpu_gmc_flush_gpu_tlb_pasid(adev, pasid, type, allhub) \ +	((adev)->gmc.gmc_funcs->flush_gpu_tlb_pasid \ +	((adev), (pasid), (type), (allhub)))  #define amdgpu_gmc_emit_flush_gpu_tlb(r, vmid, addr) (r)->adev->gmc.gmc_funcs->emit_flush_gpu_tlb((r), (vmid), (addr))  #define amdgpu_gmc_emit_pasid_mapping(r, vmid, pasid) (r)->adev->gmc.gmc_funcs->emit_pasid_mapping((r), (vmid), (pasid))  #define amdgpu_gmc_map_mtype(adev, flags) (adev)->gmc.gmc_funcs->map_mtype((adev),(flags)) @@ -267,5 +273,6 @@ bool amdgpu_gmc_filter_faults(struct amdgpu_device *adev, uint64_t addr,  			      uint16_t pasid, uint64_t timestamp);  int amdgpu_gmc_ras_late_init(struct amdgpu_device *adev);  void amdgpu_gmc_ras_fini(struct amdgpu_device *adev); +int amdgpu_gmc_allocate_vm_inv_eng(struct amdgpu_device *adev);  #endif |