[PATCH] fix i915 regression: only top 20% of screen works in X

From: Pavel Machek
Date: Thu Apr 24 2014 - 16:13:55 EST



Fix regression where only 20% of screen works in X. This is manual
revert of a51435a3137ad8ae75c288c39bd2d8b2696bae8f.

Signed-off-by: Pavel Machek <pavel@xxxxxx>


diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 6bc68bd..cf63c67 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -447,6 +447,11 @@ static int init_ring_common(struct intel_ring_buffer *ring)

gen6_gt_force_wake_get(dev_priv, FORCEWAKE_ALL);

+ if (I915_NEED_GFX_HWS(dev))
+ intel_ring_setup_status_page(ring);
+ else
+ ring_setup_phys_status_page(ring);
+
/* Stop the ring if it's running. */
I915_WRITE_CTL(ring, 0);
I915_WRITE_HEAD(ring, 0);
@@ -454,11 +459,6 @@ static int init_ring_common(struct intel_ring_buffer *ring)
if (wait_for_atomic((I915_READ_MODE(ring) & MODE_IDLE) != 0, 1000))
DRM_ERROR("%s :timed out trying to stop ring\n", ring->name);

- if (I915_NEED_GFX_HWS(dev))
- intel_ring_setup_status_page(ring);
- else
- ring_setup_phys_status_page(ring);
-
head = I915_READ_HEAD(ring) & HEAD_ADDR;

/* G45 ring initialization fails to reset head to zero */


--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/