[PATCH] 2.2.18pre2: AGP and the i810

From: Chip Salzenberg (chip@valinux.com)
Date: Sat Sep 02 2000 - 00:24:44 EST


First, thanks, Alan, for using the USB and AGP patches. You just
saved me a bunch of integration work.

I'd like to suggest the below patches for the AGP i810 driver.

[1] I'm largely in the dark with AGP, but I know for a fact that with
my previous AGP driver -- which was, like the one you integrated,
based on 2.4 and PI's work -- I got kernel oopses about 10% of the
time when exiting X. The oopses were fixed by the addition of
CACHE_FLUSH() calls in intel_i810_remove_entries(), in imitation of
the CACHE_FLUSH() calls already in intel_i810_insert_entries().

Index: drivers/char/agp/agpgart_be.c
--- drivers/char/agp/agpgart_be.c.prev
+++ drivers/char/agp/agpgart_be.c Fri Sep 1 20:38:18 2000
@@ -951,4 +953,5 @@ static int intel_i810_remove_entries(agp
         int i;
 
+ CACHE_FLUSH();
         for (i = pg_start; i < (mem->page_count + pg_start); i++) {
                 OUTREG32(intel_i810_private.registers,
@@ -956,4 +959,5 @@ static int intel_i810_remove_entries(agp
                          agp_bridge.scratch_page);
         }
+ CACHE_FLUSH();
 
         agp_bridge.tlb_flush(mem);

[2] When CONFIG_AGP_I810 is off, disable compilation of (more of the)
i810-specific code.

Index: drivers/char/agp/agpgart_be.c
--- drivers/char/agp/agpgart_be.c.prev
+++ drivers/char/agp/agpgart_be.c Fri Sep 1 20:38:18 2000
@@ -791,4 +791,6 @@ void agp_enable(u32 mode)
 /* End - Generic Agp routines */
 
+#ifdef CONFIG_AGP_I810
+
 static aper_size_info_fixed intel_i810_sizes[] =
 {
@@ -1063,4 +1067,5 @@ static int __init intel_i810_setup(struc
 }
 
+#endif /* CONFIG_AGP_I810 */
 
 #ifdef CONFIG_AGP_INTEL
@@ -2198,5 +2203,5 @@ static int __init agp_find_supported_dev
 
         /* Need to test for I810 here */
-
+#ifdef CONFIG_AGP_I810
         if (dev->vendor == PCI_VENDOR_ID_INTEL) {
                 struct pci_dev *i810_dev;
@@ -2272,5 +2277,5 @@ static int __init agp_find_supported_dev
                 }
         }
-
+#endif /* CONFIG_AGP_I810 */
 
         /* find capndx */

-- 
Chip Salzenberg              - a.k.a. -              <chip@valinux.com>
"I wanted to play hopscotch with the impenetrable mystery of existence,
    but he stepped in a wormhole and had to go in early."  // MST3K
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Sep 07 2000 - 21:00:12 EST