drm/i915: fix flip done interrupt on Ironlake

On Ironlake plane flip interrupt means flip done event already, the
behavior is not like old chips, and perform like other usual interrupt.
So only need to handle flip done event when receiving that interrupt.

Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Signed-off-by: Eric Anholt <eric@anholt.net>

authored by Zhenyu Wang and committed by Eric Anholt f072d2e7 b1b87f6b

+9 -9
+9 -9
drivers/gpu/drm/i915/i915_irq.c
··· 309 309 if (de_iir & DE_GSE) 310 310 ironlake_opregion_gse_intr(dev); 311 311 312 - if (de_iir & DE_PLANEA_FLIP_DONE) 312 + if (de_iir & DE_PLANEA_FLIP_DONE) { 313 313 intel_prepare_page_flip(dev, 0); 314 - 315 - if (de_iir & DE_PLANEB_FLIP_DONE) 316 - intel_prepare_page_flip(dev, 1); 317 - 318 - if (de_iir & DE_PIPEA_VBLANK) { 319 - drm_handle_vblank(dev, 0); 320 314 intel_finish_page_flip(dev, 0); 321 315 } 322 316 323 - if (de_iir & DE_PIPEB_VBLANK) { 324 - drm_handle_vblank(dev, 1); 317 + if (de_iir & DE_PLANEB_FLIP_DONE) { 318 + intel_prepare_page_flip(dev, 1); 325 319 intel_finish_page_flip(dev, 1); 326 320 } 321 + 322 + if (de_iir & DE_PIPEA_VBLANK) 323 + drm_handle_vblank(dev, 0); 324 + 325 + if (de_iir & DE_PIPEB_VBLANK) 326 + drm_handle_vblank(dev, 1); 327 327 328 328 /* check event from PCH */ 329 329 if ((de_iir & DE_PCH_EVENT) &&