Input: wacom - add two new devices (0xed and 0xef)
authorPing Cheng <pinglinux@gmail.com>
Tue, 12 Jun 2012 07:15:06 +0000 (00:15 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 12 Jun 2012 07:39:57 +0000 (00:39 -0700)
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>
drivers/input/tablet/wacom_wac.c
drivers/input/tablet/wacom_wac.h

index c40dcb7036b3343da2bdcc5aa44f3f4db1a15221..fd0cf4d328a35b516520f4d2579c68ad348d1fb2 100644 (file)
@@ -888,7 +888,7 @@ static int wacom_tpc_single_touch(struct wacom_wac *wacom, size_t len)
                        prox = data[0] & 0x01;
                        x = get_unaligned_le16(&data[1]);
                        y = get_unaligned_le16(&data[3]);
-               } else { /* with capacity */
+               } else {
                        prox = data[1] & 0x01;
                        x = le16_to_cpup((__le16 *)&data[2]);
                        y = le16_to_cpup((__le16 *)&data[4]);
@@ -961,6 +961,7 @@ static int wacom_tpc_irq(struct wacom_wac *wacom, size_t len)
                case WACOM_REPORT_TPC1FG:
                case WACOM_REPORT_TPCHID:
                case WACOM_REPORT_TPCST:
+               case WACOM_REPORT_TPC1FGE:
                        return wacom_tpc_single_touch(wacom, len);
 
                case WACOM_REPORT_TPCMT:
@@ -1244,6 +1245,7 @@ void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len)
                break;
 
        case TABLETPC:
+       case TABLETPCE:
        case TABLETPC2FG:
        case MTSCREEN:
                sync = wacom_tpc_irq(wacom_wac, len);
@@ -1569,6 +1571,7 @@ int wacom_setup_input_capabilities(struct input_dev *input_dev,
                /* fall through */
 
        case TABLETPC:
+       case TABLETPCE:
                __clear_bit(ABS_MISC, input_dev->absbit);
 
                __set_bit(INPUT_PROP_DIRECT, input_dev->propbit);
@@ -1886,6 +1889,12 @@ static const struct wacom_features wacom_features_0xE6 =
 static const struct wacom_features wacom_features_0xEC =
        { "Wacom ISDv4 EC",       WACOM_PKGLEN_GRAPHIRE,  25710, 14500,  255,
          0, TABLETPC,    WACOM_INTUOS_RES, WACOM_INTUOS_RES };
+static const struct wacom_features wacom_features_0xED =
+       { "Wacom ISDv4 ED",       WACOM_PKGLEN_GRAPHIRE,  26202, 16325,  255,
+         0, TABLETPCE, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
+static const struct wacom_features wacom_features_0xEF =
+       { "Wacom ISDv4 EF",       WACOM_PKGLEN_GRAPHIRE,  26202, 16325,  255,
+         0, TABLETPC, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
 static const struct wacom_features wacom_features_0x47 =
        { "Wacom Intuos2 6x8",    WACOM_PKGLEN_INTUOS,    20320, 16240, 1023,
          31, INTUOS, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
@@ -2060,6 +2069,8 @@ const struct usb_device_id wacom_ids[] = {
        { USB_DEVICE_WACOM(0xE5) },
        { USB_DEVICE_WACOM(0xE6) },
        { USB_DEVICE_WACOM(0xEC) },
+       { USB_DEVICE_WACOM(0xED) },
+       { USB_DEVICE_WACOM(0xEF) },
        { USB_DEVICE_WACOM(0x47) },
        { USB_DEVICE_WACOM(0xF4) },
        { USB_DEVICE_LENOVO(0x6004) },
index 87080435116ccfd343729abed0f54254cd5aed86..bd5d37b28714917e0a352ea94b54912151bd398b 100644 (file)
@@ -48,6 +48,7 @@
 #define WACOM_REPORT_TPCMT             13
 #define WACOM_REPORT_TPCHID            15
 #define WACOM_REPORT_TPCST             16
+#define WACOM_REPORT_TPC1FGE           18
 
 /* device quirks */
 #define WACOM_QUIRK_MULTI_INPUT                0x0001
@@ -80,6 +81,7 @@ enum {
        WIRELESS,
        BAMBOO_PT,
        TABLETPC,   /* add new TPC below */
+       TABLETPCE,
        TABLETPC2FG,
        MTSCREEN,
        MAX_TYPE