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 if (de_iir & DE_GSE) 310 ironlake_opregion_gse_intr(dev); 311 312 - if (de_iir & DE_PLANEA_FLIP_DONE) 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 intel_finish_page_flip(dev, 0); 321 } 322 323 - if (de_iir & DE_PIPEB_VBLANK) { 324 - drm_handle_vblank(dev, 1); 325 intel_finish_page_flip(dev, 1); 326 } 327 328 /* check event from PCH */ 329 if ((de_iir & DE_PCH_EVENT) &&
··· 309 if (de_iir & DE_GSE) 310 ironlake_opregion_gse_intr(dev); 311 312 + if (de_iir & DE_PLANEA_FLIP_DONE) { 313 intel_prepare_page_flip(dev, 0); 314 intel_finish_page_flip(dev, 0); 315 } 316 317 + if (de_iir & DE_PLANEB_FLIP_DONE) { 318 + intel_prepare_page_flip(dev, 1); 319 intel_finish_page_flip(dev, 1); 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 328 /* check event from PCH */ 329 if ((de_iir & DE_PCH_EVENT) &&