Index: 2005-12-16/include/asm-i386/agp.h =================================================================== --- 2005-12-16.orig/include/asm-i386/agp.h 2005-11-21 16:42:07.000000000 +0100 +++ 2005-12-16/include/asm-i386/agp.h 2005-12-19 15:59:08.897183984 +0100 @@ -1,8 +1,10 @@ #ifndef AGP_H #define AGP_H 1 +#include #include #include +#include /* * Functions to keep the agpgart mappings coherent with the MMU. @@ -22,13 +24,26 @@ int unmap_page_from_agp(struct page *pag #define flush_agp_cache() wbinvd() /* Convert a physical address to an address suitable for the GART. */ +#ifndef CONFIG_X86_XEN #define phys_to_gart(x) (x) #define gart_to_phys(x) (x) +#else +#define phys_to_gart(x) phys_to_machine(x) +#define gart_to_phys(x) machine_to_phys(x) +#endif /* GATT allocation. Returns/accepts GATT kernel virtual address. */ +#ifndef CONFIG_X86_XEN #define alloc_gatt_pages(order) \ ((char *)__get_free_pages(GFP_KERNEL, (order))) #define free_gatt_pages(table, order) \ free_pages((unsigned long)(table), (order)) +#else +#define alloc_gatt_pages(order) ({ \ + dma_addr_t _d; \ + (char*)dma_alloc_coherent(NULL,PAGE_SIZE<<(order),&_d,GFP_KERNEL); }) +#define free_gatt_pages(table, order) \ + dma_free_coherent(NULL,PAGE_SIZE<<(order),(table),virt_to_bus(table)) +#endif #endif Index: 2005-12-16/include/asm-i386/mach-xen/asm/agp.h =================================================================== --- 2005-12-16.orig/include/asm-i386/mach-xen/asm/agp.h 2005-11-21 16:42:07.000000000 +0100 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,37 +0,0 @@ -#ifndef AGP_H -#define AGP_H 1 - -#include -#include -#include - -/* - * Functions to keep the agpgart mappings coherent with the MMU. - * The GART gives the CPU a physical alias of pages in memory. The alias region is - * mapped uncacheable. Make sure there are no conflicting mappings - * with different cachability attributes for the same page. This avoids - * data corruption on some CPUs. - */ - -int map_page_into_agp(struct page *page); -int unmap_page_from_agp(struct page *page); -#define flush_agp_mappings() global_flush_tlb() - -/* Could use CLFLUSH here if the cpu supports it. But then it would - need to be called for each cacheline of the whole page so it may not be - worth it. Would need a page for it. */ -#define flush_agp_cache() wbinvd() - -/* Convert a physical address to an address suitable for the GART. */ -#define phys_to_gart(x) phys_to_machine(x) -#define gart_to_phys(x) machine_to_phys(x) - -/* GATT allocation. Returns/accepts GATT kernel virtual address. */ -#define alloc_gatt_pages(order) ({ \ - char *_t; dma_addr_t _d; \ - _t = dma_alloc_coherent(NULL,PAGE_SIZE<<(order),&_d,GFP_KERNEL); \ - _t; }) -#define free_gatt_pages(table, order) \ - dma_free_coherent(NULL,PAGE_SIZE<<(order),(table),virt_to_bus(table)) - -#endif