aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChase Douglas <chase.douglas@canonical.com>2010-12-08 15:08:04 -0800
committerJiri Kosina <jkosina@suse.cz>2010-12-09 14:39:53 +0100
commit6a66bbd693c12f71697c61207aa18bc5a12da0ab (patch)
treea9e152c980282e69667221a5328083827aac33bb
parent59e57c622c3502346e8f930421ebc482d639520c (diff)
downloadlinux-2.6.38-lt-ux500-6a66bbd693c12f71697c61207aa18bc5a12da0ab.tar.gz
HID: magicmouse: Don't report REL_{X,Y} for Magic Trackpad
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>
-rw-r--r--drivers/hid/hid-magicmouse.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/hid/hid-magicmouse.c b/drivers/hid/hid-magicmouse.c
index e6dc1517166..ed732b746c9 100644
--- a/drivers/hid/hid-magicmouse.c
+++ b/drivers/hid/hid-magicmouse.c
@@ -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;
}