On Wed, 2013-11-06 at 13:56 -0200, Rodrigo Vivi wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > When the hardware frame counter reads 0xffffff and we're already past > vblank start, we'd return 0x1000000 as the vblank counter value. Once > we'd cross into the next frame's active portion, the vblank counter > would wrap to 0. So we're reporting two different vblank counter values > for the same frame. > > Fix the problem by masking the cooked value by 0xffffff to make sure > the counter wraps already after vblank start. > > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> Reviewed-by: Imre Deak <imre.deak@xxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_irq.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c > index 2a44816..c474dac 100644 > --- a/drivers/gpu/drm/i915/i915_irq.c > +++ b/drivers/gpu/drm/i915/i915_irq.c > @@ -583,7 +583,7 @@ static u32 i915_get_vblank_counter(struct drm_device *dev, int pipe) > * Cook up a vblank counter by also checking the pixel > * counter against vblank start. > */ > - return ((high1 << 8) | low) + (pixel >= vbl_start); > + return (((high1 << 8) | low) + (pixel >= vbl_start)) & 0xffffff; > } > > static u32 gm45_get_vblank_counter(struct drm_device *dev, int pipe) _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx