aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2014-07-08 05:40:30 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-07-08 07:16:14 -0400
commit8e09bf837f8c6b09784bf22c3a8c597df3c20b79 (patch)
treec33702f796385b22fc64ab36051cbc0895671c32
parent2a92d5bca1999b69c78f3c3e97b5484985b094b9 (diff)
drm/i915: Use mmio flips to change tiling mode on Baytrail
For whatever reason, MI_DISPLAY_FLIP fails to change tiling mode on Baytrail, so just use CPU driven mmio flips instead. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76176 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/intel_display.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 8728c8885339..8e738d4315a8 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -9435,6 +9435,9 @@ static bool use_mmio_flip(struct intel_engine_cs *ring,
9435 * So using MMIO flips there would disrupt this mechanism. 9435 * So using MMIO flips there would disrupt this mechanism.
9436 */ 9436 */
9437 9437
9438 if (ring == NULL)
9439 return true;
9440
9438 if (INTEL_INFO(ring->dev)->gen < 5) 9441 if (INTEL_INFO(ring->dev)->gen < 5)
9439 return false; 9442 return false;
9440 9443
@@ -9658,6 +9661,9 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
9658 9661
9659 if (IS_VALLEYVIEW(dev)) { 9662 if (IS_VALLEYVIEW(dev)) {
9660 ring = &dev_priv->ring[BCS]; 9663 ring = &dev_priv->ring[BCS];
9664 if (obj->tiling_mode != work->old_fb_obj->tiling_mode)
9665 /* vlv: DISPLAY_FLIP fails to change tiling */
9666 ring = NULL;
9661 } else if (IS_IVYBRIDGE(dev)) { 9667 } else if (IS_IVYBRIDGE(dev)) {
9662 ring = &dev_priv->ring[BCS]; 9668 ring = &dev_priv->ring[BCS];
9663 } else if (INTEL_INFO(dev)->gen >= 7) { 9669 } else if (INTEL_INFO(dev)->gen >= 7) {