diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c | 7 | 
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c index 53ff91fc6cf6..7148a216ae2f 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, @@ -500,8 +501,6 @@ static int amdgpu_vkms_sw_init(void *handle)  	adev_to_drm(adev)->mode_config.fb_modifiers_not_supported = true; -	adev_to_drm(adev)->mode_config.fb_modifiers_not_supported = true; -  	r = amdgpu_display_modeset_create_props(adev);  	if (r)  		return r;  |