[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] linux-2.6.18/Input: mousedev - handle mice that use absolute coordinates

  • To: xen-devel@xxxxxxxxxxxxxxxxxxx
  • From: Olaf Hering <olaf@xxxxxxxxx>
  • Date: Tue, 20 Sep 2011 16:59:02 +0200
  • Delivery-date: Tue, 20 Sep 2011 08:02:52 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

# HG changeset patch
# User Olaf Hering <olaf@xxxxxxxxx>
# 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

        Signed-off-by: Micah Parrish <micah.parrish@xxxxxx>
        Signed-off-by: Dmitry Torokhov <dtor@xxxxxxx>

Signed-off-by: Olaf Hering <olaf@xxxxxxxxx>

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) | 
        },      /* A touchpad */
+       {
+               .flags = INPUT_DEVICE_ID_MATCH_EVBIT | 
+               .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



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.