diff options
author | Greg KH <greg@press.(none)> | 2005-10-19 13:26:53 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2005-10-19 13:26:53 -0700 |
commit | 9ea1e286b6a13a27638118bfb15d77669fe6d7d7 (patch) | |
tree | fc4bb46d75de07df8967dbc18dee48e6a98657f9 /driver | |
parent | 6e19e198f02244e404d7134a58854e35989fec51 (diff) | |
download | patches-9ea1e286b6a13a27638118bfb15d77669fe6d7d7.tar.gz |
updated the input symlink patch to work for all input types
Diffstat (limited to 'driver')
-rw-r--r-- | driver/input_backward_compatible_symlink.patch | 124 |
1 files changed, 115 insertions, 9 deletions
diff --git a/driver/input_backward_compatible_symlink.patch b/driver/input_backward_compatible_symlink.patch index b4ecf13db9148..910f58e0d5bef 100644 --- a/driver/input_backward_compatible_symlink.patch +++ b/driver/input_backward_compatible_symlink.patch @@ -10,8 +10,11 @@ properly here :( Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> --- - drivers/input/evdev.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) + drivers/input/evdev.c | 10 ++++++++-- + drivers/input/joydev.c | 10 ++++++++-- + drivers/input/mousedev.c | 10 ++++++++-- + drivers/input/tsdev.c | 10 ++++++++-- + 4 files changed, 32 insertions(+), 8 deletions(-) --- gregkh-2.6.orig/drivers/input/evdev.c +++ gregkh-2.6/drivers/input/evdev.c @@ -23,22 +26,23 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> int minor; for (minor = 0; minor < EVDEV_MINORS && evdev_table[minor]; minor++); -@@ -686,10 +687,13 @@ static struct input_handle *evdev_connec +@@ -686,9 +687,13 @@ static struct input_handle *evdev_connec evdev_table[minor] = evdev; - class_device_create(&input_class, &dev->cdev, + cdev = class_device_create(&input_class, &dev->cdev, MKDEV(INPUT_MAJOR, EVDEV_MINOR_BASE + minor), - dev->cdev.dev, "event%d", minor); - -+ /* temporary symlink to keep userspace happy */ -+ sysfs_create_link(&input_class.subsys.kset.kobj, &cdev->kobj, evdev->name); +- dev->cdev.dev, "event%d", minor); ++ dev->cdev.dev, evdev->name); + ++ /* temporary symlink to keep userspace happy */ ++ sysfs_create_link(&input_class.subsys.kset.kobj, &cdev->kobj, ++ evdev->name); + return &evdev->handle; } - -@@ -698,6 +702,7 @@ static void evdev_disconnect(struct inpu +@@ -698,6 +703,7 @@ static void evdev_disconnect(struct inpu struct evdev *evdev = handle->private; struct evdev_list *list; @@ -46,3 +50,105 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> class_device_destroy(&input_class, MKDEV(INPUT_MAJOR, EVDEV_MINOR_BASE + evdev->minor)); evdev->exist = 0; +--- gregkh-2.6.orig/drivers/input/joydev.c ++++ gregkh-2.6/drivers/input/joydev.c +@@ -448,6 +448,7 @@ static struct file_operations joydev_fop + static struct input_handle *joydev_connect(struct input_handler *handler, struct input_dev *dev, struct input_device_id *id) + { + struct joydev *joydev; ++ struct class_device *cdev; + int i, j, t, minor; + + for (minor = 0; minor < JOYDEV_MINORS && joydev_table[minor]; minor++); +@@ -513,9 +514,13 @@ static struct input_handle *joydev_conne + + joydev_table[minor] = joydev; + +- class_device_create(&input_class, &dev->cdev, ++ cdev = class_device_create(&input_class, &dev->cdev, + MKDEV(INPUT_MAJOR, JOYDEV_MINOR_BASE + minor), +- dev->cdev.dev, "js%d", minor); ++ dev->cdev.dev, joydev->name); ++ ++ /* temporary symlink to keep userspace happy */ ++ sysfs_create_link(&input_class.subsys.kset.kobj, &cdev->kobj, ++ joydev->name); + + return &joydev->handle; + } +@@ -525,6 +530,7 @@ static void joydev_disconnect(struct inp + struct joydev *joydev = handle->private; + struct joydev_list *list; + ++ sysfs_remove_link(&input_class.subsys.kset.kobj, joydev->name); + class_device_destroy(&input_class, MKDEV(INPUT_MAJOR, JOYDEV_MINOR_BASE + joydev->minor)); + joydev->exist = 0; + +--- gregkh-2.6.orig/drivers/input/mousedev.c ++++ gregkh-2.6/drivers/input/mousedev.c +@@ -620,6 +620,7 @@ static struct file_operations mousedev_f + 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_con + + mousedev_table[minor] = mousedev; + +- class_device_create(&input_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,6 +665,7 @@ static void mousedev_disconnect(struct i + struct mousedev *mousedev = handle->private; + struct mousedev_list *list; + ++ 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; +--- gregkh-2.6.orig/drivers/input/tsdev.c ++++ gregkh-2.6/drivers/input/tsdev.c +@@ -368,6 +368,7 @@ static struct input_handle *tsdev_connec + struct input_device_id *id) + { + struct tsdev *tsdev; ++ struct class_device *cdev; + int minor, delta; + + for (minor = 0; minor < TSDEV_MINORS/2 && tsdev_table[minor]; +@@ -409,9 +410,13 @@ static struct input_handle *tsdev_connec + + tsdev_table[minor] = tsdev; + +- class_device_create(&input_class, &dev->cdev, ++ cdev = class_device_create(&input_class, &dev->cdev, + MKDEV(INPUT_MAJOR, TSDEV_MINOR_BASE + minor), +- dev->cdev.dev, "ts%d", minor); ++ dev->cdev.dev, tsdev->name); ++ ++ /* temporary symlink to keep userspace happy */ ++ sysfs_create_link(&input_class.subsys.kset.kobj, &cdev->kobj, ++ tsdev->name); + + return &tsdev->handle; + } +@@ -421,6 +426,7 @@ static void tsdev_disconnect(struct inpu + struct tsdev *tsdev = handle->private; + struct tsdev_list *list; + ++ sysfs_remove_link(&input_class.subsys.kset.kobj, tsdev->name); + class_device_destroy(&input_class, + MKDEV(INPUT_MAJOR, TSDEV_MINOR_BASE + tsdev->minor)); + tsdev->exist = 0; |