diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c | 5 | 
1 files changed, 3 insertions, 2 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c index 53ff91fc6cf6..d0748bcfad16 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c @@ -55,8 +55,9 @@ static enum hrtimer_restart amdgpu_vkms_vblank_simulate(struct hrtimer *timer)  		DRM_WARN("%s: vblank timer overrun\n", __func__);  	ret = drm_crtc_handle_vblank(crtc); +	/* Don't queue timer again when vblank is disabled. */  	if (!ret) -		DRM_ERROR("amdgpu_vkms failure on handling vblank"); +		return HRTIMER_NORESTART;  	return HRTIMER_RESTART;  } @@ -81,7 +82,7 @@ static void amdgpu_vkms_disable_vblank(struct drm_crtc *crtc)  {  	struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); -	hrtimer_cancel(&amdgpu_crtc->vblank_timer); +	hrtimer_try_to_cancel(&amdgpu_crtc->vblank_timer);  }  static bool amdgpu_vkms_get_vblank_timestamp(struct drm_crtc *crtc, | 
