Olaf Hering
2011-Sep-20 14:59 UTC
[Xen-devel] [PATCH] linux-2.6.18/Input: mousedev - handle mice that use absolute coordinates
# HG changeset patch # User Olaf Hering <olaf@aepfle.de> # Date 1316530721 -7200 # Node ID 56c7b8e10d3ba46e34d7a1be3b708da6f999b1a0 # Parent f4f25124b1b6d926b6e19a499bf4a3fdc97f0157 linux-2.6.18/Input: mousedev - handle mice that use absolute coordinates After commit 1083:211849d9d511 the mouse multiplexer /dev/input/mice does not receive updates because the base kernel lacks a change from 2.6.24. If xorg.conf uses the mouse driver instead of the evdev driver, the mouse is stuck because now the "Xen Virtual Pointer" is not seen as a mouse anymore. Adding the backported patch below fixes it. Mainline commit 6724f93463c332018e05f538a2ab3ce41eac0e8a Input: mousedev - handle mice that use absolute coordinates Devices like the HP Integrated Remote Console Virtual Mouse, which are standard equipment on all Proliant and Integrity servers, produce absolute coordinates instead of relative coordinates. This is done to synchronize the position of the mouse cursor on the client desktop with the mouse cursor position on the server. Mousedev is not designed to pass those absolute events directly to X, but it can translate them into relative movements. It currently does this for tablet like devices and touchpads. This patch merely tells it to also include a device with ABS_X, ABS_Y, and mouse buttons in its list of devices to process input for. This patch enables the mouse pointer to move when using the remote console. Signed-off-by: Micah Parrish <micah.parrish@hp.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Olaf Hering <olaf@aepfle.de> diff -r f4f25124b1b6 -r 56c7b8e10d3b drivers/input/mousedev.c --- a/drivers/input/mousedev.c +++ b/drivers/input/mousedev.c @@ -712,6 +712,12 @@ static struct input_device_id mousedev_i .keybit = { [LONG(BTN_TOOL_FINGER)] = BIT(BTN_TOOL_FINGER) }, .absbit = { BIT(ABS_X) | BIT(ABS_Y) | BIT(ABS_PRESSURE) | BIT(ABS_TOOL_WIDTH) }, }, /* A touchpad */ + { + .flags = INPUT_DEVICE_ID_MATCH_EVBIT | INPUT_DEVICE_ID_MATCH_KEYBIT | INPUT_DEVICE_ID_MATCH_ABSBIT, + .evbit = { BIT(EV_KEY) | BIT(EV_ABS) | BIT(EV_SYN) }, + .keybit = { [LONG(BTN_LEFT)] = BIT(BTN_LEFT) }, + .absbit = { BIT(ABS_X) | BIT(ABS_Y) }, + }, /* Mouse-like device with absolute X and Y but ordinary clicks, like hp ILO2 High Performance mouse */ { }, /* Terminating entry */ }; _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel