aboutsummaryrefslogtreecommitdiffstats
path: root/driver
diff options
context:
space:
mode:
authorGreg KH <greg@press.(none)>2005-10-19 13:26:53 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2005-10-19 13:26:53 -0700
commit9ea1e286b6a13a27638118bfb15d77669fe6d7d7 (patch)
treefc4bb46d75de07df8967dbc18dee48e6a98657f9 /driver
parent6e19e198f02244e404d7134a58854e35989fec51 (diff)
downloadpatches-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.patch124
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;