HID: magicmouse: Correct report range of major / minor axes
authorYufeng Shen <miletus@chromium.org>
Thu, 21 Jun 2012 16:40:06 +0000 (12:40 -0400)
committerGerrit <chrome-bot@google.com>
Thu, 21 Jun 2012 18:11:08 +0000 (11:11 -0700)
In patch "HID: magicmouse: Adjust major / minor axes to scale",
touch_major and touch_minor axes are scaled by a factor of
four when reported but the max touch_major/minor is not scaled
accordingly. This patch scales the max touch_major/minor to
be consistent with the reported value.

BUG=chromium-os:29435
TEST=Use evtest to test Apple Magic Trackpad and check that the
     range for touch_major/minor is [0 1020] and the reported
     touch_major/minor value is within the range.

Change-Id: Id1d54e1881025c734e908f90ddcb8e0f12c29d88
Signed-off-by: Yufeng Shen <miletus@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/25844
Reviewed-by: Andrew de los Reyes <adlr@chromium.org>
drivers/hid/hid-magicmouse.c

index 7cf3ffe..40ac665 100644 (file)
@@ -426,8 +426,10 @@ static void magicmouse_setup_input(struct input_dev *input, struct hid_device *h
                __set_bit(EV_ABS, input->evbit);
 
                input_set_abs_params(input, ABS_MT_TRACKING_ID, 0, 15, 0, 0);
-               input_set_abs_params(input, ABS_MT_TOUCH_MAJOR, 0, 255, 4, 0);
-               input_set_abs_params(input, ABS_MT_TOUCH_MINOR, 0, 255, 4, 0);
+               input_set_abs_params(input, ABS_MT_TOUCH_MAJOR, 0, 255 << 2,
+                                    4, 0);
+               input_set_abs_params(input, ABS_MT_TOUCH_MINOR, 0, 255 << 2,
+                                    4, 0);
                input_set_abs_params(input, ABS_MT_ORIENTATION, -31, 32, 1, 0);
 
                /* Note: Touch Y position from the device is inverted relative