@@ -309,21 +309,21 @@ irqreturn_t ironlake_irq_handler(struct drm_device *dev)
if (de_iir & DE_GSE)
ironlake_opregion_gse_intr(dev);
- if (de_iir & DE_PLANEA_FLIP_DONE)
+ if (de_iir & DE_PLANEA_FLIP_DONE) {
intel_prepare_page_flip(dev, 0);
+ intel_finish_page_flip(dev, 0);
+ }
- if (de_iir & DE_PLANEB_FLIP_DONE)
+ if (de_iir & DE_PLANEB_FLIP_DONE) {
intel_prepare_page_flip(dev, 1);
+ intel_finish_page_flip(dev, 1);
+ }
- if (de_iir & DE_PIPEA_VBLANK) {
+ if (de_iir & DE_PIPEA_VBLANK)
drm_handle_vblank(dev, 0);
- intel_finish_page_flip(dev, 0);
- }
- if (de_iir & DE_PIPEB_VBLANK) {
+ if (de_iir & DE_PIPEB_VBLANK)
drm_handle_vblank(dev, 1);
- intel_finish_page_flip(dev, 1);
- }
/* check event from PCH */
if ((de_iir & DE_PCH_EVENT) &&