drm/amdgpu: Add task barrier to XGMI hive.
Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com> Reviewed-by: Le Ma <Le.Ma@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
		
							parent
							
								
									368fd0aad1
								
							
						
					
					
						commit
						f33a8770cd
					
				| @ -261,6 +261,7 @@ struct amdgpu_hive_info *amdgpu_get_xgmi_hive(struct amdgpu_device *adev, int lo | ||||
| 	INIT_LIST_HEAD(&tmp->device_list); | ||||
| 	mutex_init(&tmp->hive_lock); | ||||
| 	mutex_init(&tmp->reset_lock); | ||||
| 	task_barrier_init(&tmp->tb); | ||||
| 
 | ||||
| 	if (lock) | ||||
| 		mutex_lock(&tmp->hive_lock); | ||||
| @ -408,6 +409,8 @@ int amdgpu_xgmi_add_device(struct amdgpu_device *adev) | ||||
| 	top_info->num_nodes = count; | ||||
| 	hive->number_devices = count; | ||||
| 
 | ||||
| 	task_barrier_add_task(&hive->tb); | ||||
| 
 | ||||
| 	if (amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_PSP)) { | ||||
| 		list_for_each_entry(tmp_adev, &hive->device_list, gmc.xgmi.head) { | ||||
| 			/* update node list for other device in the hive */ | ||||
| @ -470,6 +473,7 @@ void amdgpu_xgmi_remove_device(struct amdgpu_device *adev) | ||||
| 		mutex_destroy(&hive->hive_lock); | ||||
| 		mutex_destroy(&hive->reset_lock); | ||||
| 	} else { | ||||
| 		task_barrier_rem_task(&hive->tb); | ||||
| 		amdgpu_xgmi_sysfs_rem_dev_info(adev, hive); | ||||
| 		mutex_unlock(&hive->hive_lock); | ||||
| 	} | ||||
|  | ||||
| @ -22,6 +22,7 @@ | ||||
| #ifndef __AMDGPU_XGMI_H__ | ||||
| #define __AMDGPU_XGMI_H__ | ||||
| 
 | ||||
| #include <drm/task_barrier.h> | ||||
| #include "amdgpu_psp.h" | ||||
| 
 | ||||
| struct amdgpu_hive_info { | ||||
| @ -33,6 +34,7 @@ struct amdgpu_hive_info { | ||||
| 	struct device_attribute dev_attr; | ||||
| 	struct amdgpu_device *adev; | ||||
| 	int pstate; /*0 -- low , 1 -- high , -1 unknown*/ | ||||
| 	struct task_barrier tb; | ||||
| }; | ||||
| 
 | ||||
| struct amdgpu_hive_info *amdgpu_get_xgmi_hive(struct amdgpu_device *adev, int lock); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user