diff options
author | Andrew Duggan <aduggan@synaptics.com> | 2014-05-15 13:52:29 -0700 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2014-05-16 11:12:46 +0200 |
commit | 876e7a8a111a4277ea35e5314a5fafc18346d3ca (patch) | |
tree | 1f6021197542d1b6757bf8384e5cc0af3dbbde1e /drivers/hid | |
parent | b668fdce41858feea6052419796beb36f1c60540 (diff) |
HID: rmi: fix masks for x and w_x data
The F11 data in the HID report contains four bits of data for w_x and the least significant bits
of x. Currently only the first three bits are being used which is resulting in small jumps in
the position data on the x axis and in the w_x data.
Signed-off-by: Andrew Duggan <aduggan@synaptics.com>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid')
-rw-r--r-- | drivers/hid/hid-rmi.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c index 7ebdc960942..c529b033ba9 100644 --- a/drivers/hid/hid-rmi.c +++ b/drivers/hid/hid-rmi.c @@ -277,9 +277,9 @@ static void rmi_f11_process_touch(struct rmi_data *hdata, int slot, input_mt_report_slot_state(hdata->input, MT_TOOL_FINGER, finger_state == 0x01); if (finger_state == 0x01) { - x = (touch_data[0] << 4) | (touch_data[2] & 0x07); + x = (touch_data[0] << 4) | (touch_data[2] & 0x0F); y = (touch_data[1] << 4) | (touch_data[2] >> 4); - wx = touch_data[3] & 0x07; + wx = touch_data[3] & 0x0F; wy = touch_data[3] >> 4; wide = (wx > wy); major = max(wx, wy); |