aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPing Cheng <pinglinux@gmail.com>2013-05-05 22:59:05 -0400
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2013-05-05 23:13:21 -0400
commitf0aaceac279477f2a830e2897e6fc4c3500fc683 (patch)
tree4504cf90dd839b52fc064c224768ae2d494de7da
parent56218563adbc085a17aa735da2c3fdf9877fa9e7 (diff)
Input: wacom - add a few new styli for Cintiq series
Add new styli for Cintiq 13HD and 22HD. Update comments for for tools. Check whole 10 nibbles of tool ID for tool types. Remove unuecessary tool type for Intuos series PAD. Signed-off-by: Ping Cheng <pingc@wacom.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
-rw-r--r--drivers/input/tablet/wacom_wac.c36
1 files changed, 17 insertions, 19 deletions
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c
index afe4fe0a9060..3b6998a27a3f 100644
--- a/drivers/input/tablet/wacom_wac.c
+++ b/drivers/input/tablet/wacom_wac.c
@@ -342,10 +342,10 @@ static int wacom_intuos_inout(struct wacom_wac *wacom)
342 wacom->id[idx] = (data[2] << 4) | (data[3] >> 4) | 342 wacom->id[idx] = (data[2] << 4) | (data[3] >> 4) |
343 ((data[7] & 0x0f) << 20) | ((data[8] & 0xf0) << 12); 343 ((data[7] & 0x0f) << 20) | ((data[8] & 0xf0) << 12);
344 344
345 switch (wacom->id[idx] & 0xfffff) { 345 switch (wacom->id[idx]) {
346 case 0x812: /* Inking pen */ 346 case 0x812: /* Inking pen */
347 case 0x801: /* Intuos3 Inking pen */ 347 case 0x801: /* Intuos3 Inking pen */
348 case 0x20802: /* Intuos4 Inking Pen */ 348 case 0x120802: /* Intuos4/5 Inking Pen */
349 case 0x012: 349 case 0x012:
350 wacom->tool[idx] = BTN_TOOL_PENCIL; 350 wacom->tool[idx] = BTN_TOOL_PENCIL;
351 break; 351 break;
@@ -356,11 +356,13 @@ static int wacom_intuos_inout(struct wacom_wac *wacom)
356 case 0x823: /* Intuos3 Grip Pen */ 356 case 0x823: /* Intuos3 Grip Pen */
357 case 0x813: /* Intuos3 Classic Pen */ 357 case 0x813: /* Intuos3 Classic Pen */
358 case 0x885: /* Intuos3 Marker Pen */ 358 case 0x885: /* Intuos3 Marker Pen */
359 case 0x802: /* Intuos4 General Pen */ 359 case 0x802: /* Intuos4/5 13HD/24HD General Pen */
360 case 0x804: /* Intuos4 Marker Pen */ 360 case 0x804: /* Intuos4/5 13HD/24HD Marker Pen */
361 case 0x40802: /* Intuos4 Classic Pen */
362 case 0x18802: /* DTH2242 Grip Pen */
363 case 0x022: 361 case 0x022:
362 case 0x100804: /* Intuos4/5 13HD/24HD Art Pen */
363 case 0x140802: /* Intuos4/5 13HD/24HD Classic Pen */
364 case 0x160802: /* Cintiq 13HD Pro Pen */
365 case 0x180802: /* DTH2242 Grip Pen */
364 wacom->tool[idx] = BTN_TOOL_PEN; 366 wacom->tool[idx] = BTN_TOOL_PEN;
365 break; 367 break;
366 368
@@ -391,10 +393,13 @@ static int wacom_intuos_inout(struct wacom_wac *wacom)
391 case 0x82b: /* Intuos3 Grip Pen Eraser */ 393 case 0x82b: /* Intuos3 Grip Pen Eraser */
392 case 0x81b: /* Intuos3 Classic Pen Eraser */ 394 case 0x81b: /* Intuos3 Classic Pen Eraser */
393 case 0x91b: /* Intuos3 Airbrush Eraser */ 395 case 0x91b: /* Intuos3 Airbrush Eraser */
394 case 0x80c: /* Intuos4 Marker Pen Eraser */ 396 case 0x80c: /* Intuos4/5 13HD/24HD Marker Pen Eraser */
395 case 0x80a: /* Intuos4 General Pen Eraser */ 397 case 0x80a: /* Intuos4/5 13HD/24HD General Pen Eraser */
396 case 0x4080a: /* Intuos4 Classic Pen Eraser */ 398 case 0x90a: /* Intuos4/5 13HD/24HD Airbrush Eraser */
397 case 0x90a: /* Intuos4 Airbrush Eraser */ 399 case 0x14080a: /* Intuos4/5 13HD/24HD Classic Pen Eraser */
400 case 0x10090a: /* Intuos4/5 13HD/24HD Airbrush Eraser */
401 case 0x10080c: /* Intuos4/5 13HD/24HD Art Pen Eraser */
402 case 0x16080a: /* Cintiq 13HD Pro Pen Eraser */
398 wacom->tool[idx] = BTN_TOOL_RUBBER; 403 wacom->tool[idx] = BTN_TOOL_RUBBER;
399 break; 404 break;
400 405
@@ -402,7 +407,8 @@ static int wacom_intuos_inout(struct wacom_wac *wacom)
402 case 0x912: 407 case 0x912:
403 case 0x112: 408 case 0x112:
404 case 0x913: /* Intuos3 Airbrush */ 409 case 0x913: /* Intuos3 Airbrush */
405 case 0x902: /* Intuos4 Airbrush */ 410 case 0x902: /* Intuos4/5 13HD/24HD Airbrush */
411 case 0x100902: /* Intuos4/5 13HD/24HD Airbrush */
406 wacom->tool[idx] = BTN_TOOL_AIRBRUSH; 412 wacom->tool[idx] = BTN_TOOL_AIRBRUSH;
407 break; 413 break;
408 414
@@ -533,10 +539,8 @@ static int wacom_intuos_irq(struct wacom_wac *wacom)
533 input_report_key(input, BTN_8, (data[3] & 0x80)); 539 input_report_key(input, BTN_8, (data[3] & 0x80));
534 } 540 }
535 if (data[1] | (data[2] & 0x01) | data[3]) { 541 if (data[1] | (data[2] & 0x01) | data[3]) {
536 input_report_key(input, wacom->tool[1], 1);
537 input_report_abs(input, ABS_MISC, PAD_DEVICE_ID); 542 input_report_abs(input, ABS_MISC, PAD_DEVICE_ID);
538 } else { 543 } else {
539 input_report_key(input, wacom->tool[1], 0);
540 input_report_abs(input, ABS_MISC, 0); 544 input_report_abs(input, ABS_MISC, 0);
541 } 545 }
542 } else if (features->type == DTK) { 546 } else if (features->type == DTK) {
@@ -600,10 +604,8 @@ static int wacom_intuos_irq(struct wacom_wac *wacom)
600 } 604 }
601 605
602 if (data[1] | data[2] | (data[3] & 0x1f) | data[4] | data[6] | data[8]) { 606 if (data[1] | data[2] | (data[3] & 0x1f) | data[4] | data[6] | data[8]) {
603 input_report_key(input, wacom->tool[1], 1);
604 input_report_abs(input, ABS_MISC, PAD_DEVICE_ID); 607 input_report_abs(input, ABS_MISC, PAD_DEVICE_ID);
605 } else { 608 } else {
606 input_report_key(input, wacom->tool[1], 0);
607 input_report_abs(input, ABS_MISC, 0); 609 input_report_abs(input, ABS_MISC, 0);
608 } 610 }
609 } else if (features->type >= INTUOS5S && features->type <= INTUOS5L) { 611 } else if (features->type >= INTUOS5S && features->type <= INTUOS5L) {
@@ -628,10 +630,8 @@ static int wacom_intuos_irq(struct wacom_wac *wacom)
628 } 630 }
629 631
630 if (data[2] | (data[3] & 0x01) | data[4] | data[5]) { 632 if (data[2] | (data[3] & 0x01) | data[4] | data[5]) {
631 input_report_key(input, wacom->tool[1], 1);
632 input_report_abs(input, ABS_MISC, PAD_DEVICE_ID); 633 input_report_abs(input, ABS_MISC, PAD_DEVICE_ID);
633 } else { 634 } else {
634 input_report_key(input, wacom->tool[1], 0);
635 input_report_abs(input, ABS_MISC, 0); 635 input_report_abs(input, ABS_MISC, 0);
636 } 636 }
637 } else { 637 } else {
@@ -678,10 +678,8 @@ static int wacom_intuos_irq(struct wacom_wac *wacom)
678 if ((data[5] & 0x1f) | data[6] | (data[1] & 0x1f) | 678 if ((data[5] & 0x1f) | data[6] | (data[1] & 0x1f) |
679 data[2] | (data[3] & 0x1f) | data[4] | data[8] | 679 data[2] | (data[3] & 0x1f) | data[4] | data[8] |
680 (data[7] & 0x01)) { 680 (data[7] & 0x01)) {
681 input_report_key(input, wacom->tool[1], 1);
682 input_report_abs(input, ABS_MISC, PAD_DEVICE_ID); 681 input_report_abs(input, ABS_MISC, PAD_DEVICE_ID);
683 } else { 682 } else {
684 input_report_key(input, wacom->tool[1], 0);
685 input_report_abs(input, ABS_MISC, 0); 683 input_report_abs(input, ABS_MISC, 0);
686 } 684 }
687 } 685 }