diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c | 10 | 
1 files changed, 7 insertions, 3 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c b/drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c index 0d8767eb7a70..237fa5e16b7c 100644 --- a/drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c +++ b/drivers/gpu/drm/amd/amdgpu/mxgpu_nv.c @@ -252,7 +252,7 @@ static void xgpu_nv_mailbox_flr_work(struct work_struct *work)  	 */  	locked = mutex_trylock(&adev->lock_reset);  	if (locked) -		adev->in_gpu_reset = 1; +		adev->in_gpu_reset = true;  	do {  		if (xgpu_nv_mailbox_peek_msg(adev) == IDH_FLR_NOTIFICATION_CMPL) @@ -264,12 +264,16 @@ static void xgpu_nv_mailbox_flr_work(struct work_struct *work)  flr_done:  	if (locked) { -		adev->in_gpu_reset = 0; +		adev->in_gpu_reset = false;  		mutex_unlock(&adev->lock_reset);  	}  	/* Trigger recovery for world switch failure if no TDR */ -	if (amdgpu_device_should_recover_gpu(adev)) +	if (amdgpu_device_should_recover_gpu(adev) +		&& (adev->sdma_timeout == MAX_SCHEDULE_TIMEOUT || +		adev->gfx_timeout == MAX_SCHEDULE_TIMEOUT || +		adev->compute_timeout == MAX_SCHEDULE_TIMEOUT || +		adev->video_timeout == MAX_SCHEDULE_TIMEOUT))  		amdgpu_device_gpu_recover(adev, NULL);  } | 
