aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input/tablet
diff options
context:
space:
mode:
authorPing Cheng <pinglinux@gmail.com>2012-06-12 03:15:06 -0400
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2012-06-12 03:39:57 -0400
commitac173837cd4b268a538235a1699b91457551a9a9 (patch)
tree5e6c886ef2ffaf802c0194766fc61ec29de653cd /drivers/input/tablet
parentea2e60244573a9204c8cee9b4fb181106784c617 (diff)
Input: wacom - add two new devices (0xed and 0xef)
0xed supports pen and one finger touch; 0xef is pen only. Signed-off-by: Ping Cheng <pingc@wacom.com> Acked-by: Chris Bagwell <chris@cnpbagwell.com> Reviewed-by: Jason Gerecke <killertofu@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'drivers/input/tablet')
-rw-r--r--drivers/input/tablet/wacom_wac.c13
-rw-r--r--drivers/input/tablet/wacom_wac.h2
2 files changed, 14 insertions, 1 deletions
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c
index c40dcb7036b3..fd0cf4d328a3 100644
--- a/drivers/input/tablet/wacom_wac.c
+++ b/drivers/input/tablet/wacom_wac.c
@@ -888,7 +888,7 @@ static int wacom_tpc_single_touch(struct wacom_wac *wacom, size_t len)
888 prox = data[0] & 0x01; 888 prox = data[0] & 0x01;
889 x = get_unaligned_le16(&data[1]); 889 x = get_unaligned_le16(&data[1]);
890 y = get_unaligned_le16(&data[3]); 890 y = get_unaligned_le16(&data[3]);
891 } else { /* with capacity */ 891 } else {
892 prox = data[1] & 0x01; 892 prox = data[1] & 0x01;
893 x = le16_to_cpup((__le16 *)&data[2]); 893 x = le16_to_cpup((__le16 *)&data[2]);
894 y = le16_to_cpup((__le16 *)&data[4]); 894 y = le16_to_cpup((__le16 *)&data[4]);
@@ -961,6 +961,7 @@ static int wacom_tpc_irq(struct wacom_wac *wacom, size_t len)
961 case WACOM_REPORT_TPC1FG: 961 case WACOM_REPORT_TPC1FG:
962 case WACOM_REPORT_TPCHID: 962 case WACOM_REPORT_TPCHID:
963 case WACOM_REPORT_TPCST: 963 case WACOM_REPORT_TPCST:
964 case WACOM_REPORT_TPC1FGE:
964 return wacom_tpc_single_touch(wacom, len); 965 return wacom_tpc_single_touch(wacom, len);
965 966
966 case WACOM_REPORT_TPCMT: 967 case WACOM_REPORT_TPCMT:
@@ -1244,6 +1245,7 @@ void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len)
1244 break; 1245 break;
1245 1246
1246 case TABLETPC: 1247 case TABLETPC:
1248 case TABLETPCE:
1247 case TABLETPC2FG: 1249 case TABLETPC2FG:
1248 case MTSCREEN: 1250 case MTSCREEN:
1249 sync = wacom_tpc_irq(wacom_wac, len); 1251 sync = wacom_tpc_irq(wacom_wac, len);
@@ -1569,6 +1571,7 @@ int wacom_setup_input_capabilities(struct input_dev *input_dev,
1569 /* fall through */ 1571 /* fall through */
1570 1572
1571 case TABLETPC: 1573 case TABLETPC:
1574 case TABLETPCE:
1572 __clear_bit(ABS_MISC, input_dev->absbit); 1575 __clear_bit(ABS_MISC, input_dev->absbit);
1573 1576
1574 __set_bit(INPUT_PROP_DIRECT, input_dev->propbit); 1577 __set_bit(INPUT_PROP_DIRECT, input_dev->propbit);
@@ -1886,6 +1889,12 @@ static const struct wacom_features wacom_features_0xE6 =
1886static const struct wacom_features wacom_features_0xEC = 1889static const struct wacom_features wacom_features_0xEC =
1887 { "Wacom ISDv4 EC", WACOM_PKGLEN_GRAPHIRE, 25710, 14500, 255, 1890 { "Wacom ISDv4 EC", WACOM_PKGLEN_GRAPHIRE, 25710, 14500, 255,
1888 0, TABLETPC, WACOM_INTUOS_RES, WACOM_INTUOS_RES }; 1891 0, TABLETPC, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
1892static const struct wacom_features wacom_features_0xED =
1893 { "Wacom ISDv4 ED", WACOM_PKGLEN_GRAPHIRE, 26202, 16325, 255,
1894 0, TABLETPCE, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
1895static const struct wacom_features wacom_features_0xEF =
1896 { "Wacom ISDv4 EF", WACOM_PKGLEN_GRAPHIRE, 26202, 16325, 255,
1897 0, TABLETPC, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
1889static const struct wacom_features wacom_features_0x47 = 1898static const struct wacom_features wacom_features_0x47 =
1890 { "Wacom Intuos2 6x8", WACOM_PKGLEN_INTUOS, 20320, 16240, 1023, 1899 { "Wacom Intuos2 6x8", WACOM_PKGLEN_INTUOS, 20320, 16240, 1023,
1891 31, INTUOS, WACOM_INTUOS_RES, WACOM_INTUOS_RES }; 1900 31, INTUOS, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
@@ -2060,6 +2069,8 @@ const struct usb_device_id wacom_ids[] = {
2060 { USB_DEVICE_WACOM(0xE5) }, 2069 { USB_DEVICE_WACOM(0xE5) },
2061 { USB_DEVICE_WACOM(0xE6) }, 2070 { USB_DEVICE_WACOM(0xE6) },
2062 { USB_DEVICE_WACOM(0xEC) }, 2071 { USB_DEVICE_WACOM(0xEC) },
2072 { USB_DEVICE_WACOM(0xED) },
2073 { USB_DEVICE_WACOM(0xEF) },
2063 { USB_DEVICE_WACOM(0x47) }, 2074 { USB_DEVICE_WACOM(0x47) },
2064 { USB_DEVICE_WACOM(0xF4) }, 2075 { USB_DEVICE_WACOM(0xF4) },
2065 { USB_DEVICE_LENOVO(0x6004) }, 2076 { USB_DEVICE_LENOVO(0x6004) },
diff --git a/drivers/input/tablet/wacom_wac.h b/drivers/input/tablet/wacom_wac.h
index 87080435116c..bd5d37b28714 100644
--- a/drivers/input/tablet/wacom_wac.h
+++ b/drivers/input/tablet/wacom_wac.h
@@ -48,6 +48,7 @@
48#define WACOM_REPORT_TPCMT 13 48#define WACOM_REPORT_TPCMT 13
49#define WACOM_REPORT_TPCHID 15 49#define WACOM_REPORT_TPCHID 15
50#define WACOM_REPORT_TPCST 16 50#define WACOM_REPORT_TPCST 16
51#define WACOM_REPORT_TPC1FGE 18
51 52
52/* device quirks */ 53/* device quirks */
53#define WACOM_QUIRK_MULTI_INPUT 0x0001 54#define WACOM_QUIRK_MULTI_INPUT 0x0001
@@ -80,6 +81,7 @@ enum {
80 WIRELESS, 81 WIRELESS,
81 BAMBOO_PT, 82 BAMBOO_PT,
82 TABLETPC, /* add new TPC below */ 83 TABLETPC, /* add new TPC below */
84 TABLETPCE,
83 TABLETPC2FG, 85 TABLETPC2FG,
84 MTSCREEN, 86 MTSCREEN,
85 MAX_TYPE 87 MAX_TYPE