diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 8 | 
1 files changed, 7 insertions, 1 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c index 6bb438642cc0..f2da69adcd9d 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c @@ -2053,9 +2053,15 @@ static void amdgpu_ras_do_recovery(struct work_struct *work)  		/* Perform full reset in fatal error mode */  		if (!amdgpu_ras_is_poison_mode_supported(ras->adev))  			set_bit(AMDGPU_NEED_FULL_RESET, &reset_context.flags); -		else +		else {  			clear_bit(AMDGPU_NEED_FULL_RESET, &reset_context.flags); +			if (ras->gpu_reset_flags & AMDGPU_RAS_GPU_RESET_MODE2_RESET) { +				ras->gpu_reset_flags &= ~AMDGPU_RAS_GPU_RESET_MODE2_RESET; +				reset_context.method = AMD_RESET_METHOD_MODE2; +			} +		} +  		amdgpu_device_gpu_recover(ras->adev, NULL, &reset_context);  	}  	atomic_set(&ras->in_recovery, 0); | 
