|
@@ -280,6 +280,8 @@ struct tile_config {
|
|
|
* IH ring entry. This function allows the KFD ISR to get the VMID
|
|
|
* from the fault status register as early as possible.
|
|
|
*
|
|
|
+ * @gpu_recover: let kgd reset gpu after kfd detect CPC hang
|
|
|
+ *
|
|
|
* This structure contains function pointers to services that the kgd driver
|
|
|
* provides to amdkfd driver.
|
|
|
*
|
|
@@ -399,6 +401,8 @@ struct kfd2kgd_calls {
|
|
|
int (*get_vm_fault_info)(struct kgd_dev *kgd,
|
|
|
struct kfd_vm_fault_info *info);
|
|
|
uint32_t (*read_vmid_from_vmfault_reg)(struct kgd_dev *kgd);
|
|
|
+
|
|
|
+ void (*gpu_recover)(struct kgd_dev *kgd);
|
|
|
};
|
|
|
|
|
|
/**
|
|
@@ -424,6 +428,10 @@ struct kfd2kgd_calls {
|
|
|
* @schedule_evict_and_restore_process: Schedules work queue that will prepare
|
|
|
* for safe eviction of KFD BOs that belong to the specified process.
|
|
|
*
|
|
|
+ * @pre_reset: Notifies amdkfd that amdgpu about to reset the gpu
|
|
|
+ *
|
|
|
+ * @post_reset: Notify amdkfd that amgpu successfully reseted the gpu
|
|
|
+ *
|
|
|
* This structure contains function callback pointers so the kgd driver
|
|
|
* will notify to the amdkfd about certain status changes.
|
|
|
*
|
|
@@ -442,6 +450,8 @@ struct kgd2kfd_calls {
|
|
|
int (*resume_mm)(struct mm_struct *mm);
|
|
|
int (*schedule_evict_and_restore_process)(struct mm_struct *mm,
|
|
|
struct dma_fence *fence);
|
|
|
+ int (*pre_reset)(struct kfd_dev *kfd);
|
|
|
+ int (*post_reset)(struct kfd_dev *kfd);
|
|
|
};
|
|
|
|
|
|
int kgd2kfd_init(unsigned interface_version,
|