diff options
Diffstat (limited to 'drivers/gpu/drm/drm_irq.c')
| -rw-r--r-- | drivers/gpu/drm/drm_irq.c | 6 | 
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c index 71f82056563..38e79927b2d 100644 --- a/drivers/gpu/drm/drm_irq.c +++ b/drivers/gpu/drm/drm_irq.c @@ -505,6 +505,7 @@ void drm_calc_timestamping_constants(struct drm_crtc *crtc)  	/* Valid dotclock? */  	if (dotclock > 0) { +		int frame_size;  		/* Convert scanline length in pixels and video dot clock to  		 * line duration, frame duration and pixel duration in  		 * nanoseconds: @@ -512,7 +513,10 @@ void drm_calc_timestamping_constants(struct drm_crtc *crtc)  		pixeldur_ns = (s64) div64_u64(1000000000, dotclock);  		linedur_ns  = (s64) div64_u64(((u64) crtc->hwmode.crtc_htotal *  					      1000000000), dotclock); -		framedur_ns = (s64) crtc->hwmode.crtc_vtotal * linedur_ns; +		frame_size = crtc->hwmode.crtc_htotal * +				crtc->hwmode.crtc_vtotal; +		framedur_ns = (s64) div64_u64((u64) frame_size * 1000000000, +					      dotclock);  	} else  		DRM_ERROR("crtc %d: Can't calculate constants, dotclock = 0!\n",  			  crtc->base.id);  |