]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/char/agp/i460-agp.c
[PATCH] Remove "RV370 5B60 [Radeon X300 (PCIE)]" from DRI list
[linux-2.6-omap-h63xx.git] / drivers / char / agp / i460-agp.c
index 58944cd271ead9c55120a43ffa014bd5f34ac9cf..8ee19a4a6bce4741b75ecb9e1adb21bfe4d1c017 100644 (file)
@@ -111,8 +111,10 @@ static int i460_fetch_size (void)
 
        if (i460.io_page_shift != I460_IO_PAGE_SHIFT) {
                printk(KERN_ERR PFX
-                      "I/O (GART) page-size %ZuKB doesn't match expected size %ZuKB\n",
-                      1UL << (i460.io_page_shift - 10), 1UL << (I460_IO_PAGE_SHIFT));
+                       "I/O (GART) page-size %luKB doesn't match expected "
+                               "size %luKB\n",
+                       1UL << (i460.io_page_shift - 10),
+                       1UL << (I460_IO_PAGE_SHIFT));
                return 0;
        }
 
@@ -514,9 +516,10 @@ static void *i460_alloc_page (struct agp_bridge_data *bridge)
 {
        void *page;
 
-       if (I460_IO_PAGE_SHIFT <= PAGE_SHIFT)
+       if (I460_IO_PAGE_SHIFT <= PAGE_SHIFT) {
                page = agp_generic_alloc_page(agp_bridge);
-       else
+               global_flush_tlb();
+       } else
                /* Returning NULL would cause problems */
                /* AK: really dubious code. */
                page = (void *)~0UL;
@@ -525,8 +528,10 @@ static void *i460_alloc_page (struct agp_bridge_data *bridge)
 
 static void i460_destroy_page (void *page)
 {
-       if (I460_IO_PAGE_SHIFT <= PAGE_SHIFT)
+       if (I460_IO_PAGE_SHIFT <= PAGE_SHIFT) {
                agp_generic_destroy_page(page);
+               global_flush_tlb();
+       }
 }
 
 #endif /* I460_LARGE_IO_PAGES */
@@ -536,7 +541,7 @@ static unsigned long i460_mask_memory (struct agp_bridge_data *bridge,
 {
        /* Make sure the returned address is a valid GATT entry */
        return bridge->driver->masks[0].mask
-               | (((addr & ~((1 << I460_IO_PAGE_SHIFT) - 1)) & 0xffffff000) >> 12);
+               | (((addr & ~((1 << I460_IO_PAGE_SHIFT) - 1)) & 0xfffff000) >> 12);
 }
 
 struct agp_bridge_driver intel_i460_driver = {
@@ -617,7 +622,6 @@ static struct pci_device_id agp_intel_i460_pci_table[] = {
 MODULE_DEVICE_TABLE(pci, agp_intel_i460_pci_table);
 
 static struct pci_driver agp_intel_i460_pci_driver = {
-       .owner          = THIS_MODULE,
        .name           = "agpgart-intel-i460",
        .id_table       = agp_intel_i460_pci_table,
        .probe          = agp_intel_i460_probe,