]> err.no Git - linux-2.6/blobdiff - drivers/input/input.c
[PATCH] USB: SN9C10x driver updates
[linux-2.6] / drivers / input / input.c
index 1885f369e3e2c4022e8f968c7445848704d99718..7c4b4d37b3e657698808baf1e8366f056bc64065 100644 (file)
@@ -697,6 +697,8 @@ static int input_handlers_read(char *buf, char **start, off_t pos, int count, in
        return (count > cnt) ? cnt : count;
 }
 
+static struct file_operations input_fileops;
+
 static int __init input_proc_init(void)
 {
        struct proc_dir_entry *entry;
@@ -711,6 +713,8 @@ static int __init input_proc_init(void)
                return -ENOMEM;
        }
        entry->owner = THIS_MODULE;
+       input_fileops = *entry->proc_fops;
+       entry->proc_fops = &input_fileops;
        entry->proc_fops->poll = input_devices_poll;
        entry = create_proc_read_entry("handlers", 0, proc_bus_input_dir, input_handlers_read, NULL);
        if (entry == NULL) {
@@ -725,13 +729,13 @@ static int __init input_proc_init(void)
 static inline int input_proc_init(void) { return 0; }
 #endif
 
-struct class_simple *input_class;
+struct class *input_class;
 
 static int __init input_init(void)
 {
        int retval = -ENOMEM;
 
-       input_class = class_simple_create(THIS_MODULE, "input");
+       input_class = class_create(THIS_MODULE, "input");
        if (IS_ERR(input_class))
                return PTR_ERR(input_class);
        input_proc_init();
@@ -741,7 +745,7 @@ static int __init input_init(void)
                remove_proc_entry("devices", proc_bus_input_dir);
                remove_proc_entry("handlers", proc_bus_input_dir);
                remove_proc_entry("input", proc_bus);
-               class_simple_destroy(input_class);
+               class_destroy(input_class);
                return retval;
        }
 
@@ -751,7 +755,7 @@ static int __init input_init(void)
                remove_proc_entry("handlers", proc_bus_input_dir);
                remove_proc_entry("input", proc_bus);
                unregister_chrdev(INPUT_MAJOR, "input");
-               class_simple_destroy(input_class);
+               class_destroy(input_class);
        }
        return retval;
 }
@@ -764,7 +768,7 @@ static void __exit input_exit(void)
 
        devfs_remove("input");
        unregister_chrdev(INPUT_MAJOR, "input");
-       class_simple_destroy(input_class);
+       class_destroy(input_class);
 }
 
 subsys_initcall(input_init);