Skip to content

Commit 7e12978

Browse files
bentissJiri Kosina
authored andcommitted
HID: wacom: break out wacom_intuos_get_tool_type
Allow to reuse the code in a later series and simplifies the reading of wacom_intuos_inout(). Signed-off-by: Benjamin Tissoires <[email protected]> Acked-by: Ping Cheng <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
1 parent 526d6e7 commit 7e12978

File tree

1 file changed

+87
-79
lines changed

1 file changed

+87
-79
lines changed

drivers/hid/wacom_wac.c

Lines changed: 87 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -575,6 +575,91 @@ static int wacom_intuos_pad(struct wacom_wac *wacom)
575575
return 1;
576576
}
577577

578+
static int wacom_intuos_get_tool_type(int tool_id)
579+
{
580+
int tool_type;
581+
582+
switch (tool_id) {
583+
case 0x812: /* Inking pen */
584+
case 0x801: /* Intuos3 Inking pen */
585+
case 0x120802: /* Intuos4/5 Inking Pen */
586+
case 0x012:
587+
tool_type = BTN_TOOL_PENCIL;
588+
break;
589+
590+
case 0x822: /* Pen */
591+
case 0x842:
592+
case 0x852:
593+
case 0x823: /* Intuos3 Grip Pen */
594+
case 0x813: /* Intuos3 Classic Pen */
595+
case 0x885: /* Intuos3 Marker Pen */
596+
case 0x802: /* Intuos4/5 13HD/24HD General Pen */
597+
case 0x804: /* Intuos4/5 13HD/24HD Marker Pen */
598+
case 0x8e2: /* IntuosHT2 pen */
599+
case 0x022:
600+
case 0x100804: /* Intuos4/5 13HD/24HD Art Pen */
601+
case 0x140802: /* Intuos4/5 13HD/24HD Classic Pen */
602+
case 0x160802: /* Cintiq 13HD Pro Pen */
603+
case 0x180802: /* DTH2242 Pen */
604+
case 0x100802: /* Intuos4/5 13HD/24HD General Pen */
605+
tool_type = BTN_TOOL_PEN;
606+
break;
607+
608+
case 0x832: /* Stroke pen */
609+
case 0x032:
610+
tool_type = BTN_TOOL_BRUSH;
611+
break;
612+
613+
case 0x007: /* Mouse 4D and 2D */
614+
case 0x09c:
615+
case 0x094:
616+
case 0x017: /* Intuos3 2D Mouse */
617+
case 0x806: /* Intuos4 Mouse */
618+
tool_type = BTN_TOOL_MOUSE;
619+
break;
620+
621+
case 0x096: /* Lens cursor */
622+
case 0x097: /* Intuos3 Lens cursor */
623+
case 0x006: /* Intuos4 Lens cursor */
624+
tool_type = BTN_TOOL_LENS;
625+
break;
626+
627+
case 0x82a: /* Eraser */
628+
case 0x85a:
629+
case 0x91a:
630+
case 0xd1a:
631+
case 0x0fa:
632+
case 0x82b: /* Intuos3 Grip Pen Eraser */
633+
case 0x81b: /* Intuos3 Classic Pen Eraser */
634+
case 0x91b: /* Intuos3 Airbrush Eraser */
635+
case 0x80c: /* Intuos4/5 13HD/24HD Marker Pen Eraser */
636+
case 0x80a: /* Intuos4/5 13HD/24HD General Pen Eraser */
637+
case 0x90a: /* Intuos4/5 13HD/24HD Airbrush Eraser */
638+
case 0x14080a: /* Intuos4/5 13HD/24HD Classic Pen Eraser */
639+
case 0x10090a: /* Intuos4/5 13HD/24HD Airbrush Eraser */
640+
case 0x10080c: /* Intuos4/5 13HD/24HD Art Pen Eraser */
641+
case 0x16080a: /* Cintiq 13HD Pro Pen Eraser */
642+
case 0x18080a: /* DTH2242 Eraser */
643+
case 0x10080a: /* Intuos4/5 13HD/24HD General Pen Eraser */
644+
tool_type = BTN_TOOL_RUBBER;
645+
break;
646+
647+
case 0xd12:
648+
case 0x912:
649+
case 0x112:
650+
case 0x913: /* Intuos3 Airbrush */
651+
case 0x902: /* Intuos4/5 13HD/24HD Airbrush */
652+
case 0x100902: /* Intuos4/5 13HD/24HD Airbrush */
653+
tool_type = BTN_TOOL_AIRBRUSH;
654+
break;
655+
656+
default: /* Unknown tool */
657+
tool_type = BTN_TOOL_PEN;
658+
break;
659+
}
660+
return tool_type;
661+
}
662+
578663
static int wacom_intuos_inout(struct wacom_wac *wacom)
579664
{
580665
struct wacom_features *features = &wacom->features;
@@ -597,85 +682,8 @@ static int wacom_intuos_inout(struct wacom_wac *wacom)
597682
wacom->id[idx] = (data[2] << 4) | (data[3] >> 4) |
598683
((data[7] & 0x0f) << 20) | ((data[8] & 0xf0) << 12);
599684

600-
switch (wacom->id[idx]) {
601-
case 0x812: /* Inking pen */
602-
case 0x801: /* Intuos3 Inking pen */
603-
case 0x120802: /* Intuos4/5 Inking Pen */
604-
case 0x012:
605-
wacom->tool[idx] = BTN_TOOL_PENCIL;
606-
break;
607-
608-
case 0x822: /* Pen */
609-
case 0x842:
610-
case 0x852:
611-
case 0x823: /* Intuos3 Grip Pen */
612-
case 0x813: /* Intuos3 Classic Pen */
613-
case 0x885: /* Intuos3 Marker Pen */
614-
case 0x802: /* Intuos4/5 13HD/24HD General Pen */
615-
case 0x804: /* Intuos4/5 13HD/24HD Marker Pen */
616-
case 0x8e2: /* IntuosHT2 pen */
617-
case 0x022:
618-
case 0x100804: /* Intuos4/5 13HD/24HD Art Pen */
619-
case 0x140802: /* Intuos4/5 13HD/24HD Classic Pen */
620-
case 0x160802: /* Cintiq 13HD Pro Pen */
621-
case 0x180802: /* DTH2242 Pen */
622-
case 0x100802: /* Intuos4/5 13HD/24HD General Pen */
623-
wacom->tool[idx] = BTN_TOOL_PEN;
624-
break;
625-
626-
case 0x832: /* Stroke pen */
627-
case 0x032:
628-
wacom->tool[idx] = BTN_TOOL_BRUSH;
629-
break;
630-
631-
case 0x007: /* Mouse 4D and 2D */
632-
case 0x09c:
633-
case 0x094:
634-
case 0x017: /* Intuos3 2D Mouse */
635-
case 0x806: /* Intuos4 Mouse */
636-
wacom->tool[idx] = BTN_TOOL_MOUSE;
637-
break;
638-
639-
case 0x096: /* Lens cursor */
640-
case 0x097: /* Intuos3 Lens cursor */
641-
case 0x006: /* Intuos4 Lens cursor */
642-
wacom->tool[idx] = BTN_TOOL_LENS;
643-
break;
644-
645-
case 0x82a: /* Eraser */
646-
case 0x85a:
647-
case 0x91a:
648-
case 0xd1a:
649-
case 0x0fa:
650-
case 0x82b: /* Intuos3 Grip Pen Eraser */
651-
case 0x81b: /* Intuos3 Classic Pen Eraser */
652-
case 0x91b: /* Intuos3 Airbrush Eraser */
653-
case 0x80c: /* Intuos4/5 13HD/24HD Marker Pen Eraser */
654-
case 0x80a: /* Intuos4/5 13HD/24HD General Pen Eraser */
655-
case 0x90a: /* Intuos4/5 13HD/24HD Airbrush Eraser */
656-
case 0x14080a: /* Intuos4/5 13HD/24HD Classic Pen Eraser */
657-
case 0x10090a: /* Intuos4/5 13HD/24HD Airbrush Eraser */
658-
case 0x10080c: /* Intuos4/5 13HD/24HD Art Pen Eraser */
659-
case 0x16080a: /* Cintiq 13HD Pro Pen Eraser */
660-
case 0x18080a: /* DTH2242 Eraser */
661-
case 0x10080a: /* Intuos4/5 13HD/24HD General Pen Eraser */
662-
wacom->tool[idx] = BTN_TOOL_RUBBER;
663-
break;
664-
665-
case 0xd12:
666-
case 0x912:
667-
case 0x112:
668-
case 0x913: /* Intuos3 Airbrush */
669-
case 0x902: /* Intuos4/5 13HD/24HD Airbrush */
670-
case 0x100902: /* Intuos4/5 13HD/24HD Airbrush */
671-
wacom->tool[idx] = BTN_TOOL_AIRBRUSH;
672-
break;
673-
674-
default: /* Unknown tool */
675-
wacom->tool[idx] = BTN_TOOL_PEN;
676-
break;
677-
}
678-
wacom->shared->stylus_in_proximity = true;
685+
wacom->tool[idx] = wacom_intuos_get_tool_type(wacom->id[idx]);
686+
679687
return 1;
680688
}
681689

0 commit comments

Comments
 (0)