diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index ce7a46b6909b..22966bd9aa96 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -5098,14 +5098,16 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc, | |||
5098 | work->pending_flip_obj = obj; | 5098 | work->pending_flip_obj = obj; |
5099 | 5099 | ||
5100 | if (intel_crtc->plane) | 5100 | if (intel_crtc->plane) |
5101 | flip_mask = I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT; | 5101 | flip_mask = MI_WAIT_FOR_PLANE_B_FLIP; |
5102 | else | 5102 | else |
5103 | flip_mask = I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT; | 5103 | flip_mask = MI_WAIT_FOR_PLANE_A_FLIP; |
5104 | 5104 | ||
5105 | /* Wait for any previous flip to finish */ | 5105 | if (IS_GEN3(dev) || IS_GEN2(dev)) { |
5106 | if (IS_GEN3(dev)) | 5106 | BEGIN_LP_RING(2); |
5107 | while (I915_READ(ISR) & flip_mask) | 5107 | OUT_RING(MI_WAIT_FOR_EVENT | flip_mask); |
5108 | ; | 5108 | OUT_RING(0); |
5109 | ADVANCE_LP_RING(); | ||
5110 | } | ||
5109 | 5111 | ||
5110 | /* Offset into the new buffer for cases of shared fbs between CRTCs */ | 5112 | /* Offset into the new buffer for cases of shared fbs between CRTCs */ |
5111 | offset = obj_priv->gtt_offset; | 5113 | offset = obj_priv->gtt_offset; |