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 { | |||
55 | int (*req_full_gpu)(struct amdgpu_device *adev, bool init); | 55 | int (*req_full_gpu)(struct amdgpu_device *adev, bool init); |
56 | int (*rel_full_gpu)(struct amdgpu_device *adev, bool init); | 56 | int (*rel_full_gpu)(struct amdgpu_device *adev, bool init); |
57 | int (*reset_gpu)(struct amdgpu_device *adev); | 57 | int (*reset_gpu)(struct amdgpu_device *adev); |
58 | int (*wait_reset)(struct amdgpu_device *adev); | ||
58 | void (*trans_msg)(struct amdgpu_device *adev, u32 req, u32 data1, u32 data2, u32 data3); | 59 | void (*trans_msg)(struct amdgpu_device *adev, u32 req, u32 data1, u32 data2, u32 data3); |
59 | }; | 60 | }; |
60 | 61 | ||
@@ -80,6 +81,8 @@ enum AMDGIM_FEATURE_FLAG { | |||
80 | AMDGIM_FEATURE_ERROR_LOG_COLLECT = 0x1, | 81 | AMDGIM_FEATURE_ERROR_LOG_COLLECT = 0x1, |
81 | /* GIM supports feature of loading uCodes */ | 82 | /* GIM supports feature of loading uCodes */ |
82 | AMDGIM_FEATURE_GIM_LOAD_UCODES = 0x2, | 83 | AMDGIM_FEATURE_GIM_LOAD_UCODES = 0x2, |
84 | /* VRAM LOST by GIM */ | ||
85 | AMDGIM_FEATURE_GIM_FLR_VRAMLOST = 0x4, | ||
83 | }; | 86 | }; |
84 | 87 | ||
85 | struct amdgim_pf2vf_info_header { | 88 | struct amdgim_pf2vf_info_header { |
@@ -238,7 +241,6 @@ struct amdgpu_virt { | |||
238 | uint64_t csa_vmid0_addr; | 241 | uint64_t csa_vmid0_addr; |
239 | bool chained_ib_support; | 242 | bool chained_ib_support; |
240 | uint32_t reg_val_offs; | 243 | uint32_t reg_val_offs; |
241 | struct mutex lock_reset; | ||
242 | struct amdgpu_irq_src ack_irq; | 244 | struct amdgpu_irq_src ack_irq; |
243 | struct amdgpu_irq_src rcv_irq; | 245 | struct amdgpu_irq_src rcv_irq; |
244 | struct work_struct flr_work; | 246 | struct work_struct flr_work; |
@@ -246,6 +248,7 @@ struct amdgpu_virt { | |||
246 | const struct amdgpu_virt_ops *ops; | 248 | const struct amdgpu_virt_ops *ops; |
247 | struct amdgpu_vf_error_buffer vf_errors; | 249 | struct amdgpu_vf_error_buffer vf_errors; |
248 | struct amdgpu_virt_fw_reserve fw_reserve; | 250 | struct amdgpu_virt_fw_reserve fw_reserve; |
251 | uint32_t gim_feature; | ||
249 | }; | 252 | }; |
250 | 253 | ||
251 | #define AMDGPU_CSA_SIZE (8 * 1024) | 254 | #define AMDGPU_CSA_SIZE (8 * 1024) |
@@ -276,16 +279,18 @@ static inline bool is_virtual_machine(void) | |||
276 | } | 279 | } |
277 | 280 | ||
278 | struct amdgpu_vm; | 281 | struct amdgpu_vm; |
282 | bool amdgpu_virt_mmio_blocked(struct amdgpu_device *adev); | ||
279 | int amdgpu_allocate_static_csa(struct amdgpu_device *adev); | 283 | int amdgpu_allocate_static_csa(struct amdgpu_device *adev); |
280 | int amdgpu_map_static_csa(struct amdgpu_device *adev, struct amdgpu_vm *vm, | 284 | int amdgpu_map_static_csa(struct amdgpu_device *adev, struct amdgpu_vm *vm, |
281 | struct amdgpu_bo_va **bo_va); | 285 | struct amdgpu_bo_va **bo_va); |
286 | void amdgpu_free_static_csa(struct amdgpu_device *adev); | ||
282 | void amdgpu_virt_init_setting(struct amdgpu_device *adev); | 287 | void amdgpu_virt_init_setting(struct amdgpu_device *adev); |
283 | uint32_t amdgpu_virt_kiq_rreg(struct amdgpu_device *adev, uint32_t reg); | 288 | uint32_t amdgpu_virt_kiq_rreg(struct amdgpu_device *adev, uint32_t reg); |
284 | void amdgpu_virt_kiq_wreg(struct amdgpu_device *adev, uint32_t reg, uint32_t v); | 289 | void amdgpu_virt_kiq_wreg(struct amdgpu_device *adev, uint32_t reg, uint32_t v); |
285 | int amdgpu_virt_request_full_gpu(struct amdgpu_device *adev, bool init); | 290 | int amdgpu_virt_request_full_gpu(struct amdgpu_device *adev, bool init); |
286 | int amdgpu_virt_release_full_gpu(struct amdgpu_device *adev, bool init); | 291 | int amdgpu_virt_release_full_gpu(struct amdgpu_device *adev, bool init); |
287 | int amdgpu_virt_reset_gpu(struct amdgpu_device *adev); | 292 | int amdgpu_virt_reset_gpu(struct amdgpu_device *adev); |
288 | int amdgpu_sriov_gpu_reset(struct amdgpu_device *adev, struct amdgpu_job *job); | 293 | int amdgpu_virt_wait_reset(struct amdgpu_device *adev); |
289 | int amdgpu_virt_alloc_mm_table(struct amdgpu_device *adev); | 294 | int amdgpu_virt_alloc_mm_table(struct amdgpu_device *adev); |
290 | void amdgpu_virt_free_mm_table(struct amdgpu_device *adev); | 295 | void amdgpu_virt_free_mm_table(struct amdgpu_device *adev); |
291 | int amdgpu_virt_fw_reserve_get_checksum(void *obj, unsigned long obj_size, | 296 | int amdgpu_virt_fw_reserve_get_checksum(void *obj, unsigned long obj_size, |