* 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.
  *
        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);
 };
 
 /**
  * @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.
  *
        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,