Skip to content

Commit

Permalink
Input: alps - process_bitmap: round down when spreading adjescent fin…
Browse files Browse the repository at this point in the history
…gers over 2 points

This fixes 2 fingers at the same height or width on the touchpad getting
reported at different y / x coordinates.

Note num_bits is always at least 1.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
  • Loading branch information
Hans de Goede authored and Dmitry Torokhov committed Jul 26, 2014
1 parent 105affb commit 28835f4
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions drivers/input/mouse/alps.c
Original file line number Diff line number Diff line change
Expand Up @@ -391,13 +391,13 @@ static int alps_process_bitmap(struct alps_data *priv,
* adjacent fingers. Divide the single contact between the two points.
*/
if (fingers_x == 1) {
i = x_low.num_bits / 2;
i = (x_low.num_bits - 1) / 2;
x_low.num_bits = x_low.num_bits - i;
x_high.start_bit = x_low.start_bit + i;
x_high.num_bits = max(i, 1);
}
if (fingers_y == 1) {
i = y_low.num_bits / 2;
i = (y_low.num_bits - 1) / 2;
y_low.num_bits = y_low.num_bits - i;
y_high.start_bit = y_low.start_bit + i;
y_high.num_bits = max(i, 1);
Expand Down

0 comments on commit 28835f4

Please sign in to comment.