I have no idea where I should be submitting patches to code for, but I
managed to get DRM working under 2.5.15 with my radeon. I've attached
the patch to this message (I saw someone else do it first), if I'm
putting this in the wrong place, please correct me!
Not much to it really! Just renamed some things.
Micah
diff -urN drm/drmP.h drmnew/drmP.h
--- drm/drmP.h Sat May 11 23:53:47 2002
+++ drmnew/drmP.h Sun May 12 23:07:03 2002
@@ -53,6 +53,7 @@
#include <linux/sched.h>
#include <linux/smp_lock.h> /* For (un)lock_kernel */
#include <linux/mm.h>
+#include <linux/highmem.h> /* Micah Added to fix KM_PTE0 compile error */
#if defined(__alpha__) || defined(__powerpc__)
#include <asm/pgtable.h> /* For pte_wrprotect */
#endif
diff -urN drm/drm_drv.h drmnew/drm_drv.h
--- drm/drm_drv.h Sat May 11 23:53:47 2002
+++ drmnew/drm_drv.h Sun May 12 22:32:13 2002
@@ -705,7 +705,7 @@
int i;
for (i = 0; i < DRM(numdevs); i++) {
- if (MINOR(inode->i_rdev) == DRM(minor)[i]) {
+ if (minor(inode->i_rdev) == DRM(minor)[i]) {
dev = &(DRM(device)[i]);
break;
}
diff -urN drm/drm_fops.h drmnew/drm_fops.h
--- drm/drm_fops.h Sat May 11 23:53:47 2002
+++ drmnew/drm_fops.h Sun May 12 22:45:15 2002
@@ -38,7 +38,7 @@
int DRM(open_helper)(struct inode *inode, struct file *filp, drm_device_t *dev)
{
- kdev_t minor = MINOR(inode->i_rdev);
+ int minor = minor(inode->i_rdev);
drm_file_t *priv;
if (filp->f_flags & O_EXCL) return -EBUSY; /* No exclusive opens */
diff -urN drm/drm_scatter.h drmnew/drm_scatter.h
--- drm/drm_scatter.h Sat May 11 23:53:47 2002
+++ drmnew/drm_scatter.h Sun May 12 22:46:31 2002
@@ -145,7 +145,7 @@
if ( !pmd_present( *pmd ) )
goto failed;
- pte = pte_offset( pmd, i );
+ pte = pte_offset_map( pmd, i );
if ( !pte_present( *pte ) )
goto failed;
diff -urN drm/drm_stub.h drmnew/drm_stub.h
--- drm/drm_stub.h Sat May 11 23:53:47 2002
+++ drmnew/drm_stub.h Sun May 12 22:36:50 2002
@@ -49,7 +49,7 @@
static int DRM(stub_open)(struct inode *inode, struct file *filp)
{
- int minor = MINOR(inode->i_rdev);
+ int minor = minor(inode->i_rdev);
int err = -ENODEV;
struct file_operations *old_fops;
diff -urN drm/drm_vm.h drmnew/drm_vm.h
--- drm/drm_vm.h Sat May 11 23:53:47 2002
+++ drmnew/drm_vm.h Sun May 12 22:46:12 2002
@@ -147,7 +147,7 @@
if( !pgd_present( *pgd ) ) return NOPAGE_OOM;
pmd = pmd_offset( pgd, i );
if( !pmd_present( *pmd ) ) return NOPAGE_OOM;
- pte = pte_offset( pmd, i );
+ pte = pte_offset_map( pmd, i );
if( !pte_present( *pte ) ) return NOPAGE_OOM;
page = pte_page(*pte);
@@ -462,12 +462,12 @@
}
offset = DRIVER_GET_REG_OFS();
#ifdef __sparc__
- if (io_remap_page_range(vma->vm_start,
+ if (io_remap_page_range(vma, vma->vm_start,
VM_OFFSET(vma) + offset,
vma->vm_end - vma->vm_start,
vma->vm_page_prot, 0))
#else
- if (remap_page_range(vma->vm_start,
+ if (remap_page_range(vma, vma->vm_start,
VM_OFFSET(vma) + offset,
vma->vm_end - vma->vm_start,
vma->vm_page_prot))