Input: alps - process_bitmap: fix counting of high point bits
alps_process_bitmap was resetting the point bit-count as soon as it saw 2 0 bits in a row. This means that unless the high point actually is at the end of the bitmap, it would always get its num_bits set to 0. Instead reset num_bits to 0 on a 0->1 transition, so that with > 2 fingers we only count the number of bits occupied by the highest finger. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
parent
036e6c7b54
commit
105affbfd5
|
@ -342,14 +342,13 @@ static void alps_get_bitmap_points(unsigned int map,
|
||||||
if (bit) {
|
if (bit) {
|
||||||
if (!prev_bit) {
|
if (!prev_bit) {
|
||||||
point->start_bit = i;
|
point->start_bit = i;
|
||||||
|
point->num_bits = 0;
|
||||||
(*fingers)++;
|
(*fingers)++;
|
||||||
}
|
}
|
||||||
point->num_bits++;
|
point->num_bits++;
|
||||||
} else {
|
} else {
|
||||||
if (prev_bit)
|
if (prev_bit)
|
||||||
point = high;
|
point = high;
|
||||||
else
|
|
||||||
point->num_bits = 0;
|
|
||||||
}
|
}
|
||||||
prev_bit = bit;
|
prev_bit = bit;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue