HID: magicmouse: Don't report REL_{X,Y} for Magic Trackpad
authorChase Douglas <chase.douglas@canonical.com>
Wed, 8 Dec 2010 23:08:04 +0000 (15:08 -0800)
committerJaikumar Ganesh <jaikumar@google.com>
Wed, 15 Jun 2011 18:04:26 +0000 (11:04 -0700)
With the recent switch to having the hid layer handle standard axis
initialization, the Magic Trackpad now reports relative axes. This would
be fine in the normal mode, but the driver puts the device in multitouch
mode where no relative events are generated. Also, userspace software
depends on accurate axis information for device type detection. Thus,
ignoring the relative axes from the Magic Trackpad is best.

Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-magicmouse.c

index 5e1907a514466dbab4223075d8836b1d13b3954a..51f945a9e9e004995d9628af073f4c02d676c145 100644 (file)
@@ -433,6 +433,11 @@ static int magicmouse_input_mapping(struct hid_device *hdev,
        if (!msc->input)
                msc->input = hi->input;
 
+       /* Magic Trackpad does not give relative data after switching to MT */
+       if (hi->input->id.product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD &&
+           field->flags & HID_MAIN_ITEM_RELATIVE)
+               return -1;
+
        return 0;
 }