summaryrefslogtreecommitdiff
path: root/src/2.4.22/wacom.c
diff options
context:
space:
mode:
authorpingc <pingc>2007-11-28 18:24:07 +0000
committerpingc <pingc>2007-11-28 18:24:07 +0000
commit4d07e21841e26f5212917c7fad2b069df71232b0 (patch)
treee6f8523829d565a1bda469f7a87c0848e4db18a0 /src/2.4.22/wacom.c
parent6f65a53cde6be39012e69546fdc44a7eb9ac9191 (diff)
downloadxf86-input-wacom-4d07e21841e26f5212917c7fad2b069df71232b0.tar.gz
Merge patches 1818295, 1831998, and 1839008
Diffstat (limited to 'src/2.4.22/wacom.c')
-rw-r--r--src/2.4.22/wacom.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/2.4.22/wacom.c b/src/2.4.22/wacom.c
index 6ad899a..ef0dd64 100644
--- a/src/2.4.22/wacom.c
+++ b/src/2.4.22/wacom.c
@@ -232,8 +232,9 @@ static void wacom_pl_irq(struct urb *urb)
/* was entered with stylus2 pressed */
if (wacom->tool[1] == BTN_TOOL_RUBBER && !(data[4] & 0x20) ) {
/* report out proximity for previous tool */
+ input_report_abs(dev, ABS_MISC, id); /* report tool id */
input_report_key(dev, wacom->tool[1], 0);
- input_event(dev, EV_MSC, MSC_SERIAL, 0);
+ input_event(dev, EV_MSC, MSC_SERIAL, id);
wacom->tool[1] = BTN_TOOL_PEN;
return;
}
@@ -261,13 +262,13 @@ static void wacom_pl_irq(struct urb *urb)
wacom->tool[1] = BTN_TOOL_PEN;
}
input_report_key(dev, wacom->tool[1], prox);
- input_report_abs(dev, ABS_MISC, 0); /* reset tool id */
+ input_report_abs(dev, ABS_MISC, id);
}
wacom->tool[0] = prox; /* Save proximity state */
/* end of proximity code */
- input_event(dev, EV_MSC, MSC_SERIAL, 0);
+ input_event(dev, EV_MSC, MSC_SERIAL, id);
}
static void wacom_ptu_irq(struct urb *urb)
@@ -305,7 +306,7 @@ static void wacom_ptu_irq(struct urb *urb)
input_report_key(dev, BTN_STYLUS, data[1] & 0x02);
input_report_key(dev, BTN_STYLUS2, data[1] & 0x10);
- input_event(dev, EV_MSC, MSC_SERIAL, 0);
+ input_event(dev, EV_MSC, MSC_SERIAL, id);
}
@@ -440,11 +441,11 @@ static void wacom_graphire_irq(struct urb *urb)
input_report_abs(dev, ABS_MISC, 0); /* reset tool id */
input_report_key(dev, wacom->tool[0], 0);
}
- input_event(dev, EV_MSC, MSC_SERIAL, data[1] & 0x01);
+ input_event(dev, EV_MSC, MSC_SERIAL, id);
/* send pad data */
if ( strstr(wacom->features->name, "Graphire4") ) {
- if ( (wacom->serial[1] & 0xc0) != (data[7] & 0xf8) ) {
+ if (data[7] & 0xf8) {
wacom->id[1] = 1;
wacom->serial[1] = (data[7] & 0xf8);
input_report_key(dev, BTN_0, (data[7] & 0x40));
@@ -456,6 +457,9 @@ static void wacom_graphire_irq(struct urb *urb)
input_event(dev, EV_MSC, MSC_SERIAL, 0xf0);
} else if ( wacom->id[1] ) {
wacom->id[1] = 0;
+ input_report_key(dev, BTN_0, (data[7] & 0x40));
+ input_report_key(dev, BTN_4, (data[7] & 0x80));
+ input_report_rel(dev, REL_WHEEL, 0);
input_report_key(dev, BTN_TOOL_FINGER, 0);
input_report_abs(dev, ABS_MISC, PAD_DEVICE_ID);
input_event(dev, EV_MSC, MSC_SERIAL, 0xf0);
@@ -927,7 +931,7 @@ struct wacom_features wacom_features[] = {
/* 44 */ { "Wacom Cintiq 21UX", 10, 87200, 65600, 1023, 63,
wacom_intuos_irq, WACOM_INTUOS_BITS, WACOM_INTUOS3_ABS,
0, WACOM_INTUOS3_BUTTONS, WACOM_INTUOS3_TOOLS },
- /* 45 */ { "Wacom Cintiq 12UX", 10, 53020, 33440, 1023, 63,
+ /* 45 */ { "Wacom Cintiq 12WX", 10, 53020, 33440, 1023, 63,
wacom_intuos_irq, WACOM_INTUOS_BITS, WACOM_INTUOS3_ABS,
0, WACOM_BEE_BUTTONS, WACOM_INTUOS3_TOOLS },
/* 46 */ { "Wacom DTF720", 8, 6858, 5506, 511, 0,