[PATCH 1/2] HID: wacom: do not send pen events before touch is up/forced out

Subsystems: hid core layer, hid wacom driver, the rest

STALE4204d

2 messages, 2 authors, 2015-03-05 · open the first message on its own page

[PATCH 1/2] HID: wacom: do not send pen events before touch is up/forced out

From: Ping Cheng <hidden>
Date: 2015-02-20 22:26:07

If pen comes in proximity while touch is down, we force touch up
before sending pen events. Otherwise, there can be unfinished
touch events compete with pen events. This idea has been fully
implemented for Tablet PCs. But other tablets that support both
pen and touch are not fully considered.

Signed-off-by: Ping Cheng <redacted>
---
 drivers/hid/wacom_wac.c | 6 ++++++
 1 file changed, 6 insertions(+)
diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c
index 046351c..69827c9 100644
--- a/drivers/hid/wacom_wac.c
+++ b/drivers/hid/wacom_wac.c
@@ -554,6 +554,9 @@ static int wacom_intuos_inout(struct wacom_wac *wacom)
 	if (features->quirks & WACOM_QUIRK_MULTI_INPUT)
 		wacom->shared->stylus_in_proximity = true;
 
+	if (wacom->shared->touch_down)
+		return 1;
+
 	/* in Range while exiting */
 	if (((data[1] & 0xfe) == 0x20) && wacom->reporting_data) {
 		input_report_key(input, BTN_TOUCH, 0);
@@ -1759,6 +1762,9 @@ static int wacom_bpt_pen(struct wacom_wac *wacom)
 		return 0;
 	}
 
+	if (wacom->shared->touch_down)
+		return 0;
+
 	prox = (data[1] & 0x20) == 0x20;
 
 	/*
-- 
1.9.1

Re: [PATCH 1/2] HID: wacom: do not send pen events before touch is up/forced out

From: Jason Gerecke <hidden>
Date: 2015-03-05 00:27:49

On 2/20/2015 2:25 PM, Ping Cheng wrote:
If pen comes in proximity while touch is down, we force touch up
before sending pen events. Otherwise, there can be unfinished
touch events compete with pen events. This idea has been fully
implemented for Tablet PCs. But other tablets that support both
pen and touch are not fully considered.

Signed-off-by: Ping Cheng <redacted>
Acked-by: Jason Gerecke <redacted>

-- 
Jason
---
Now instead of four in the eights place /
you’ve got three, ‘Cause you added one /
(That is to say, eight) to the two, /
But you can’t take seven from three, /
So you look at the sixty-fours....
quoted hunk
---
  drivers/hid/wacom_wac.c | 6 ++++++
  1 file changed, 6 insertions(+)
diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c
index 046351c..69827c9 100644
--- a/drivers/hid/wacom_wac.c
+++ b/drivers/hid/wacom_wac.c
@@ -554,6 +554,9 @@ static int wacom_intuos_inout(struct wacom_wac *wacom)
  	if (features->quirks & WACOM_QUIRK_MULTI_INPUT)
  		wacom->shared->stylus_in_proximity = true;

+	if (wacom->shared->touch_down)
+		return 1;
+
  	/* in Range while exiting */
  	if (((data[1] & 0xfe) == 0x20) && wacom->reporting_data) {
  		input_report_key(input, BTN_TOUCH, 0);
@@ -1759,6 +1762,9 @@ static int wacom_bpt_pen(struct wacom_wac *wacom)
  		return 0;
  	}

+	if (wacom->shared->touch_down)
+		return 0;
+
  	prox = (data[1] & 0x20) == 0x20;

  	/*
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help