summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux-core/drmP.h4
-rw-r--r--linux-core/drm_compat.h29
-rw-r--r--linux-core/drm_stub.c27
-rw-r--r--linux/drmP.h4
-rw-r--r--linux/drm_compat.h29
-rw-r--r--linux/drm_stub.h27
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);