1) switches from class_sysfs to drm sysfs implementation to allow
authorJon Smirl <jonsmirl@yahoo.com>
Thu, 23 Sep 2004 05:39:15 +0000 (05:39 +0000)
committerJon Smirl <jonsmirl@yahoo.com>
Thu, 23 Sep 2004 05:39:15 +0000 (05:39 +0000)
    customization
2) compiles again on 2.4, but doesn't work

37 files changed:
linux-core/Makefile
linux-core/drmP.h
linux-core/drm_compat.h
linux-core/drm_stub.c
linux-core/ffb_drv.c
linux-core/i810_dma.c
linux-core/i810_drv.c
linux-core/i830_dma.c
linux-core/i830_drv.c
linux-core/i915_drv.c
linux-core/mach64_drv.c
linux-core/mga_drv.c
linux-core/r128_drv.c
linux-core/radeon_drv.c
linux-core/savage_drv.c
linux-core/sis_drv.c
linux-core/tdfx_drv.c
linux/Makefile
linux/drmP.h
linux/drm_compat.h
linux/drm_stub.h
linux/ffb_drv.c
linux/i810_dma.c
linux/i810_drv.c
linux/i830_dma.c
linux/i830_drv.c
linux/i915_drv.c
linux/mach64_drv.c
linux/mga_drv.c
linux/r128_drv.c
linux/radeon_drv.c
linux/radeon_i2c.c
linux/savage_drv.c
linux/sis_drv.c
linux/tdfx_drv.c
shared-core/via_drv.c
shared/via_drv.c

index 9cfe7d5..b338f7d 100644 (file)
@@ -69,7 +69,8 @@ DRM_MODULES ?= $(MODULE_LIST)
 
 DRMTEMPLATES =  drm_auth.h drm_bufs.h drm_context.h drm_dma.h drm_drawable.h \
                 drm_drv.h drm_fops.h drm_init.h drm_ioctl.h drm_irq.h \
-                drm_lock.h drm_memory.h drm_proc.h drm_stub.h drm_vm.h
+                drm_lock.h drm_memory.h drm_proc.h drm_stub.h drm_vm.h \
+                drm_sysfs.h drm_core.h
 
 DRMSHARED =     drm.h drm_sarea.h
 DRMHEADERS =    drmP.h $(DRMSHARED)
index 6a0a73a..f89db79 100644 (file)
@@ -56,7 +56,9 @@
 #include <linux/smp_lock.h>    /* For (un)lock_kernel */
 #include <linux/mm.h>
 #include <linux/pagemap.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
 #include <linux/cdev.h>
+#endif
 #if defined(__alpha__) || defined(__powerpc__)
 #include <asm/pgtable.h> /* For pte_wrprotect */
 #endif
@@ -693,7 +695,7 @@ typedef struct drm_minor {
 typedef struct drm_global {
        unsigned int cards_limit;
        drm_minor_t *minors;
-       struct class_simple *drm_class;
+       struct drm_sysfs_class *drm_class;
        struct proc_dir_entry *proc_root;
        struct cdev drm_cdev;
 } drm_global_t;
index d1c55cd..50e13b9 100644 (file)
 #define pte_unmap(pte)
 #endif
 
+#ifndef module_param
+#define module_param(name, type, perm)
+#endif
+
 #ifndef list_for_each_safe
 #define list_for_each_safe(pos, n, head)                               \
        for (pos = (head)->next, n = pos->next; pos != (head);          \
@@ -100,6 +104,17 @@ static inline struct page * vmalloc_to_page(void * vmalloc_addr)
 }
 #endif
 
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,4,2)
+#define down_write down
+#define up_write up
+#endif
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
+#define DRM_PCI_DEV(pdev) &pdev->dev
+#else
+#define DRM_PCI_DEV(pdev) NULL
+#endif
+
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 static inline unsigned iminor(struct inode *inode)
 {
@@ -108,24 +123,52 @@ static inline unsigned iminor(struct inode *inode)
 
 #define old_encode_dev(x) (x)
 
+struct drm_sysfs_class;
 struct class_simple;
 struct device;
 
 #define pci_dev_put(x) do {} while (0)
 #define pci_get_subsys pci_find_subsys
 
-#define class_simple_device_add(...) do {} while (0)
+static inline struct class_device *DRM(sysfs_device_add)(struct drm_sysfs_class *cs, dev_t dev, struct device *device, const char *fmt, ...){return NULL;}
 
-static inline void class_simple_device_remove(dev_t dev){}
+static inline void DRM(sysfs_device_remove)(dev_t dev){}
 
-static inline void class_simple_destroy(struct class_simple *cs){}
+static inline void DRM(sysfs_destroy)(struct drm_sysfs_class *cs){}
 
-static inline struct class_simple *class_simple_create(struct module *owner, char *name) { return (struct class_simple *)owner; }
+static inline struct drm_sysfs_class *DRM(sysfs_create)(struct module *owner, char *name) { return NULL; }
 
 #ifndef pci_pretty_name
 #define pci_pretty_name(x) x->name
 #endif
 
+/* not used in 2.4, just makes the code compile */
+#define KOBJ_NAME_LEN 20
+struct kobject {
+       char name[KOBJ_NAME_LEN];
+};
+struct cdev {
+        struct kobject kobj;
+        struct module *owner;
+        struct file_operations *ops;
+        struct list_head list;
+        dev_t dev;
+        unsigned int count;
+};
+static inline void cdev_del(struct cdev *cd){}
+static inline void cdev_init(struct cdev *cd, struct file_operations *fop){}
+static inline int cdev_add(struct cdev *cd, dev_t dt, unsigned u){ return 0;}
+
+static inline int register_chrdev_region(dev_t device, unsigned minor, char *name) {
+       return register_chrdev(device, name, NULL);
+}
+
+static inline int unregister_chrdev_region(dev_t device, unsigned minor) {
+       return unregister_chrdev(device, NULL);
+}
+
+static inline int kobject_put(struct kobject *kobj){ return 0;};
+
 #endif
 
 #ifndef __user
index 7037338..52b0345 100644 (file)
@@ -42,10 +42,8 @@ MODULE_LICENSE("GPL and additional rights");
 MODULE_PARM_DESC(cards_limit, "Maximum number of graphics cards");
 MODULE_PARM_DESC(debug, "Enable debug output");
 
-#ifdef module_param
 module_param(cards_limit, int, 0444);
 module_param(debug, int, 0666);
-#endif
 
 drm_global_t *DRM(global);
 
@@ -135,10 +133,10 @@ static int get_minor(struct pci_dev *pdev, const struct pci_device_id *ent)
                                pci_request_regions(pdev, DRIVER_NAME);
                                pci_enable_device(pdev);
                        }
-                       dev_class = class_simple_device_add(DRM(global)->drm_class, 
-                                       MKDEV(DRM_MAJOR, minor), &pdev->dev, "card%d", minor);
+                       dev_class = DRM(sysfs_device_add)(DRM(global)->drm_class, 
+                                       MKDEV(DRM_MAJOR, minor), DRM_PCI_DEV(pdev), "card%d", minor);
                        if (IS_ERR(dev_class)) {
-                               printk (KERN_ERR "DRM: Error class_simple_device_add.\n");
+                               printk (KERN_ERR "DRM: Error sysfs_device_add.\n");
                                ret = PTR_ERR(dev_class);
                                goto err_g2;
                        }
@@ -191,10 +189,10 @@ int DRM(get_secondary_minor)(drm_device_t *dev, drm_minor_t **sec_minor)
                                goto err_g1;
                        }
 
-                       dev_class = class_simple_device_add(DRM(global)->drm_class, 
-                                       MKDEV(DRM_MAJOR, minor), &dev->pdev->dev, "card%d", minor);
+                       dev_class = DRM(sysfs_device_add)(DRM(global)->drm_class, 
+                                       MKDEV(DRM_MAJOR, minor), DRM_PCI_DEV(dev->pdev), "card%d", minor);
                        if (IS_ERR(dev_class)) {
-                               printk (KERN_ERR "DRM: Error class_simple_device_add.\n");
+                               printk (KERN_ERR "DRM: Error sysfs_device_add.\n");
                                ret = PTR_ERR(dev_class);
                                goto err_g2;
                        }
@@ -232,7 +230,7 @@ int DRM(put_minor)(drm_device_t *dev)
        DRM_DEBUG("release primary minor %d\n", dev->minor);
 
        DRM(proc_cleanup)(dev->minor, DRM(global)->proc_root, minors->dev_root);
-       class_simple_device_remove(MKDEV(DRM_MAJOR, dev->minor));
+       DRM(sysfs_device_remove)(MKDEV(DRM_MAJOR, dev->minor));
 
        *minors = (drm_minor_t){.dev = NULL, .class = DRM_MINOR_FREE};
        DRM(free)(dev, sizeof(*dev), DRM_MEM_STUB);
@@ -248,7 +246,8 @@ int DRM(put_minor)(drm_device_t *dev)
        DRM_DEBUG("unregistering inter_module \n");
        inter_module_unregister("drm");
        remove_proc_entry("dri", NULL);
-       class_simple_destroy(DRM(global)->drm_class);
+       DRM(sysfs_destroy)(DRM(global)->drm_class);
+
        cdev_del(&DRM(global)->drm_cdev);
        unregister_chrdev_region(MKDEV(DRM_MAJOR, 0), DRM_MAX_MINOR);
 
@@ -277,7 +276,7 @@ int DRM(put_secondary_minor)(drm_minor_t *sec_minor)
        DRM_DEBUG("release secondary minor %d\n", minor);
 
        DRM(proc_cleanup)(minor, DRM(global)->proc_root, sec_minor->dev_root);
-       class_simple_device_remove(MKDEV(DRM_MAJOR, minor));
+       DRM(sysfs_device_remove)(MKDEV(DRM_MAJOR, minor));
 
        *sec_minor = (drm_minor_t){.dev = NULL, .class = DRM_MINOR_FREE};
 
@@ -333,8 +332,8 @@ int DRM(probe)(struct pci_dev *pdev, const struct pci_device_id *ent)
                        printk (KERN_ERR "DRM: Error registering drm major number.\n");
                        goto err_p2;
                }
-                       
-               global->drm_class = class_simple_create(THIS_MODULE, "drm");
+
+               global->drm_class = DRM(sysfs_create)(THIS_MODULE, "drm");
                if (IS_ERR(global->drm_class)) {
                        printk (KERN_ERR "DRM: Error creating drm class.\n");
                        ret = PTR_ERR(global->drm_class);
@@ -359,7 +358,7 @@ int DRM(probe)(struct pci_dev *pdev, const struct pci_device_id *ent)
        }
        return 0;
 err_p4:
-       class_simple_destroy(global->drm_class);
+       DRM(sysfs_destroy)(global->drm_class);
 err_p3:
        cdev_del(&global->drm_cdev);
        unregister_chrdev_region(dev, DRM_MAX_MINOR);
index 5edafa0..1d78cbd 100644 (file)
@@ -237,12 +237,7 @@ unsigned long ffb_get_unmapped_area(struct file *filp,
        return addr;
 }
 
-#include "drm_auth.h"
-#include "drm_bufs.h"
-#include "drm_context.h"
-#include "drm_dma.h"
-#include "drm_drawable.h"
-#include "drm_drv.h"
+#include "drm_core.h"
 
 /* This functions must be here since it references DRM(numdevs)
  * which drm_drv.h declares.
@@ -281,11 +276,3 @@ int ffb_presetup(drm_device_t *dev)
        return ret;
 }
 
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_ioctl.h"
-#include "drm_lock.h"
-#include "drm_memory.h"
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
index 0c82885..5d2165c 100644 (file)
 #define I810_BUF_UNMAPPED 0
 #define I810_BUF_MAPPED   1
 
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,4,2)
-#define down_write down
-#define up_write up
-#endif
-
 static inline void i810_print_status_page(drm_device_t *dev)
 {
        drm_device_dma_t *dma = dev->dma;
index 1ab8b01..00ca551 100644 (file)
 #include "i810_drm.h"
 #include "i810_drv.h"
 
-#include "drm_agpsupport.h"
-#include "drm_auth.h"
-#include "drm_bufs.h"
-#include "drm_context.h"
-#include "drm_dma.h"
-#include "drm_drawable.h"
-#include "drm_drv.h"
-
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_ioctl.h"
-#include "drm_irq.h"
-#include "drm_lock.h"
-#include "drm_memory.h"
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
-#include "drm_scatter.h"
+#include "drm_core.h"
index f39611c..1ce2a35 100644 (file)
 #define I830_BUF_UNMAPPED 0
 #define I830_BUF_MAPPED   1
 
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,4,2)
-#define down_write down
-#define up_write up
-#endif
-
 static inline void i830_print_status_page(drm_device_t *dev)
 {
        drm_device_dma_t *dma = dev->dma;
index 900706c..eb45b27 100644 (file)
 #include "i830_drm.h"
 #include "i830_drv.h"
 
-#include "drm_agpsupport.h"
-#include "drm_auth.h"
-#include "drm_bufs.h"
-#include "drm_context.h"
-#include "drm_dma.h"
-#include "drm_drawable.h"
-#include "drm_drv.h"
-
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_ioctl.h"
-#include "drm_irq.h"
-#include "drm_lock.h"
-#include "drm_memory.h"
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
-#include "drm_scatter.h"
+#include "drm_core.h"
index e74ef34..becce4d 100644 (file)
 #include "i915_drm.h"
 #include "i915_drv.h"
 
-#include "drm_agpsupport.h"
-#include "drm_auth.h"          /* is this needed? */
-#include "drm_bufs.h"
-#include "drm_context.h"       /* is this needed? */
-#include "drm_drawable.h"      /* is this needed? */
-#include "drm_dma.h"
-#include "drm_drv.h"
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_irq.h"
-#include "drm_ioctl.h"
-#include "drm_lock.h"
-#include "drm_memory.h"                /*  */
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
-#include "drm_scatter.h"
+#include "drm_core.h"
index 32f6cdd..05170ab 100644 (file)
 #include "mach64_drm.h"
 #include "mach64_drv.h"
 
-#include "drm_agpsupport.h"
-#include "drm_auth.h"
-#include "drm_bufs.h"
-#include "drm_context.h"
-#include "drm_dma.h"
-#include "drm_drawable.h"
-#include "drm_drv.h"
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_irq.h"
-#include "drm_ioctl.h"
-#include "drm_lock.h"
-#include "drm_memory.h"
-#include "drm_pci.h"
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
-#include "drm_scatter.h"
+#include "drm_core.h"
index 57940d5..54bfb2d 100644 (file)
 #include "drm.h"
 #include "mga_drm.h"
 #include "mga_drv.h"
-#include "drm_agpsupport.h"
-#include "drm_auth.h"
-#include "drm_bufs.h"
-#include "drm_context.h"
-#include "drm_dma.h"
-#include "drm_drawable.h"
-#include "drm_drv.h"
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_ioctl.h"
-#include "drm_irq.h"
-#include "drm_lock.h"
-#include "drm_memory.h"
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
-#include "drm_scatter.h"
+
+#include "drm_core.h"
index 1dee161..8cfc996 100644 (file)
 #include "r128_drv.h"
 #include "ati_pcigart.h"
 
-#include "drm_agpsupport.h"
-#include "drm_auth.h"
-#include "drm_bufs.h"
-#include "drm_context.h"
-#include "drm_dma.h"
-#include "drm_drawable.h"
-#include "drm_drv.h"
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_ioctl.h"
-#include "drm_irq.h"
-#include "drm_lock.h"
-#include "drm_memory.h"
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
-#include "drm_scatter.h"
+#include "drm_core.h"
index 74e32df..965abc4 100644 (file)
 #include "radeon_drv.h"
 #include "ati_pcigart.h"
 
-#include "drm_agpsupport.h"
-#include "drm_auth.h"
-#include "drm_bufs.h"
-#include "drm_context.h"
-#include "drm_dma.h"
-#include "drm_drawable.h"
-#include "drm_drv.h"
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_ioctl.h"
-#include "drm_irq.h"
-#include "drm_lock.h"
-#include "drm_memory.h"
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
-#include "drm_scatter.h"
+#include "drm_core.h"
index 5d19682..0c51887 100644 (file)
@@ -250,23 +250,6 @@ int savage_free_cont_mem(struct inode *inode, struct file *filp,
 
 #endif /* end #if 0 */
 
-#include "drm_agpsupport.h"
-#include "drm_auth.h"
-#include "drm_bufs.h"
-#include "drm_context.h"
-#include "drm_dma.h"
-#include "drm_drawable.h"
-#include "drm_drv.h"
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_ioctl.h"
-#include "drm_irq.h"
-#include "drm_lock.h"
-#include "drm_memory.h"
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
-#include "drm_scatter.h"
-
+#include "drm_core.h"
 
 
index 0b968dc..90e01cd 100644 (file)
 #include "sis_drm.h"
 #include "sis_drv.h"
 
-#include "drm_auth.h"
-#include "drm_agpsupport.h"
-#include "drm_bufs.h"
-#include "drm_context.h"
-#include "drm_dma.h"
-#include "drm_drawable.h"
-#include "drm_drv.h"
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_irq.h"
-#include "drm_ioctl.h"
-#include "drm_lock.h"
-#include "drm_memory.h"
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
-#include "drm_scatter.h"
-
+#include "drm_core.h"
 
index f34d32d..d131444 100644 (file)
 #include "tdfx.h"
 #include "drmP.h"
 
-#include "drm_agpsupport.h"
-#include "drm_auth.h"
-#include "drm_bufs.h"
-#include "drm_context.h"
-#include "drm_dma.h"
-#include "drm_drawable.h"
-#include "drm_drv.h"
-
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_ioctl.h"
-#include "drm_irq.h"
-#include "drm_lock.h"
-#include "drm_memory.h"
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
-#include "drm_scatter.h"
+#include "drm_core.h"
 
 void DRM(driver_register_fns)(drm_device_t *dev)
 {
index 9cfe7d5..b338f7d 100644 (file)
@@ -69,7 +69,8 @@ DRM_MODULES ?= $(MODULE_LIST)
 
 DRMTEMPLATES =  drm_auth.h drm_bufs.h drm_context.h drm_dma.h drm_drawable.h \
                 drm_drv.h drm_fops.h drm_init.h drm_ioctl.h drm_irq.h \
-                drm_lock.h drm_memory.h drm_proc.h drm_stub.h drm_vm.h
+                drm_lock.h drm_memory.h drm_proc.h drm_stub.h drm_vm.h \
+                drm_sysfs.h drm_core.h
 
 DRMSHARED =     drm.h drm_sarea.h
 DRMHEADERS =    drmP.h $(DRMSHARED)
index 6a0a73a..f89db79 100644 (file)
@@ -56,7 +56,9 @@
 #include <linux/smp_lock.h>    /* For (un)lock_kernel */
 #include <linux/mm.h>
 #include <linux/pagemap.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
 #include <linux/cdev.h>
+#endif
 #if defined(__alpha__) || defined(__powerpc__)
 #include <asm/pgtable.h> /* For pte_wrprotect */
 #endif
@@ -693,7 +695,7 @@ typedef struct drm_minor {
 typedef struct drm_global {
        unsigned int cards_limit;
        drm_minor_t *minors;
-       struct class_simple *drm_class;
+       struct drm_sysfs_class *drm_class;
        struct proc_dir_entry *proc_root;
        struct cdev drm_cdev;
 } drm_global_t;
index d1c55cd..50e13b9 100644 (file)
 #define pte_unmap(pte)
 #endif
 
+#ifndef module_param
+#define module_param(name, type, perm)
+#endif
+
 #ifndef list_for_each_safe
 #define list_for_each_safe(pos, n, head)                               \
        for (pos = (head)->next, n = pos->next; pos != (head);          \
@@ -100,6 +104,17 @@ static inline struct page * vmalloc_to_page(void * vmalloc_addr)
 }
 #endif
 
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,4,2)
+#define down_write down
+#define up_write up
+#endif
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
+#define DRM_PCI_DEV(pdev) &pdev->dev
+#else
+#define DRM_PCI_DEV(pdev) NULL
+#endif
+
 #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
 static inline unsigned iminor(struct inode *inode)
 {
@@ -108,24 +123,52 @@ static inline unsigned iminor(struct inode *inode)
 
 #define old_encode_dev(x) (x)
 
+struct drm_sysfs_class;
 struct class_simple;
 struct device;
 
 #define pci_dev_put(x) do {} while (0)
 #define pci_get_subsys pci_find_subsys
 
-#define class_simple_device_add(...) do {} while (0)
+static inline struct class_device *DRM(sysfs_device_add)(struct drm_sysfs_class *cs, dev_t dev, struct device *device, const char *fmt, ...){return NULL;}
 
-static inline void class_simple_device_remove(dev_t dev){}
+static inline void DRM(sysfs_device_remove)(dev_t dev){}
 
-static inline void class_simple_destroy(struct class_simple *cs){}
+static inline void DRM(sysfs_destroy)(struct drm_sysfs_class *cs){}
 
-static inline struct class_simple *class_simple_create(struct module *owner, char *name) { return (struct class_simple *)owner; }
+static inline struct drm_sysfs_class *DRM(sysfs_create)(struct module *owner, char *name) { return NULL; }
 
 #ifndef pci_pretty_name
 #define pci_pretty_name(x) x->name
 #endif
 
+/* not used in 2.4, just makes the code compile */
+#define KOBJ_NAME_LEN 20
+struct kobject {
+       char name[KOBJ_NAME_LEN];
+};
+struct cdev {
+        struct kobject kobj;
+        struct module *owner;
+        struct file_operations *ops;
+        struct list_head list;
+        dev_t dev;
+        unsigned int count;
+};
+static inline void cdev_del(struct cdev *cd){}
+static inline void cdev_init(struct cdev *cd, struct file_operations *fop){}
+static inline int cdev_add(struct cdev *cd, dev_t dt, unsigned u){ return 0;}
+
+static inline int register_chrdev_region(dev_t device, unsigned minor, char *name) {
+       return register_chrdev(device, name, NULL);
+}
+
+static inline int unregister_chrdev_region(dev_t device, unsigned minor) {
+       return unregister_chrdev(device, NULL);
+}
+
+static inline int kobject_put(struct kobject *kobj){ return 0;};
+
 #endif
 
 #ifndef __user
index 7037338..52b0345 100644 (file)
@@ -42,10 +42,8 @@ MODULE_LICENSE("GPL and additional rights");
 MODULE_PARM_DESC(cards_limit, "Maximum number of graphics cards");
 MODULE_PARM_DESC(debug, "Enable debug output");
 
-#ifdef module_param
 module_param(cards_limit, int, 0444);
 module_param(debug, int, 0666);
-#endif
 
 drm_global_t *DRM(global);
 
@@ -135,10 +133,10 @@ static int get_minor(struct pci_dev *pdev, const struct pci_device_id *ent)
                                pci_request_regions(pdev, DRIVER_NAME);
                                pci_enable_device(pdev);
                        }
-                       dev_class = class_simple_device_add(DRM(global)->drm_class, 
-                                       MKDEV(DRM_MAJOR, minor), &pdev->dev, "card%d", minor);
+                       dev_class = DRM(sysfs_device_add)(DRM(global)->drm_class, 
+                                       MKDEV(DRM_MAJOR, minor), DRM_PCI_DEV(pdev), "card%d", minor);
                        if (IS_ERR(dev_class)) {
-                               printk (KERN_ERR "DRM: Error class_simple_device_add.\n");
+                               printk (KERN_ERR "DRM: Error sysfs_device_add.\n");
                                ret = PTR_ERR(dev_class);
                                goto err_g2;
                        }
@@ -191,10 +189,10 @@ int DRM(get_secondary_minor)(drm_device_t *dev, drm_minor_t **sec_minor)
                                goto err_g1;
                        }
 
-                       dev_class = class_simple_device_add(DRM(global)->drm_class, 
-                                       MKDEV(DRM_MAJOR, minor), &dev->pdev->dev, "card%d", minor);
+                       dev_class = DRM(sysfs_device_add)(DRM(global)->drm_class, 
+                                       MKDEV(DRM_MAJOR, minor), DRM_PCI_DEV(dev->pdev), "card%d", minor);
                        if (IS_ERR(dev_class)) {
-                               printk (KERN_ERR "DRM: Error class_simple_device_add.\n");
+                               printk (KERN_ERR "DRM: Error sysfs_device_add.\n");
                                ret = PTR_ERR(dev_class);
                                goto err_g2;
                        }
@@ -232,7 +230,7 @@ int DRM(put_minor)(drm_device_t *dev)
        DRM_DEBUG("release primary minor %d\n", dev->minor);
 
        DRM(proc_cleanup)(dev->minor, DRM(global)->proc_root, minors->dev_root);
-       class_simple_device_remove(MKDEV(DRM_MAJOR, dev->minor));
+       DRM(sysfs_device_remove)(MKDEV(DRM_MAJOR, dev->minor));
 
        *minors = (drm_minor_t){.dev = NULL, .class = DRM_MINOR_FREE};
        DRM(free)(dev, sizeof(*dev), DRM_MEM_STUB);
@@ -248,7 +246,8 @@ int DRM(put_minor)(drm_device_t *dev)
        DRM_DEBUG("unregistering inter_module \n");
        inter_module_unregister("drm");
        remove_proc_entry("dri", NULL);
-       class_simple_destroy(DRM(global)->drm_class);
+       DRM(sysfs_destroy)(DRM(global)->drm_class);
+
        cdev_del(&DRM(global)->drm_cdev);
        unregister_chrdev_region(MKDEV(DRM_MAJOR, 0), DRM_MAX_MINOR);
 
@@ -277,7 +276,7 @@ int DRM(put_secondary_minor)(drm_minor_t *sec_minor)
        DRM_DEBUG("release secondary minor %d\n", minor);
 
        DRM(proc_cleanup)(minor, DRM(global)->proc_root, sec_minor->dev_root);
-       class_simple_device_remove(MKDEV(DRM_MAJOR, minor));
+       DRM(sysfs_device_remove)(MKDEV(DRM_MAJOR, minor));
 
        *sec_minor = (drm_minor_t){.dev = NULL, .class = DRM_MINOR_FREE};
 
@@ -333,8 +332,8 @@ int DRM(probe)(struct pci_dev *pdev, const struct pci_device_id *ent)
                        printk (KERN_ERR "DRM: Error registering drm major number.\n");
                        goto err_p2;
                }
-                       
-               global->drm_class = class_simple_create(THIS_MODULE, "drm");
+
+               global->drm_class = DRM(sysfs_create)(THIS_MODULE, "drm");
                if (IS_ERR(global->drm_class)) {
                        printk (KERN_ERR "DRM: Error creating drm class.\n");
                        ret = PTR_ERR(global->drm_class);
@@ -359,7 +358,7 @@ int DRM(probe)(struct pci_dev *pdev, const struct pci_device_id *ent)
        }
        return 0;
 err_p4:
-       class_simple_destroy(global->drm_class);
+       DRM(sysfs_destroy)(global->drm_class);
 err_p3:
        cdev_del(&global->drm_cdev);
        unregister_chrdev_region(dev, DRM_MAX_MINOR);
index 5edafa0..1d78cbd 100644 (file)
@@ -237,12 +237,7 @@ unsigned long ffb_get_unmapped_area(struct file *filp,
        return addr;
 }
 
-#include "drm_auth.h"
-#include "drm_bufs.h"
-#include "drm_context.h"
-#include "drm_dma.h"
-#include "drm_drawable.h"
-#include "drm_drv.h"
+#include "drm_core.h"
 
 /* This functions must be here since it references DRM(numdevs)
  * which drm_drv.h declares.
@@ -281,11 +276,3 @@ int ffb_presetup(drm_device_t *dev)
        return ret;
 }
 
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_ioctl.h"
-#include "drm_lock.h"
-#include "drm_memory.h"
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
index 0c82885..5d2165c 100644 (file)
 #define I810_BUF_UNMAPPED 0
 #define I810_BUF_MAPPED   1
 
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,4,2)
-#define down_write down
-#define up_write up
-#endif
-
 static inline void i810_print_status_page(drm_device_t *dev)
 {
        drm_device_dma_t *dma = dev->dma;
index 1ab8b01..00ca551 100644 (file)
 #include "i810_drm.h"
 #include "i810_drv.h"
 
-#include "drm_agpsupport.h"
-#include "drm_auth.h"
-#include "drm_bufs.h"
-#include "drm_context.h"
-#include "drm_dma.h"
-#include "drm_drawable.h"
-#include "drm_drv.h"
-
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_ioctl.h"
-#include "drm_irq.h"
-#include "drm_lock.h"
-#include "drm_memory.h"
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
-#include "drm_scatter.h"
+#include "drm_core.h"
index f39611c..1ce2a35 100644 (file)
 #define I830_BUF_UNMAPPED 0
 #define I830_BUF_MAPPED   1
 
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,4,2)
-#define down_write down
-#define up_write up
-#endif
-
 static inline void i830_print_status_page(drm_device_t *dev)
 {
        drm_device_dma_t *dma = dev->dma;
index 900706c..eb45b27 100644 (file)
 #include "i830_drm.h"
 #include "i830_drv.h"
 
-#include "drm_agpsupport.h"
-#include "drm_auth.h"
-#include "drm_bufs.h"
-#include "drm_context.h"
-#include "drm_dma.h"
-#include "drm_drawable.h"
-#include "drm_drv.h"
-
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_ioctl.h"
-#include "drm_irq.h"
-#include "drm_lock.h"
-#include "drm_memory.h"
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
-#include "drm_scatter.h"
+#include "drm_core.h"
index e74ef34..becce4d 100644 (file)
 #include "i915_drm.h"
 #include "i915_drv.h"
 
-#include "drm_agpsupport.h"
-#include "drm_auth.h"          /* is this needed? */
-#include "drm_bufs.h"
-#include "drm_context.h"       /* is this needed? */
-#include "drm_drawable.h"      /* is this needed? */
-#include "drm_dma.h"
-#include "drm_drv.h"
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_irq.h"
-#include "drm_ioctl.h"
-#include "drm_lock.h"
-#include "drm_memory.h"                /*  */
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
-#include "drm_scatter.h"
+#include "drm_core.h"
index 32f6cdd..05170ab 100644 (file)
 #include "mach64_drm.h"
 #include "mach64_drv.h"
 
-#include "drm_agpsupport.h"
-#include "drm_auth.h"
-#include "drm_bufs.h"
-#include "drm_context.h"
-#include "drm_dma.h"
-#include "drm_drawable.h"
-#include "drm_drv.h"
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_irq.h"
-#include "drm_ioctl.h"
-#include "drm_lock.h"
-#include "drm_memory.h"
-#include "drm_pci.h"
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
-#include "drm_scatter.h"
+#include "drm_core.h"
index 57940d5..54bfb2d 100644 (file)
 #include "drm.h"
 #include "mga_drm.h"
 #include "mga_drv.h"
-#include "drm_agpsupport.h"
-#include "drm_auth.h"
-#include "drm_bufs.h"
-#include "drm_context.h"
-#include "drm_dma.h"
-#include "drm_drawable.h"
-#include "drm_drv.h"
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_ioctl.h"
-#include "drm_irq.h"
-#include "drm_lock.h"
-#include "drm_memory.h"
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
-#include "drm_scatter.h"
+
+#include "drm_core.h"
index 1dee161..8cfc996 100644 (file)
 #include "r128_drv.h"
 #include "ati_pcigart.h"
 
-#include "drm_agpsupport.h"
-#include "drm_auth.h"
-#include "drm_bufs.h"
-#include "drm_context.h"
-#include "drm_dma.h"
-#include "drm_drawable.h"
-#include "drm_drv.h"
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_ioctl.h"
-#include "drm_irq.h"
-#include "drm_lock.h"
-#include "drm_memory.h"
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
-#include "drm_scatter.h"
+#include "drm_core.h"
index 74e32df..965abc4 100644 (file)
 #include "radeon_drv.h"
 #include "ati_pcigart.h"
 
-#include "drm_agpsupport.h"
-#include "drm_auth.h"
-#include "drm_bufs.h"
-#include "drm_context.h"
-#include "drm_dma.h"
-#include "drm_drawable.h"
-#include "drm_drv.h"
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_ioctl.h"
-#include "drm_irq.h"
-#include "drm_lock.h"
-#include "drm_memory.h"
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
-#include "drm_scatter.h"
+#include "drm_core.h"
index a68b9ee..e259172 100644 (file)
@@ -19,6 +19,9 @@
 #include <linux/delay.h>
 #include <linux/pci.h>
 #include <linux/fb.h>
+#include <linux/version.h>
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
 
 #include <asm/io.h>
 #include <video/radeon.h>
@@ -150,3 +153,5 @@ void radeon_delete_i2c_busses(drm_device_t *dev)
                dev_priv->i2c[i].dev = NULL;
        }
 }
+
+#endif
index 5d19682..0c51887 100644 (file)
@@ -250,23 +250,6 @@ int savage_free_cont_mem(struct inode *inode, struct file *filp,
 
 #endif /* end #if 0 */
 
-#include "drm_agpsupport.h"
-#include "drm_auth.h"
-#include "drm_bufs.h"
-#include "drm_context.h"
-#include "drm_dma.h"
-#include "drm_drawable.h"
-#include "drm_drv.h"
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_ioctl.h"
-#include "drm_irq.h"
-#include "drm_lock.h"
-#include "drm_memory.h"
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
-#include "drm_scatter.h"
-
+#include "drm_core.h"
 
 
index 0b968dc..90e01cd 100644 (file)
 #include "sis_drm.h"
 #include "sis_drv.h"
 
-#include "drm_auth.h"
-#include "drm_agpsupport.h"
-#include "drm_bufs.h"
-#include "drm_context.h"
-#include "drm_dma.h"
-#include "drm_drawable.h"
-#include "drm_drv.h"
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_irq.h"
-#include "drm_ioctl.h"
-#include "drm_lock.h"
-#include "drm_memory.h"
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
-#include "drm_scatter.h"
-
+#include "drm_core.h"
 
index f34d32d..d131444 100644 (file)
 #include "tdfx.h"
 #include "drmP.h"
 
-#include "drm_agpsupport.h"
-#include "drm_auth.h"
-#include "drm_bufs.h"
-#include "drm_context.h"
-#include "drm_dma.h"
-#include "drm_drawable.h"
-#include "drm_drv.h"
-
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_ioctl.h"
-#include "drm_irq.h"
-#include "drm_lock.h"
-#include "drm_memory.h"
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
-#include "drm_scatter.h"
+#include "drm_core.h"
 
 void DRM(driver_register_fns)(drm_device_t *dev)
 {
index a6321d0..7b6e1b9 100644 (file)
         [DRM_IOCTL_NR(DRM_IOCTL_VIA_PCICMD)] = { via_pci_cmdbuffer, 1, 0}
 
 
-#include "drm_auth.h"
-#include "drm_agpsupport.h"
-#include "drm_bufs.h"
-#include "drm_context.h"
-#include "drm_dma.h"
-#include "drm_irq.h"
-#include "drm_drawable.h"
-#include "drm_drv.h"
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_ioctl.h"
-#include "drm_lock.h"
-#include "drm_memory.h"
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
-#include "drm_scatter.h"
-
+#include "drm_core.h"
index a6321d0..7b6e1b9 100644 (file)
         [DRM_IOCTL_NR(DRM_IOCTL_VIA_PCICMD)] = { via_pci_cmdbuffer, 1, 0}
 
 
-#include "drm_auth.h"
-#include "drm_agpsupport.h"
-#include "drm_bufs.h"
-#include "drm_context.h"
-#include "drm_dma.h"
-#include "drm_irq.h"
-#include "drm_drawable.h"
-#include "drm_drv.h"
-#include "drm_fops.h"
-#include "drm_init.h"
-#include "drm_ioctl.h"
-#include "drm_lock.h"
-#include "drm_memory.h"
-#include "drm_proc.h"
-#include "drm_vm.h"
-#include "drm_stub.h"
-#include "drm_scatter.h"
-
+#include "drm_core.h"