diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h | 9 | 
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h index b89d37fc406f..6a83425aa9ed 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h @@ -55,6 +55,7 @@ struct amdgpu_virt_ops {  	int (*req_full_gpu)(struct amdgpu_device *adev, bool init);  	int (*rel_full_gpu)(struct amdgpu_device *adev, bool init);  	int (*reset_gpu)(struct amdgpu_device *adev); +	int (*wait_reset)(struct amdgpu_device *adev);  	void (*trans_msg)(struct amdgpu_device *adev, u32 req, u32 data1, u32 data2, u32 data3);  }; @@ -80,6 +81,8 @@ enum AMDGIM_FEATURE_FLAG {  	AMDGIM_FEATURE_ERROR_LOG_COLLECT = 0x1,  	/* GIM supports feature of loading uCodes */  	AMDGIM_FEATURE_GIM_LOAD_UCODES   = 0x2, +	/* VRAM LOST by GIM */ +	AMDGIM_FEATURE_GIM_FLR_VRAMLOST = 0x4,  };  struct amdgim_pf2vf_info_header { @@ -238,7 +241,6 @@ struct amdgpu_virt {  	uint64_t			csa_vmid0_addr;  	bool chained_ib_support;  	uint32_t			reg_val_offs; -	struct mutex                    lock_reset;  	struct amdgpu_irq_src		ack_irq;  	struct amdgpu_irq_src		rcv_irq;  	struct work_struct		flr_work; @@ -246,6 +248,7 @@ struct amdgpu_virt {  	const struct amdgpu_virt_ops	*ops;  	struct amdgpu_vf_error_buffer   vf_errors;  	struct amdgpu_virt_fw_reserve	fw_reserve; +	uint32_t gim_feature;  };  #define AMDGPU_CSA_SIZE    (8 * 1024) @@ -276,16 +279,18 @@ static inline bool is_virtual_machine(void)  }  struct amdgpu_vm; +bool amdgpu_virt_mmio_blocked(struct amdgpu_device *adev);  int amdgpu_allocate_static_csa(struct amdgpu_device *adev);  int amdgpu_map_static_csa(struct amdgpu_device *adev, struct amdgpu_vm *vm,  			  struct amdgpu_bo_va **bo_va); +void amdgpu_free_static_csa(struct amdgpu_device *adev);  void amdgpu_virt_init_setting(struct amdgpu_device *adev);  uint32_t amdgpu_virt_kiq_rreg(struct amdgpu_device *adev, uint32_t reg);  void amdgpu_virt_kiq_wreg(struct amdgpu_device *adev, uint32_t reg, uint32_t v);  int amdgpu_virt_request_full_gpu(struct amdgpu_device *adev, bool init);  int amdgpu_virt_release_full_gpu(struct amdgpu_device *adev, bool init);  int amdgpu_virt_reset_gpu(struct amdgpu_device *adev); -int amdgpu_sriov_gpu_reset(struct amdgpu_device *adev, struct amdgpu_job *job); +int amdgpu_virt_wait_reset(struct amdgpu_device *adev);  int amdgpu_virt_alloc_mm_table(struct amdgpu_device *adev);  void amdgpu_virt_free_mm_table(struct amdgpu_device *adev);  int amdgpu_virt_fw_reserve_get_checksum(void *obj, unsigned long obj_size,  |