diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2014-07-08 05:40:30 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-07-08 07:16:14 -0400 |
commit | 8e09bf837f8c6b09784bf22c3a8c597df3c20b79 (patch) | |
tree | c33702f796385b22fc64ab36051cbc0895671c32 | |
parent | 2a92d5bca1999b69c78f3c3e97b5484985b094b9 (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.c | 6 |
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) { |