aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNikolai Kondrashov <spbnick@gmail.com>2016-09-14 14:38:18 -0400
committerJiri Kosina <jkosina@suse.cz>2016-09-19 08:32:23 -0400
commit18e3dfac16ae66209fdb570a429089be1907caa1 (patch)
treef6652dc9afaaa2dd0e4afe7f6e5fdfc3b4c48385
parent4b7e7e5eda1d415158c04c77b0b2a1648fa59815 (diff)
HID: uclogic: Support UGTizer GP0610 partially
Add partial support for the UGTizer GP0610 tablet (aka iBall PF1064U, aka UGTizer GT1060) to the hid-uclogic.c driver. The pen input is supported fully, but frame buttons and wheel don't work yet. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
-rw-r--r--drivers/hid/hid-core.c1
-rw-r--r--drivers/hid/hid-ids.h3
-rw-r--r--drivers/hid/hid-uclogic.c14
3 files changed, 18 insertions, 0 deletions
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index df2770a5291f..e21ac0b9f566 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -2087,6 +2087,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
2087 { HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UGEE_TABLET_81) }, 2087 { HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UGEE_TABLET_81) },
2088 { HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UGEE_TABLET_45) }, 2088 { HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UGEE_TABLET_45) },
2089 { HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UCLOGIC_DRAWIMAGE_G3) }, 2089 { HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UCLOGIC_DRAWIMAGE_G3) },
2090 { HID_USB_DEVICE(USB_VENDOR_ID_UGTIZER, USB_DEVICE_ID_UGTIZER_TABLET_GP0610) },
2090 { HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_SMARTJOY_PLUS) }, 2091 { HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_SMARTJOY_PLUS) },
2091 { HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_SUPER_JOY_BOX_3) }, 2092 { HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_SUPER_JOY_BOX_3) },
2092 { HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_DUAL_USB_JOYPAD) }, 2093 { HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_DUAL_USB_JOYPAD) },
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 6ef9dbf84059..15067a902e8e 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -1089,4 +1089,7 @@
1089#define USB_DEVICE_ID_RAPHNET_2NES2SNES 0x0002 1089#define USB_DEVICE_ID_RAPHNET_2NES2SNES 0x0002
1090#define USB_DEVICE_ID_RAPHNET_4NES4SNES 0x0003 1090#define USB_DEVICE_ID_RAPHNET_4NES4SNES 0x0003
1091 1091
1092#define USB_VENDOR_ID_UGTIZER 0x2179
1093#define USB_DEVICE_ID_UGTIZER_TABLET_GP0610 0x0053
1094
1092#endif 1095#endif
diff --git a/drivers/hid/hid-uclogic.c b/drivers/hid/hid-uclogic.c
index f4377c458787..72778b34046e 100644
--- a/drivers/hid/hid-uclogic.c
+++ b/drivers/hid/hid-uclogic.c
@@ -974,6 +974,19 @@ static int uclogic_probe(struct hid_device *hdev,
974 drvdata->ignore_pen_usage = true; 974 drvdata->ignore_pen_usage = true;
975 } 975 }
976 break; 976 break;
977 case USB_DEVICE_ID_UGTIZER_TABLET_GP0610:
978 /* If this is the pen interface */
979 if (intf->cur_altsetting->desc.bInterfaceNumber == 1) {
980 rc = uclogic_tablet_enable(hdev);
981 if (rc) {
982 hid_err(hdev, "tablet enabling failed\n");
983 return rc;
984 }
985 drvdata->invert_pen_inrange = true;
986 } else {
987 drvdata->ignore_pen_usage = true;
988 }
989 break;
977 } 990 }
978 991
979 rc = hid_parse(hdev); 992 rc = hid_parse(hdev);
@@ -1031,6 +1044,7 @@ static const struct hid_device_id uclogic_devices[] = {
1031 { HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UGEE_TABLET_81) }, 1044 { HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UGEE_TABLET_81) },
1032 { HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UGEE_TABLET_45) }, 1045 { HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UGEE_TABLET_45) },
1033 { HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UCLOGIC_DRAWIMAGE_G3) }, 1046 { HID_USB_DEVICE(USB_VENDOR_ID_UCLOGIC, USB_DEVICE_ID_UCLOGIC_DRAWIMAGE_G3) },
1047 { HID_USB_DEVICE(USB_VENDOR_ID_UGTIZER, USB_DEVICE_ID_UGTIZER_TABLET_GP0610) },
1034 { } 1048 { }
1035}; 1049};
1036MODULE_DEVICE_TABLE(hid, uclogic_devices); 1050MODULE_DEVICE_TABLE(hid, uclogic_devices);