diff options
author | pingc <pingc> | 2007-11-28 18:24:07 +0000 |
---|---|---|
committer | pingc <pingc> | 2007-11-28 18:24:07 +0000 |
commit | 4d07e21841e26f5212917c7fad2b069df71232b0 (patch) | |
tree | e6f8523829d565a1bda469f7a87c0848e4db18a0 /src/2.4.22/wacom.c | |
parent | 6f65a53cde6be39012e69546fdc44a7eb9ac9191 (diff) | |
download | xf86-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.c | 18 |
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, |