diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/mxgpu_vi.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/mxgpu_vi.c | 9 | 
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/mxgpu_vi.c b/drivers/gpu/drm/amd/amdgpu/mxgpu_vi.c index 59f53c743362..e1d63bed84bf 100644 --- a/drivers/gpu/drm/amd/amdgpu/mxgpu_vi.c +++ b/drivers/gpu/drm/amd/amdgpu/mxgpu_vi.c @@ -515,12 +515,6 @@ static void xgpu_vi_mailbox_flr_work(struct work_struct *work)  	struct amdgpu_virt *virt = container_of(work, struct amdgpu_virt, flr_work);  	struct amdgpu_device *adev = container_of(virt, struct amdgpu_device, virt); -	/* wait until RCV_MSG become 3 */ -	if (xgpu_vi_poll_msg(adev, IDH_FLR_NOTIFICATION_CMPL)) { -		pr_err("failed to receive FLR_CMPL\n"); -		return; -	} -  	/* Trigger recovery due to world switch failure */  	if (amdgpu_device_should_recover_gpu(adev)) {  		struct amdgpu_reset_context reset_context; @@ -529,6 +523,7 @@ static void xgpu_vi_mailbox_flr_work(struct work_struct *work)  		reset_context.method = AMD_RESET_METHOD_NONE;  		reset_context.reset_req_dev = adev;  		clear_bit(AMDGPU_NEED_FULL_RESET, &reset_context.flags); +		set_bit(AMDGPU_HOST_FLR, &reset_context.flags);  		amdgpu_device_gpu_recover(adev, NULL, &reset_context);  	} @@ -560,7 +555,7 @@ static int xgpu_vi_mailbox_rcv_irq(struct amdgpu_device *adev,  		r = xgpu_vi_mailbox_rcv_msg(adev, IDH_FLR_NOTIFICATION);  		/* only handle FLR_NOTIFY now */ -		if (!r && !amdgpu_in_reset(adev)) +		if (!r)  			WARN_ONCE(!amdgpu_reset_domain_schedule(adev->reset_domain,  								&adev->virt.flr_work),  				  "Failed to queue work! at %s",  |