aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hid
diff options
context:
space:
mode:
authorHenrik Rydberg <rydberg@euromail.se>2010-08-31 21:56:24 -0400
committerJiri Kosina <jkosina@suse.cz>2010-10-01 15:42:47 +0200
commit921990b7046ab4fb523cbccc5bce2c921762232d (patch)
tree366ba7e41687a360eaf9becb3b31fec3e4ecaecb /drivers/hid
parent64eb105d7f92fa48798106ac0d8bf17668eb2524 (diff)
downloadkernel_samsung_aries-921990b7046ab4fb523cbccc5bce2c921762232d.zip
kernel_samsung_aries-921990b7046ab4fb523cbccc5bce2c921762232d.tar.gz
kernel_samsung_aries-921990b7046ab4fb523cbccc5bce2c921762232d.tar.bz2
HID: magicmouse: Adjust major / minor axes to scale
By visual inspection, the reported touch_major and touch_minor axes are roughly a factor of four too small. The factor is approximate, since the protocol is not known and the HID report encodes touch size with fewer bits than positions. This patch scales the reported values by a factor of four. Signed-off-by: Henrik Rydberg <rydberg@euromail.se> Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Acked-by: Michael Poole <mdpoole@troilus.org> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid')
-rw-r--r--drivers/hid/hid-magicmouse.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/hid/hid-magicmouse.c b/drivers/hid/hid-magicmouse.c
index 5e1907a..e6dc151 100644
--- a/drivers/hid/hid-magicmouse.c
+++ b/drivers/hid/hid-magicmouse.c
@@ -254,8 +254,8 @@ static void magicmouse_emit_touch(struct magicmouse_sc *msc, int raw_id, u8 *tda
/* Generate the input events for this touch. */
if (report_touches && down) {
input_report_abs(input, ABS_MT_TRACKING_ID, id);
- input_report_abs(input, ABS_MT_TOUCH_MAJOR, touch_major);
- input_report_abs(input, ABS_MT_TOUCH_MINOR, touch_minor);
+ input_report_abs(input, ABS_MT_TOUCH_MAJOR, touch_major << 2);
+ input_report_abs(input, ABS_MT_TOUCH_MINOR, touch_minor << 2);
input_report_abs(input, ABS_MT_ORIENTATION, orientation);
input_report_abs(input, ABS_MT_POSITION_X, x);
input_report_abs(input, ABS_MT_POSITION_Y, y);