Lines Matching refs:hive
3263 struct amdgpu_hive_info *hive = amdgpu_get_xgmi_hive(adev); in amdgpu_device_xgmi_reset_func() local
3266 if (WARN_ON(!hive)) in amdgpu_device_xgmi_reset_func()
3277 task_barrier_enter(&hive->tb); in amdgpu_device_xgmi_reset_func()
3283 task_barrier_exit(&hive->tb); in amdgpu_device_xgmi_reset_func()
3294 task_barrier_full(&hive->tb); in amdgpu_device_xgmi_reset_func()
3302 amdgpu_put_xgmi_hive(hive); in amdgpu_device_xgmi_reset_func()
4645 if (!reset_context->hive && in amdgpu_do_asic_reset()
4674 if (reset_context->hive && in amdgpu_do_asic_reset()
4677 reset_context->hive, tmp_adev); in amdgpu_do_asic_reset()
4708 struct amdgpu_hive_info *hive) in amdgpu_device_lock_adev() argument
4713 if (hive) { in amdgpu_device_lock_adev()
4714 down_write_nest_lock(&adev->reset_sem, &hive->hive_lock); in amdgpu_device_lock_adev()
4748 static int amdgpu_device_lock_hive_adev(struct amdgpu_device *adev, struct amdgpu_hive_info *hive) in amdgpu_device_lock_hive_adev() argument
4753 if (!hive) { in amdgpu_device_lock_hive_adev()
4757 list_for_each_entry(tmp_adev, &hive->device_list, gmc.xgmi.head) { in amdgpu_device_lock_hive_adev()
4758 if (!amdgpu_device_lock_adev(tmp_adev, hive)) in amdgpu_device_lock_hive_adev()
4761 } else if (!amdgpu_device_lock_adev(adev, hive)) in amdgpu_device_lock_hive_adev()
4766 if (!list_is_first(&tmp_adev->gmc.xgmi.head, &hive->device_list)) { in amdgpu_device_lock_hive_adev()
4775 list_for_each_entry_continue_reverse(tmp_adev, &hive->device_list, gmc.xgmi.head) { in amdgpu_device_lock_hive_adev()
4928 struct amdgpu_hive_info *hive = NULL; in amdgpu_device_gpu_recover() local
4964 hive = amdgpu_get_xgmi_hive(adev); in amdgpu_device_gpu_recover()
4965 if (hive) { in amdgpu_device_gpu_recover()
4966 if (atomic_cmpxchg(&hive->in_reset, 0, 1) != 0) { in amdgpu_device_gpu_recover()
4968 job ? job->base.id : -1, hive->hive_id); in amdgpu_device_gpu_recover()
4969 amdgpu_put_xgmi_hive(hive); in amdgpu_device_gpu_recover()
4974 mutex_lock(&hive->hive_lock); in amdgpu_device_gpu_recover()
4980 reset_context.hive = hive; in amdgpu_device_gpu_recover()
4988 r = amdgpu_device_lock_hive_adev(adev, hive); in amdgpu_device_gpu_recover()
5006 list_for_each_entry(tmp_adev, &hive->device_list, gmc.xgmi.head) in amdgpu_device_gpu_recover()
5170 if (hive) { in amdgpu_device_gpu_recover()
5171 atomic_set(&hive->in_reset, 0); in amdgpu_device_gpu_recover()
5172 mutex_unlock(&hive->hive_lock); in amdgpu_device_gpu_recover()
5173 amdgpu_put_xgmi_hive(hive); in amdgpu_device_gpu_recover()