[kernel] r21925 - in dists/sid/linux/debian: . patches patches/bugfix/x86

Ben Hutchings benh at moszumanska.debian.org
Wed Oct 1 16:15:50 UTC 2014


Author: benh
Date: Wed Oct  1 16:15:50 2014
New Revision: 21925

Log:
[x86] drm/i915: read HEAD register back in init_ring_common() to enforce ordering (Closes: #763583)

Added:
   dists/sid/linux/debian/patches/bugfix/x86/drm-i915-read-HEAD-register-back-in-init_ring_common.patch
Modified:
   dists/sid/linux/debian/changelog
   dists/sid/linux/debian/patches/series

Modified: dists/sid/linux/debian/changelog
==============================================================================
--- dists/sid/linux/debian/changelog	Tue Sep 30 00:22:37 2014	(r21924)
+++ dists/sid/linux/debian/changelog	Wed Oct  1 16:15:50 2014	(r21925)
@@ -11,6 +11,8 @@
   * [s390*] 3215: fix tty output containing tabs (Closes: #758264)
   * radeon: Don't check for installed firmware if driver is built-in
     (Closes: #763305)
+  * [x86] drm/i915: read HEAD register back in init_ring_common() to enforce
+    ordering (Closes: #763583)
 
  -- Ian Campbell <ijc at debian.org>  Sun, 21 Sep 2014 12:09:24 +0100
 

Added: dists/sid/linux/debian/patches/bugfix/x86/drm-i915-read-HEAD-register-back-in-init_ring_common.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux/debian/patches/bugfix/x86/drm-i915-read-HEAD-register-back-in-init_ring_common.patch	Wed Oct  1 16:15:50 2014	(r21925)
@@ -0,0 +1,41 @@
+From: Jiri Kosina <jkosina at suse.cz>
+Date: Thu, 7 Aug 2014 16:29:53 +0200
+Subject: drm/i915: read HEAD register back in init_ring_common() to enforce
+ ordering
+Origin: https://git.kernel.org/linus/ece4a17d237a79f63fbfaf3f724a12b6d500555c
+
+Withtout this, ring initialization fails reliabily during resume with
+
+	[drm:init_ring_common] *ERROR* render ring initialization failed ctl 0001f001 head ffffff8804 tail 00000000 start 000e4000
+
+This is not a complete fix, but it is verified to make the ring
+initialization failures during resume much less likely.
+
+We were not able to root-cause this bug (likely HW-specific to Gen4 chips)
+yet. This is therefore used as a ducttape before problem is fully
+understood and proper fix created, so that people don't suffer from
+completely unusable systems in the meantime.
+
+The discussion and debugging is happening at
+
+	https://bugs.freedesktop.org/show_bug.cgi?id=76554
+
+Signed-off-by: Jiri Kosina <jkosina at suse.cz>
+Cc: stable at vger.kernel.org
+Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
+---
+ drivers/gpu/drm/i915/intel_ringbuffer.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
++++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
+@@ -517,6 +517,9 @@ static int init_ring_common(struct intel
+ 	else
+ 		ring_setup_phys_status_page(ring);
+ 
++	/* Enforce ordering by reading HEAD register back */
++	I915_READ_HEAD(ring);
++
+ 	/* Initialize the ring. This must happen _after_ we've cleared the ring
+ 	 * registers with the above sequence (the readback of the HEAD registers
+ 	 * also enforces ordering), otherwise the hw might lose the new ring

Modified: dists/sid/linux/debian/patches/series
==============================================================================
--- dists/sid/linux/debian/patches/series	Tue Sep 30 00:22:37 2014	(r21924)
+++ dists/sid/linux/debian/patches/series	Wed Oct  1 16:15:50 2014	(r21925)
@@ -56,6 +56,7 @@
 bugfix/s390/s390-3215-fix-hanging-console-issue.patch
 bugfix/arm64/arm64-crypto-fix-makefile-rule-for-aes-glue-.o.patch
 bugfix/parisc/hppa-arch-fast-indirect.patch
+bugfix/x86/drm-i915-read-HEAD-register-back-in-init_ring_common.patch
 
 # Arch features
 features/mips/MIPS-Support-hard-limit-of-cpu-count-nr_cpu_ids.patch



More information about the Kernel-svn-changes mailing list