diff options
Diffstat (limited to 'drivers/char/agp/generic.c')
| -rw-r--r-- | drivers/char/agp/generic.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/char/agp/generic.c b/drivers/char/agp/generic.c index 7484bc759c4c..7fc0c99a3a58 100644 --- a/drivers/char/agp/generic.c +++ b/drivers/char/agp/generic.c | |||
| @@ -932,9 +932,14 @@ int agp_generic_create_gatt_table(struct agp_bridge_data *bridge) | |||
| 932 | agp_gatt_table = (void *)table; | 932 | agp_gatt_table = (void *)table; |
| 933 | 933 | ||
| 934 | bridge->driver->cache_flush(); | 934 | bridge->driver->cache_flush(); |
| 935 | #ifdef CONFIG_X86 | ||
| 936 | set_memory_uc((unsigned long)table, 1 << page_order); | ||
| 937 | bridge->gatt_table = (void *)table; | ||
| 938 | #else | ||
| 935 | bridge->gatt_table = ioremap_nocache(virt_to_gart(table), | 939 | bridge->gatt_table = ioremap_nocache(virt_to_gart(table), |
| 936 | (PAGE_SIZE * (1 << page_order))); | 940 | (PAGE_SIZE * (1 << page_order))); |
| 937 | bridge->driver->cache_flush(); | 941 | bridge->driver->cache_flush(); |
| 942 | #endif | ||
| 938 | 943 | ||
| 939 | if (bridge->gatt_table == NULL) { | 944 | if (bridge->gatt_table == NULL) { |
| 940 | for (page = virt_to_page(table); page <= virt_to_page(table_end); page++) | 945 | for (page = virt_to_page(table); page <= virt_to_page(table_end); page++) |
| @@ -991,7 +996,11 @@ int agp_generic_free_gatt_table(struct agp_bridge_data *bridge) | |||
| 991 | * called, then all agp memory is deallocated and removed | 996 | * called, then all agp memory is deallocated and removed |
| 992 | * from the table. */ | 997 | * from the table. */ |
| 993 | 998 | ||
| 999 | #ifdef CONFIG_X86 | ||
| 1000 | set_memory_wb((unsigned long)bridge->gatt_table, 1 << page_order); | ||
| 1001 | #else | ||
| 994 | iounmap(bridge->gatt_table); | 1002 | iounmap(bridge->gatt_table); |
| 1003 | #endif | ||
| 995 | table = (char *) bridge->gatt_table_real; | 1004 | table = (char *) bridge->gatt_table_real; |
| 996 | table_end = table + ((PAGE_SIZE * (1 << page_order)) - 1); | 1005 | table_end = table + ((PAGE_SIZE * (1 << page_order)) - 1); |
| 997 | 1006 | ||
