agp: switch AGP to use page array instead of unsigned long array
[sfrench/cifs-2.6.git] / drivers / char / agp / hp-agp.c
index 183ac3fe44fbfe3c0f67f49008e2dc1de9241f96..abea273dcc2fad0ecdc5929d9e252c99f916fbb9 100644 (file)
@@ -361,13 +361,11 @@ hp_zx1_insert_memory (struct agp_memory *mem, off_t pg_start, int type)
        for (i = 0, j = io_pg_start; i < mem->page_count; i++) {
                unsigned long paddr;
 
-               paddr = mem->memory[i];
+               paddr = page_to_phys(mem->pages[i]);
                for (k = 0;
                     k < hp->io_pages_per_kpage;
                     k++, j++, paddr += hp->io_page_size) {
-                       hp->gatt[j] =
-                               agp_bridge->driver->mask_memory(agp_bridge,
-                                       paddr, type);
+                       hp->gatt[j] = HP_ZX1_PDIR_VALID_BIT | paddr;
                }
        }
 
@@ -397,8 +395,9 @@ hp_zx1_remove_memory (struct agp_memory *mem, off_t pg_start, int type)
 
 static unsigned long
 hp_zx1_mask_memory (struct agp_bridge_data *bridge,
-       unsigned long addr, int type)
+                   struct page *page, int type)
 {
+       unsigned long addr = phys_to_gart(page_to_phys(page));
        return HP_ZX1_PDIR_VALID_BIT | addr;
 }