On Thu, 2012-10-04 at 19:20 +0200, Daniel Vetter wrote: > I've discovered this on my ivb machine while stress-testing the new > flip_tests. Only harmful effect observed is that the timestamp is a > bit bogus. > > Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch> I've seen the same issue on an ivb ultrabook machine and the patch gets rid of it, so: Tested-by: Imre Deak <imre.deak at intel.com> > --- > drivers/gpu/drm/i915/intel_display.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index 67912fe..9cecfd7 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -3253,6 +3253,16 @@ static void ironlake_crtc_enable(struct drm_crtc *crtc) > > if (HAS_PCH_CPT(dev)) > intel_cpt_verify_modeset(dev, intel_crtc->pipe); > + > + /* > + * There seems to be a race in PCH platform hw (at least on some > + * outputs) where an enabled pipe still completes any pageflip right > + * away (as if the pipe is off) instead of waiting for vblank. As soon > + * as the first vblank happend, everything works as expected. Hence just > + * wait for one vblank before returning to avoid strange things > + * happening. > + */ > + intel_wait_for_vblank(dev, intel_crtc->pipe); > } > > static void ironlake_crtc_disable(struct drm_crtc *crtc)