Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6d15ca0a authored by Shaoyun Liu's avatar Shaoyun Liu Committed by Oded Gabbay
Browse files

drm/amd: Add gpu reset interfaces between amdgpu and amdkfd

parent 58e69886
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -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,