Discussion:
[Linuxwacom-devel] [PATCH input-wacom D 2/2] Properly clear 'touch_down' flag in 'wacom_mt_touch' for 2.6.38/3.7
Jason Gerecke
2016-11-16 19:19:09 UTC
Permalink
The 'wacom_mt_touch' function is responsible for handling touch input from
some kinds of tablet PCs (those using report ID 13 or 3). This function
contains a logic error which causes the 'touch_down' flag to not be cleared
after the user stops touching the display. This could prevent the pen from
being usable on devices with "shared" pen and touch sensors.

This issue was corrected in the 3.17 tree (and by extension 4.5) as part of
import commit 04e1fb9 (upstream: e0d41fd) but was apparently overlooked
for the 2.6.38 and 3.7 trees during the backport 77249d4 (the 2.6.36 tree
received the fix, however).

Signed-off-by: Jason Gerecke <***@wacom.com>
---
2.6.38/wacom_wac.c | 2 +-
3.7/wacom_wac.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/2.6.38/wacom_wac.c b/2.6.38/wacom_wac.c
index 5933417..50eb3a7 100644
--- a/2.6.38/wacom_wac.c
+++ b/2.6.38/wacom_wac.c
@@ -1268,7 +1268,7 @@ static int wacom_mt_touch(struct wacom_wac *wacom)
input_mt_report_pointer_emulation(input, true);

wacom->num_contacts_left -= contacts_to_send;
- if (wacom->num_contacts_left < 0) {
+ if (wacom->num_contacts_left <= 0) {
wacom->num_contacts_left = 0;
wacom->shared->touch_down = wacom_wac_finger_count_touches(wacom);
}
diff --git a/3.7/wacom_wac.c b/3.7/wacom_wac.c
index 458b03b..93d95cf 100644
--- a/3.7/wacom_wac.c
+++ b/3.7/wacom_wac.c
@@ -1244,7 +1244,7 @@ static int wacom_mt_touch(struct wacom_wac *wacom)
input_mt_report_pointer_emulation(input, true);

wacom->num_contacts_left -= contacts_to_send;
- if (wacom->num_contacts_left < 0) {
+ if (wacom->num_contacts_left <= 0) {
wacom->num_contacts_left = 0;
wacom->shared->touch_down = wacom_wac_finger_count_touches(wacom);
}
--
2.10.2


------------------------------------------------------------------------------
Loading...