]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
a .27 patch
authorGreg Kroah-Hartman <gregkh@suse.de>
Thu, 30 Oct 2008 15:51:43 +0000 (08:51 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 30 Oct 2008 15:51:43 +0000 (08:51 -0700)
queue-2.6.27/agp-fix-stolen-memory-counting-on-g4x.patch [new file with mode: 0644]
queue-2.6.27/series [new file with mode: 0644]

diff --git a/queue-2.6.27/agp-fix-stolen-memory-counting-on-g4x.patch b/queue-2.6.27/agp-fix-stolen-memory-counting-on-g4x.patch
new file mode 100644 (file)
index 0000000..87d83d7
--- /dev/null
@@ -0,0 +1,61 @@
+From 82e14a6215cbc9804ecc35281e973c6c8ce22fe7 Mon Sep 17 00:00:00 2001
+From: Eric Anholt <eric@anholt.net>
+Date: Tue, 14 Oct 2008 11:28:58 -0700
+Subject: agp: Fix stolen memory counting on G4X.
+
+From: Eric Anholt <eric@anholt.net>
+
+commit 82e14a6215cbc9804ecc35281e973c6c8ce22fe7 upstream
+
+On the GM45, the amount of stolen memory mapped to the GTT was underestimated,
+even though we had 508KB more available since the GTT doesn't take from
+stolen memory. On the non-GM45 G4X, we overestimated how much stolen was
+mapped to the GTT by 4KB, resulting in GPU page faults when that page was
+accessed.
+
+This update requires a corresponding update to xf86-video-intel to work
+correctly.
+
+Signed-off-by: Eric Anholt <eric@anholt.net>
+Signed-off-by: Dave Airlie <airlied@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/char/agp/intel-agp.c |   12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
+
+--- a/drivers/char/agp/intel-agp.c
++++ b/drivers/char/agp/intel-agp.c
+@@ -54,8 +54,7 @@
+                agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82965Q_HB || \
+                agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82965G_HB || \
+                agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82965GM_HB || \
+-               agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82965GME_HB || \
+-               agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_GM45_HB)
++               agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82965GME_HB)
+ #define IS_G33 (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_G33_HB || \
+               agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_Q35_HB || \
+@@ -63,7 +62,8 @@
+ #define IS_G4X (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_IGD_E_HB || \
+               agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_Q45_HB || \
+-              agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_G45_HB)
++              agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_G45_HB || \
++              agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_GM45_HB)
+ extern int agp_memory_reserved;
+@@ -525,8 +525,10 @@ static void intel_i830_init_gtt_entries(
+               size += 4;
+       } else if (IS_G4X) {
+               /* On 4 series hardware, GTT stolen is separate from graphics
+-               * stolen, ignore it in stolen gtt entries counting */
+-              size = 0;
++               * stolen, ignore it in stolen gtt entries counting.  However,
++               * 4KB of the stolen memory doesn't get mapped to the GTT.
++               */
++              size = 4;
+       } else {
+               /* On previous hardware, the GTT size was just what was
+                * required to map the aperture.
diff --git a/queue-2.6.27/series b/queue-2.6.27/series
new file mode 100644 (file)
index 0000000..b54b4e2
--- /dev/null
@@ -0,0 +1 @@
+agp-fix-stolen-memory-counting-on-g4x.patch