]> err.no Git - linux-2.6/blobdiff - drivers/input/mousedev.c
Merge by hand (conflicts in scsi_lib.c)
[linux-2.6] / drivers / input / mousedev.c
index 5ec6291e967f0078acb8598372c9014a3ba34046..2d0af44ac4b9650871972e6af74cf4ff2771a2b0 100644 (file)
@@ -620,6 +620,7 @@ static struct file_operations mousedev_fops = {
 static struct input_handle *mousedev_connect(struct input_handler *handler, struct input_dev *dev, struct input_device_id *id)
 {
        struct mousedev *mousedev;
+       struct class_device *cdev;
        int minor = 0;
 
        for (minor = 0; minor < MOUSEDEV_MINORS && mousedev_table[minor]; minor++);
@@ -648,9 +649,13 @@ static struct input_handle *mousedev_connect(struct input_handler *handler, stru
 
        mousedev_table[minor] = mousedev;
 
-       class_device_create(&input_dev_class, &dev->cdev,
+       cdev = class_device_create(&input_class, &dev->cdev,
                        MKDEV(INPUT_MAJOR, MOUSEDEV_MINOR_BASE + minor),
-                       dev->cdev.dev, "mouse%d", minor);
+                       dev->cdev.dev, mousedev->name);
+
+       /* temporary symlink to keep userspace happy */
+       sysfs_create_link(&input_class.subsys.kset.kobj, &cdev->kobj,
+                         mousedev->name);
 
        return &mousedev->handle;
 }
@@ -660,7 +665,8 @@ static void mousedev_disconnect(struct input_handle *handle)
        struct mousedev *mousedev = handle->private;
        struct mousedev_list *list;
 
-       class_device_destroy(&input_dev_class,
+       sysfs_remove_link(&input_class.subsys.kset.kobj, mousedev->name);
+       class_device_destroy(&input_class,
                        MKDEV(INPUT_MAJOR, MOUSEDEV_MINOR_BASE + mousedev->minor));
        mousedev->exist = 0;
 
@@ -734,7 +740,7 @@ static int __init mousedev_init(void)
        mousedev_mix.exist = 1;
        mousedev_mix.minor = MOUSEDEV_MIX;
 
-       class_device_create(&input_dev_class, NULL,
+       class_device_create(&input_class, NULL,
                        MKDEV(INPUT_MAJOR, MOUSEDEV_MINOR_BASE + MOUSEDEV_MIX), NULL, "mice");
 
 #ifdef CONFIG_INPUT_MOUSEDEV_PSAUX
@@ -753,7 +759,7 @@ static void __exit mousedev_exit(void)
        if (psaux_registered)
                misc_deregister(&psaux_mouse);
 #endif
-       class_device_destroy(&input_dev_class,
+       class_device_destroy(&input_class,
                        MKDEV(INPUT_MAJOR, MOUSEDEV_MINOR_BASE + MOUSEDEV_MIX));
        input_unregister_handler(&mousedev_handler);
 }