From: Greg Kroah-Hartman Date: Thu, 30 Oct 2008 15:51:43 +0000 (-0700) Subject: a .27 patch X-Git-Tag: v2.6.27.5~7 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=138aefdd9b75d4d10b04b961878d7e7626fb9ac5;p=thirdparty%2Fkernel%2Fstable-queue.git a .27 patch --- 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 index 00000000000..87d83d7f910 --- /dev/null +++ b/queue-2.6.27/agp-fix-stolen-memory-counting-on-g4x.patch @@ -0,0 +1,61 @@ +From 82e14a6215cbc9804ecc35281e973c6c8ce22fe7 Mon Sep 17 00:00:00 2001 +From: Eric Anholt +Date: Tue, 14 Oct 2008 11:28:58 -0700 +Subject: agp: Fix stolen memory counting on G4X. + +From: Eric Anholt + +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 +Signed-off-by: Dave Airlie +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..b54b4e253aa --- /dev/null +++ b/queue-2.6.27/series @@ -0,0 +1 @@ +agp-fix-stolen-memory-counting-on-g4x.patch