diff options
-rw-r--r-- | linux-core/drmP.h | 4 | ||||
-rw-r--r-- | linux-core/drm_compat.h | 29 | ||||
-rw-r--r-- | linux-core/drm_stub.c | 27 | ||||
-rw-r--r-- | linux/drmP.h | 4 | ||||
-rw-r--r-- | linux/drm_compat.h | 29 | ||||
-rw-r--r-- | linux/drm_stub.h | 27 |
6 files changed, 20 insertions, 100 deletions
diff --git a/linux-core/drmP.h b/linux-core/drmP.h index f89db79c..7ed64535 100644 --- a/linux-core/drmP.h +++ b/linux-core/drmP.h @@ -56,9 +56,6 @@ #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 @@ -697,7 +694,6 @@ typedef struct drm_global { drm_minor_t *minors; struct drm_sysfs_class *drm_class; struct proc_dir_entry *proc_root; - struct cdev drm_cdev; } drm_global_t; static __inline__ int drm_core_check_feature(struct drm_device *dev, int feature) diff --git a/linux-core/drm_compat.h b/linux-core/drm_compat.h index 50e13b9a..2efa8306 100644 --- a/linux-core/drm_compat.h +++ b/linux-core/drm_compat.h @@ -142,32 +142,9 @@ static inline struct drm_sysfs_class *DRM(sysfs_create)(struct module *owner, ch #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;}; +struct drm_device; +static inline int radeon_create_i2c_busses(struct drm_device *dev){return 0;}; +static inline void radeon_delete_i2c_busses(struct drm_device *dev){}; #endif diff --git a/linux-core/drm_stub.c b/linux-core/drm_stub.c index 52b03453..a09f08b8 100644 --- a/linux-core/drm_stub.c +++ b/linux-core/drm_stub.c @@ -248,8 +248,7 @@ int DRM(put_minor)(drm_device_t *dev) remove_proc_entry("dri", NULL); DRM(sysfs_destroy)(DRM(global)->drm_class); - cdev_del(&DRM(global)->drm_cdev); - unregister_chrdev_region(MKDEV(DRM_MAJOR, 0), DRM_MAX_MINOR); + unregister_chrdev(DRM_MAJOR, "drm"); DRM(free)(DRM(global)->minors, sizeof(*DRM(global)->minors) * DRM(global)->cards_limit, DRM_MEM_STUB); @@ -296,7 +295,6 @@ int DRM(put_secondary_minor)(drm_minor_t *sec_minor) */ int DRM(probe)(struct pci_dev *pdev, const struct pci_device_id *ent) { - dev_t dev = MKDEV(DRM_MAJOR, 0); drm_global_t *global; int ret = -ENOMEM; @@ -321,30 +319,21 @@ int DRM(probe)(struct pci_dev *pdev, const struct pci_device_id *ent) if(!global->minors) goto err_p1; - if (register_chrdev_region(dev, DRM_MAX_MINOR, "drm")) + if (register_chrdev(DRM_MAJOR, "drm", &DRM(stub_fops))) goto err_p1; - strncpy(global->drm_cdev.kobj.name, "drm", KOBJ_NAME_LEN); - global->drm_cdev.owner = THIS_MODULE; - cdev_init(&global->drm_cdev, &DRM(stub_fops)); - if (cdev_add(&global->drm_cdev, dev, DRM_MAX_MINOR)) { - kobject_put(&global->drm_cdev.kobj); - printk (KERN_ERR "DRM: Error registering drm major number.\n"); - goto err_p2; - } - 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); - goto err_p3; + goto err_p2; } global->proc_root = create_proc_entry("dri", S_IFDIR, NULL); if (!global->proc_root) { DRM_ERROR("Cannot create /proc/dri\n"); ret = -1; - goto err_p4; + goto err_p3; } DRM_DEBUG("calling inter_module_register\n"); inter_module_register("drm", THIS_MODULE, global); @@ -353,16 +342,14 @@ int DRM(probe)(struct pci_dev *pdev, const struct pci_device_id *ent) } if ((ret = get_minor(pdev, ent))) { if (global) - goto err_p4; + goto err_p3; return ret; } return 0; -err_p4: - DRM(sysfs_destroy)(global->drm_class); err_p3: - cdev_del(&global->drm_cdev); - unregister_chrdev_region(dev, DRM_MAX_MINOR); + DRM(sysfs_destroy)(global->drm_class); err_p2: + unregister_chrdev(DRM_MAJOR, "drm"); DRM(free)(global->minors, sizeof(*global->minors) * global->cards_limit, DRM_MEM_STUB); err_p1: DRM(free)(global, sizeof(*global), DRM_MEM_STUB); diff --git a/linux/drmP.h b/linux/drmP.h index f89db79c..7ed64535 100644 --- a/linux/drmP.h +++ b/linux/drmP.h @@ -56,9 +56,6 @@ #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 @@ -697,7 +694,6 @@ typedef struct drm_global { drm_minor_t *minors; struct drm_sysfs_class *drm_class; struct proc_dir_entry *proc_root; - struct cdev drm_cdev; } drm_global_t; static __inline__ int drm_core_check_feature(struct drm_device *dev, int feature) diff --git a/linux/drm_compat.h b/linux/drm_compat.h index 50e13b9a..2efa8306 100644 --- a/linux/drm_compat.h +++ b/linux/drm_compat.h @@ -142,32 +142,9 @@ static inline struct drm_sysfs_class *DRM(sysfs_create)(struct module *owner, ch #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;}; +struct drm_device; +static inline int radeon_create_i2c_busses(struct drm_device *dev){return 0;}; +static inline void radeon_delete_i2c_busses(struct drm_device *dev){}; #endif diff --git a/linux/drm_stub.h b/linux/drm_stub.h index 52b03453..a09f08b8 100644 --- a/linux/drm_stub.h +++ b/linux/drm_stub.h @@ -248,8 +248,7 @@ int DRM(put_minor)(drm_device_t *dev) remove_proc_entry("dri", NULL); DRM(sysfs_destroy)(DRM(global)->drm_class); - cdev_del(&DRM(global)->drm_cdev); - unregister_chrdev_region(MKDEV(DRM_MAJOR, 0), DRM_MAX_MINOR); + unregister_chrdev(DRM_MAJOR, "drm"); DRM(free)(DRM(global)->minors, sizeof(*DRM(global)->minors) * DRM(global)->cards_limit, DRM_MEM_STUB); @@ -296,7 +295,6 @@ int DRM(put_secondary_minor)(drm_minor_t *sec_minor) */ int DRM(probe)(struct pci_dev *pdev, const struct pci_device_id *ent) { - dev_t dev = MKDEV(DRM_MAJOR, 0); drm_global_t *global; int ret = -ENOMEM; @@ -321,30 +319,21 @@ int DRM(probe)(struct pci_dev *pdev, const struct pci_device_id *ent) if(!global->minors) goto err_p1; - if (register_chrdev_region(dev, DRM_MAX_MINOR, "drm")) + if (register_chrdev(DRM_MAJOR, "drm", &DRM(stub_fops))) goto err_p1; - strncpy(global->drm_cdev.kobj.name, "drm", KOBJ_NAME_LEN); - global->drm_cdev.owner = THIS_MODULE; - cdev_init(&global->drm_cdev, &DRM(stub_fops)); - if (cdev_add(&global->drm_cdev, dev, DRM_MAX_MINOR)) { - kobject_put(&global->drm_cdev.kobj); - printk (KERN_ERR "DRM: Error registering drm major number.\n"); - goto err_p2; - } - 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); - goto err_p3; + goto err_p2; } global->proc_root = create_proc_entry("dri", S_IFDIR, NULL); if (!global->proc_root) { DRM_ERROR("Cannot create /proc/dri\n"); ret = -1; - goto err_p4; + goto err_p3; } DRM_DEBUG("calling inter_module_register\n"); inter_module_register("drm", THIS_MODULE, global); @@ -353,16 +342,14 @@ int DRM(probe)(struct pci_dev *pdev, const struct pci_device_id *ent) } if ((ret = get_minor(pdev, ent))) { if (global) - goto err_p4; + goto err_p3; return ret; } return 0; -err_p4: - DRM(sysfs_destroy)(global->drm_class); err_p3: - cdev_del(&global->drm_cdev); - unregister_chrdev_region(dev, DRM_MAX_MINOR); + DRM(sysfs_destroy)(global->drm_class); err_p2: + unregister_chrdev(DRM_MAJOR, "drm"); DRM(free)(global->minors, sizeof(*global->minors) * global->cards_limit, DRM_MEM_STUB); err_p1: DRM(free)(global, sizeof(*global), DRM_MEM_STUB); |