On 12/07/2010 03:53 PM, Jiri Kosina wrote: > On Tue, 7 Dec 2010, Henrik Rydberg wrote: > >> The drivers using the type B protocol all report tracking information >> the same way. The contact id is semantically equivalent to >> ABS_MT_SLOT, and the handling of ABS_MT_TRACKING_ID only complicates >> the driver. The situation can be improved upon by providing a common >> pointer emulation code, thereby removing the need for the tracking id >> in the driver. This patch moves all tracking event handling over to >> the input core, simplifying both the existing drivers and the ones >> currently in preparation. >> >> Signed-off-by: Henrik Rydberg <rydberg@xxxxxxxxxxx> >> --- >> This is revision three of the patch, with changes to incorporate the >> active use of ABS_MT_TOOL_TYPE. Example usages are found in pen and >> touch tablets and simple dual touch devices. The report_slot_state() >> function now takes the tool type as argument, since a change in either >> tool type of touch state should trigger a new tracking id. >> >> Thanks, >> Henrik >> >> drivers/hid/hid-3m-pct.c | 30 +--------- > > Acked-by: Jiri Kosina <jkosina@xxxxxxx> > Thanks Jiri. Ping, you acked a previous version, but I did not want to presume this version was ok as well. And, as it turned out, I managed to introduce an error (pressure is zero or one). Corrected and properly tested on a Bamboo Touch. With the patch below folded in, do I have your ack? Thanks, Henrik --- diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c index 4e59b93..0104e1a 100644 --- a/drivers/input/tablet/wacom_wac.c +++ b/drivers/input/tablet/wacom_wac.c @@ -866,17 +866,18 @@ static int wacom_bpt_touch(struct wacom_wac *wacom) int i; for (i = 0; i < 2; i++) { - int p = data[9 * i + 2] && !wacom->shared->stylus_in_proximity; + int p = data[9 * i + 2]; + bool touch = p && !wacom->shared->stylus_in_proximity; input_mt_slot(input, i); - input_mt_report_slot_state(input, MT_TOOL_FINGER, p); + input_mt_report_slot_state(input, MT_TOOL_FINGER, touch); /* * Touch events need to be disabled while stylus is * in proximity because user's hand is resting on touchpad * and sending unwanted events. User expects tablet buttons * to continue working though. */ - if (p) { + if (touch) { int x = get_unaligned_be16(&data[9 * i + 3]) & 0x7ff; int y = get_unaligned_be16(&data[9 * i + 5]) & 0x7ff; if (features->quirks & WACOM_QUIRK_BBTOUCH_LOWRES) { -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html