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

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

Signed-off-by: default avatarShaoyun Liu <Shaoyun.Liu@amd.com>
Reviewed-by: default avatarFelix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: default avatarFelix Kuehling <Felix.Kuehling@amd.com>
Acked-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarOded Gabbay <oded.gabbay@gmail.com>
parent 58e69886
...@@ -280,6 +280,8 @@ struct tile_config { ...@@ -280,6 +280,8 @@ struct tile_config {
* IH ring entry. This function allows the KFD ISR to get the VMID * IH ring entry. This function allows the KFD ISR to get the VMID
* from the fault status register as early as possible. * 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 * This structure contains function pointers to services that the kgd driver
* provides to amdkfd driver. * provides to amdkfd driver.
* *
...@@ -399,6 +401,8 @@ struct kfd2kgd_calls { ...@@ -399,6 +401,8 @@ struct kfd2kgd_calls {
int (*get_vm_fault_info)(struct kgd_dev *kgd, int (*get_vm_fault_info)(struct kgd_dev *kgd,
struct kfd_vm_fault_info *info); struct kfd_vm_fault_info *info);
uint32_t (*read_vmid_from_vmfault_reg)(struct kgd_dev *kgd); 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 { ...@@ -424,6 +428,10 @@ struct kfd2kgd_calls {
* @schedule_evict_and_restore_process: Schedules work queue that will prepare * @schedule_evict_and_restore_process: Schedules work queue that will prepare
* for safe eviction of KFD BOs that belong to the specified process. * 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 * This structure contains function callback pointers so the kgd driver
* will notify to the amdkfd about certain status changes. * will notify to the amdkfd about certain status changes.
* *
...@@ -442,6 +450,8 @@ struct kgd2kfd_calls { ...@@ -442,6 +450,8 @@ struct kgd2kfd_calls {
int (*resume_mm)(struct mm_struct *mm); int (*resume_mm)(struct mm_struct *mm);
int (*schedule_evict_and_restore_process)(struct mm_struct *mm, int (*schedule_evict_and_restore_process)(struct mm_struct *mm,
struct dma_fence *fence); struct dma_fence *fence);
int (*pre_reset)(struct kfd_dev *kfd);
int (*post_reset)(struct kfd_dev *kfd);
}; };
int kgd2kfd_init(unsigned interface_version, int kgd2kfd_init(unsigned interface_version,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment