On Mon, Feb 18, 2013 at 12:16:09PM +0000, Chris Wilson wrote: > On Mon, Feb 18, 2013 at 01:57:51PM +0200, ville.syrjala at linux.intel.com wrote: > > From: Ville Syrj?l? <ville.syrjala at linux.intel.com> > > > > If the interrupt handler were to process a previous vblank interrupt and > > the following flip pending interrupt at the same time, the page flip > > would be complete too soon. > > > > To eliminate this race check the live pending flip status from the ISR > > register before finishing the page flip. > > Ok, that makes a lot of sense. > > /* We detect FlipDone by looking for the change in PendingFlip from '1' > * to '0' on the following vblank, i.e. IIR has the Pendingflip > * asserted following the MI_DISPLAY_FLIP, but ISR is deasserted, hence > * the flip is completed (no longer pending). Since this doesn't raise an > * interrupt per-se, we watch for the change at vblank. > */ You want me to include that comment somewhere in the code? > > Signed-off-by: Ville Syrj?l? <ville.syrjala at linux.intel.com> > Reviewed-by: Chris Wilson <chris at chris-wils > > Time to give it a quick test and make sure it doesn't break a ton of > assumptions... :) > -Chris > > -- > Chris Wilson, Intel Open Source Technology Centre -- Ville Syrj?l? Intel OTC