From f0f6509a72abf3a3a0a8f26a35b7a8f3d96cbb9b Mon Sep 17 00:00:00 2001 From: Rik Faith Date: Fri, 18 Aug 2000 13:55:23 +0000 Subject: Sync with Linux 2.4.0-test7/pre4 --- linux-core/drmP.h | 3 ++- linux/agpsupport.c | 6 ++++-- linux/drmP.h | 3 ++- linux/memory.c | 1 + linux/vm.c | 5 ++++- 5 files changed, 13 insertions(+), 5 deletions(-) diff --git a/linux-core/drmP.h b/linux-core/drmP.h index 4f85d07c..0fa20571 100644 --- a/linux-core/drmP.h +++ b/linux-core/drmP.h @@ -46,6 +46,7 @@ #include #include #include /* For (un)lock_kernel */ +#include #include #include #include @@ -140,7 +141,7 @@ typedef struct wait_queue *wait_queue_head_t; #endif /* virt_to_page added in 2.4.0-test6 */ -#ifndef virt_to_page +#if LINUX_VERSION_CODE < 0x020400 #define virt_to_page(kaddr) (mem_map + MAP_NR(kaddr)) #endif diff --git a/linux/agpsupport.c b/linux/agpsupport.c index 7ed234e1..42a1bc2f 100644 --- a/linux/agpsupport.c +++ b/linux/agpsupport.c @@ -309,7 +309,9 @@ drm_agp_head_t *drm_agp_init(void) #if LINUX_VERSION_CODE >= 0x020400 case VIA_MVP4: head->chipset = "VIA MVP4"; break; - case VIA_APOLLO_SUPER: head->chipset = "VIA Apollo Super"; + case VIA_APOLLO_KX133: head->chipset = "VIA Apollo KX133"; + break; + case VIA_APOLLO_KT133: head->chipset = "VIA Apollo KT133"; break; #endif @@ -322,7 +324,7 @@ drm_agp_head_t *drm_agp_init(void) case ALI_M1541: head->chipset = "ALi M1541"; break; default: head->chipset = "Unknown"; break; } - DRM_INFO("AGP %d.%d on %s @ 0x%08lx %dMB\n", + DRM_INFO("AGP %d.%d on %s @ 0x%08lx %ZuMB\n", head->agp_info.version.major, head->agp_info.version.minor, head->chipset, diff --git a/linux/drmP.h b/linux/drmP.h index 4f85d07c..0fa20571 100644 --- a/linux/drmP.h +++ b/linux/drmP.h @@ -46,6 +46,7 @@ #include #include #include /* For (un)lock_kernel */ +#include #include #include #include @@ -140,7 +141,7 @@ typedef struct wait_queue *wait_queue_head_t; #endif /* virt_to_page added in 2.4.0-test6 */ -#ifndef virt_to_page +#if LINUX_VERSION_CODE < 0x020400 #define virt_to_page(kaddr) (mem_map + MAP_NR(kaddr)) #endif diff --git a/linux/memory.c b/linux/memory.c index bcb674b5..34d19b20 100644 --- a/linux/memory.c +++ b/linux/memory.c @@ -32,6 +32,7 @@ #define __NO_VERSION__ #include #include "drmP.h" +#include typedef struct drm_mem_stats { const char *name; diff --git a/linux/vm.c b/linux/vm.c index d295529b..7c5a24bc 100644 --- a/linux/vm.c +++ b/linux/vm.c @@ -250,7 +250,7 @@ int drm_mmap_dma(struct file *filp, struct vm_area_struct *vma) vma->vm_start, vma->vm_end, VM_OFFSET(vma)); /* Length must match exact page count */ - if ((length >> PAGE_SHIFT) != dma->page_count) { + if (!dma || (length >> PAGE_SHIFT) != dma->page_count) { unlock_kernel(); return -EINVAL; } @@ -323,6 +323,9 @@ int drm_mmap(struct file *filp, struct vm_area_struct *vma) pgprot_val(vma->vm_page_prot) |= _PAGE_PCD; pgprot_val(vma->vm_page_prot) &= ~_PAGE_PWT; } +#elif defined(__ia64__) + if (map->type != _DRM_AGP) + vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot); #endif vma->vm_flags |= VM_IO; /* not in core dump */ } -- cgit v1.2.3