Hi!
There was a slight problem with the last mouse mixing support - the
mouse0 device wouldn't be accessible or possible to open until at least
one USB mouse was plugged in. This isn't really nice together with X.
So this patch makes the new mouse mixing behave more like the old one.
--
Vojtech Pavlik
SuSE Labs
diff -urN linux-2.3.99-pre3-old/drivers/usb/mousedev.c linux/drivers/usb/mousedev.c
--- linux-2.3.99-pre3-old/drivers/usb/mousedev.c Wed Mar 29 13:18:16 2000
+++ linux/drivers/usb/mousedev.c Sat Apr 1 11:58:11 2000
@@ -360,19 +360,15 @@
printk(KERN_ERR "mousedev: no more free mousedev devices\n");
return -1;
}
-#else
- if (!mousedev_table[minor]) {
-#endif
-
- if (!(mousedev = kmalloc(sizeof(struct mousedev), GFP_KERNEL)))
- return -1;
- memset(mousedev, 0, sizeof(struct mousedev));
- init_waitqueue_head(&mousedev->wait);
- mousedev->devfs = input_register_minor("mouse%d", minor,
MOUSEDEV_MINOR_BASE);
+ if (!(mousedev = kmalloc(sizeof(struct mousedev), GFP_KERNEL)))
+ return -1;
+ memset(mousedev, 0, sizeof(struct mousedev));
+ init_waitqueue_head(&mousedev->wait);
-#ifdef CONFIG_INPUT_MOUSEDEV_MIX
- } else mousedev = mousedev_table[minor];
+ mousedev->devfs = input_register_minor("mouse%d", minor, MOUSEDEV_MINOR_BASE);
+#else
+ mousedev = mousedev_table[0];
#endif
if (!(handle = kmalloc(sizeof(struct input_handle), GFP_KERNEL))) {
@@ -419,11 +415,24 @@
static int __init mousedev_init(void)
{
input_register_handler(&mousedev_handler);
+
+#ifdef CONFIG_INPUT_MOUSEDEV_MIX
+ if (!(mousedev_table[0] = kmalloc(sizeof(struct mousedev), GFP_KERNEL)))
+ return -1;
+ memset(mousedev_table[0], 0, sizeof(struct mousedev));
+ init_waitqueue_head(&mousedev_table[0]->wait);
+ mousedev_table[0]->devfs = input_register_minor("mouse%d", 0,
+MOUSEDEV_MINOR_BASE);
+ mousedev_table[0]->used = 1;
+#endif
return 0;
}
static void __exit mousedev_exit(void)
{
+#ifdef CONFIG_INPUT_MOUSEDEV_MIX
+ input_unregister_minor(mousedev_table[0]->devfs);
+ kfree(mousedev_table[0]);
+#endif
input_unregister_handler(&mousedev_handler);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]