evdev_table[minor] = evdev;
 
-       class_device_create(input_class, NULL,
+       class_device_create(&input_dev_class, &dev->cdev,
                        MKDEV(INPUT_MAJOR, EVDEV_MINOR_BASE + minor),
-                       dev->dev, "event%d", minor);
+                       dev->cdev.dev, "event%d", minor);
 
        return &evdev->handle;
 }
        struct evdev *evdev = handle->private;
        struct evdev_list *list;
 
-       class_device_destroy(input_class,
+       class_device_destroy(&input_dev_class,
                        MKDEV(INPUT_MAJOR, EVDEV_MINOR_BASE + evdev->minor));
        evdev->exist = 0;
 
 
 
        joydev_table[minor] = joydev;
 
-       class_device_create(input_class, NULL,
+       class_device_create(&input_dev_class, &dev->cdev,
                        MKDEV(INPUT_MAJOR, JOYDEV_MINOR_BASE + minor),
-                       dev->dev, "js%d", minor);
+                       dev->cdev.dev, "js%d", minor);
 
        return &joydev->handle;
 }
        struct joydev *joydev = handle->private;
        struct joydev_list *list;
 
-       class_device_destroy(input_class, MKDEV(INPUT_MAJOR, JOYDEV_MINOR_BASE + joydev->minor));
+       class_device_destroy(&input_dev_class, MKDEV(INPUT_MAJOR, JOYDEV_MINOR_BASE + joydev->minor));
        joydev->exist = 0;
 
        if (joydev->open) {
 
 
        mousedev_table[minor] = mousedev;
 
-       class_device_create(input_class, NULL,
+       class_device_create(&input_dev_class, &dev->cdev,
                        MKDEV(INPUT_MAJOR, MOUSEDEV_MINOR_BASE + minor),
-                       dev->dev, "mouse%d", minor);
+                       dev->cdev.dev, "mouse%d", minor);
 
        return &mousedev->handle;
 }
        struct mousedev *mousedev = handle->private;
        struct mousedev_list *list;
 
-       class_device_destroy(input_class,
+       class_device_destroy(&input_dev_class,
                        MKDEV(INPUT_MAJOR, MOUSEDEV_MINOR_BASE + mousedev->minor));
        mousedev->exist = 0;
 
        mousedev_mix.exist = 1;
        mousedev_mix.minor = MOUSEDEV_MIX;
 
-       class_device_create(input_class, NULL,
+       class_device_create(&input_dev_class, NULL,
                        MKDEV(INPUT_MAJOR, MOUSEDEV_MINOR_BASE + MOUSEDEV_MIX), NULL, "mice");
 
 #ifdef CONFIG_INPUT_MOUSEDEV_PSAUX
        if (psaux_registered)
                misc_deregister(&psaux_mouse);
 #endif
-       class_device_destroy(input_class,
+       class_device_destroy(&input_dev_class,
                        MKDEV(INPUT_MAJOR, MOUSEDEV_MINOR_BASE + MOUSEDEV_MIX));
        input_unregister_handler(&mousedev_handler);
 }
 
 
        tsdev_table[minor] = tsdev;
 
-       class_device_create(input_class, NULL,
+       class_device_create(&input_dev_class, &dev->cdev,
                        MKDEV(INPUT_MAJOR, TSDEV_MINOR_BASE + minor),
-                       dev->dev, "ts%d", minor);
+                       dev->cdev.dev, "ts%d", minor);
 
        return &tsdev->handle;
 }
        struct tsdev *tsdev = handle->private;
        struct tsdev_list *list;
 
-       class_device_destroy(input_class,
+       class_device_destroy(&input_dev_class,
                        MKDEV(INPUT_MAJOR, TSDEV_MINOR_BASE + tsdev->minor));
        tsdev->exist = 0;