On Mar 7, 2018 11:02 AM, "Aaron Armstrong Skomra" <sko...@gmail.com> wrote:

Signed-off-by: Aaron Armstrong Skomra <sko...@gmail.com>
Reviewed-by: Ping Cheng <ping.ch...@wacom.com>
Reviewed-by: Jason Gerecke <jason.gere...@wacom.com>
---
 2.6.30/wacom_wac.c | 28 +++++++++++++++++++++++++++-
 2.6.30/wacom_wac.h |  1 +
 2.6.38/wacom_wac.c | 28 +++++++++++++++++++++++++++-
 2.6.38/wacom_wac.h |  1 +
 3.7/wacom_wac.c    | 28 +++++++++++++++++++++++++++-
 3.7/wacom_wac.h    |  1 +
 6 files changed, 84 insertions(+), 3 deletions(-)

diff --git a/2.6.30/wacom_wac.c b/2.6.30/wacom_wac.c
index 36a87b90c955..89d99f462538 100644
--- a/2.6.30/wacom_wac.c
+++ b/2.6.30/wacom_wac.c
@@ -1665,6 +1665,11 @@ static int wacom_mspro_pad_irq(struct wacom_wac
*wacom)
                        ring = le16_to_cpup((__le16 *)&data[4]);
                        keys = 0;
                        break;
+               case 4:
+                       buttons = data[1];
+                       keys = 0;
+                       ring = 0;
+                       break;
                case 9:
                        buttons = (data[1]) | (data[3] << 8);
                        ring = le16_to_cpup((__le16 *)&data[4]);
@@ -1913,6 +1918,10 @@ void wacom_wac_irq(struct wacom_wac *wacom_wac,
size_t len)
                        sync = wacom_mspro_irq(wacom_wac);
                break;

+       case INTUOSHT3:
+               sync = wacom_mspro_irq(wacom_wac);
+               break;
+
        case WACOM_24HDT:
        case WACOM_27QHDT:
        case DTH1152T:
@@ -2378,6 +2387,7 @@ void wacom_setup_input_capabilities(struct input_dev
*input_dev,
                }
                /* fall through */

+       case INTUOSHT3:
        case BAMBOO_PT:
                __clear_bit(ABS_MISC, input_dev->absbit);

@@ -2400,7 +2410,7 @@ void wacom_setup_input_capabilities(struct input_dev
*input_dev,
                        }
                }
                if (features->device_type == BTN_TOOL_PEN) {
-                       if (features->type == INTUOSHT2) {
+                       if (features->type == INTUOSHT2 || features->type
== INTUOSHT3) {
                                __set_bit(ABS_MISC, input_dev->absbit);
                                wacom_setup_basic_pro_pen(wacom_wac);
                        } else {
@@ -2933,6 +2943,18 @@ static const struct wacom_features
wacom_features_0x368 =
        { "Wacom DTH-1152 Touch", WACOM_PKGLEN_27QHDT,
          .type = DTH1152T, .touch_max = 10, .oVid = USB_VENDOR_ID_WACOM,
          .oPid = 0x35A }; /* Touch */
+static const struct wacom_features wacom_features_0x374 =
+       { "Intuos S", WACOM_PKGLEN_INTUOSP2, 15200, 9500, 4095,
+         63, INTUOSHT3, WACOM_INTUOS_RES, WACOM_INTUOS_RES, 4 };


I made a copy paste error here when updating the name. I will resend.

+static const struct wacom_features wacom_features_0x375 =
+       { "Intuos M", WACOM_PKGLEN_INTUOSP2, 21600, 13500, 4095,
+         63, INTUOSHT3, WACOM_INTUOS_RES, WACOM_INTUOS_RES, 4 };
+static const struct wacom_features wacom_features_0x376 =
+       { "Intuos BT S", WACOM_PKGLEN_INTUOSP2, 15200, 9500, 4095,
+         63, INTUOSHT3, WACOM_INTUOS_RES, WACOM_INTUOS_RES, 4 };
+static const struct wacom_features wacom_features_0x378 =
+       { "Intuos BT M", WACOM_PKGLEN_INTUOSP2, 21600, 13500, 4095,
+         63, INTUOSHT3, WACOM_INTUOS_RES, WACOM_INTUOS_RES, 4 };
 static const struct wacom_features wacom_features_0x37A =
        { "Wacom One by Wacom S", 15200, 9500, 2047, 63,
          BAMBOO_PT };
@@ -3122,6 +3144,10 @@ const struct usb_device_id wacom_ids[] = {
        { USB_DEVICE_DETAILED(0x358, USB_CLASS_HID, 0, 0) },
        { USB_DEVICE_WACOM(0x35A) },
        { USB_DEVICE_WACOM(0x368) },
+       { USB_DEVICE_WACOM(0x374) },
+       { USB_DEVICE_WACOM(0x375) },
+       { USB_DEVICE_WACOM(0x376) },
+       { USB_DEVICE_WACOM(0x378) },
        { USB_DEVICE_WACOM(0x37A) },
        { USB_DEVICE_WACOM(0x37B) },
        { USB_DEVICE_WACOM(0x37C) },
diff --git a/2.6.30/wacom_wac.h b/2.6.30/wacom_wac.h
index 0b128e39218c..2fbe0cdbdf13 100755
--- a/2.6.30/wacom_wac.h
+++ b/2.6.30/wacom_wac.h
@@ -127,6 +127,7 @@ enum {
        WACOM_MSPROT,
        DTH1152T,
        INTUOSP2,
+       INTUOSHT3,
        TABLETPC,
        TABLETPC2FG,
        DTH2452T,
diff --git a/2.6.38/wacom_wac.c b/2.6.38/wacom_wac.c
index b3b1e032eeb5..949e05ba6454 100644
--- a/2.6.38/wacom_wac.c
+++ b/2.6.38/wacom_wac.c
@@ -1874,6 +1874,11 @@ static int wacom_mspro_pad_irq(struct wacom_wac
*wacom)
                        ring = le16_to_cpup((__le16 *)&data[4]);
                        keys = 0;
                        break;
+               case 4:
+                       buttons = data[1];
+                       keys = 0;
+                       ring = 0;
+                       break;
                case 9:
                        buttons = (data[1]) | (data[3] << 8);
                        ring = le16_to_cpup((__le16 *)&data[4]);
@@ -2163,6 +2168,10 @@ void wacom_wac_irq(struct wacom_wac *wacom_wac,
size_t len)
                        sync = wacom_bpt_irq(wacom_wac, len);
                break;

+       case INTUOSHT3:
+               sync = wacom_mspro_irq(wacom_wac);
+               break;
+
        case WIRELESS:
                sync = wacom_wireless_irq(wacom_wac, len);
                break;
@@ -2689,6 +2698,7 @@ int wacom_setup_input_capabilities(struct input_dev
*input_dev,
                }
                /* fall through */

+       case INTUOSHT3:
        case BAMBOO_PT:
                __clear_bit(ABS_MISC, input_dev->absbit);

@@ -2740,7 +2750,7 @@ int wacom_setup_input_capabilities(struct input_dev
*input_dev,
                                }
                        }
                } else if (features->device_type == BTN_TOOL_PEN) {
-                       if (features->type == INTUOSHT2) {
+                       if (features->type == INTUOSHT2 || features->type
== INTUOSHT3) {
                                __set_bit(ABS_MISC, input_dev->absbit);
                                wacom_setup_basic_pro_pen(wacom_wac);
                        } else {
@@ -3332,6 +3342,18 @@ static const struct wacom_features
wacom_features_0x368 =
        { "Wacom DTH-1152 Touch", WACOM_PKGLEN_27QHDT,
          .type = DTH1152T, .touch_max = 10, .oVid = USB_VENDOR_ID_WACOM,
          .oPid = 0x35A }; /* Touch */
+static const struct wacom_features wacom_features_0x374 =
+       { "Intuos S", WACOM_PKGLEN_INTUOSP2, 15200, 9500, 4095,
+         63, INTUOSHT3, WACOM_INTUOS_RES, WACOM_INTUOS_RES, 4 };
+static const struct wacom_features wacom_features_0x375 =
+       { "Intuos M", WACOM_PKGLEN_INTUOSP2, 21600, 13500, 4095,
+         63, INTUOSHT3, WACOM_INTUOS_RES, WACOM_INTUOS_RES, 4 };
+static const struct wacom_features wacom_features_0x376 =
+       { "Intuos BT S", WACOM_PKGLEN_INTUOSP2, 15200, 9500, 4095,
+         63, INTUOSHT3, WACOM_INTUOS_RES, WACOM_INTUOS_RES, 4 };
+static const struct wacom_features wacom_features_0x378 =
+       { "Intuos BT M", WACOM_PKGLEN_INTUOSP2, 21600, 13500, 4095,
+         63, INTUOSHT3, WACOM_INTUOS_RES, WACOM_INTUOS_RES, 4 };
 static const struct wacom_features wacom_features_0x37A =
        { "Wacom One by Wacom S", 15200, 9500, 2047, 63,
          BAMBOO_PT, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
@@ -3536,6 +3558,10 @@ const struct usb_device_id wacom_ids[] = {
        { USB_DEVICE_DETAILED(0x358, USB_CLASS_HID, 0, 0) },
        { USB_DEVICE_WACOM(0x35A) },
        { USB_DEVICE_WACOM(0x368) },
+       { USB_DEVICE_WACOM(0x374) },
+       { USB_DEVICE_WACOM(0x375) },
+       { USB_DEVICE_WACOM(0x376) },
+       { USB_DEVICE_WACOM(0x378) },
        { USB_DEVICE_WACOM(0x37A) },
        { USB_DEVICE_WACOM(0x37B) },
        { USB_DEVICE_WACOM(0x37C) },
diff --git a/2.6.38/wacom_wac.h b/2.6.38/wacom_wac.h
index cb9d37b36c48..bfe02535a152 100644
--- a/2.6.38/wacom_wac.h
+++ b/2.6.38/wacom_wac.h
@@ -141,6 +141,7 @@ enum {
        WACOM_MSPROT,
        DTH1152T,
        INTUOSP2,
+       INTUOSHT3,
        WIRELESS,
        REMOTE,
        TABLETPC,   /* add new TPC below */
diff --git a/3.7/wacom_wac.c b/3.7/wacom_wac.c
index a8ac0af7093e..7d5ec424aafc 100644
--- a/3.7/wacom_wac.c
+++ b/3.7/wacom_wac.c
@@ -1856,6 +1856,11 @@ static int wacom_mspro_pad_irq(struct wacom_wac
*wacom)
                        ring = le16_to_cpup((__le16 *)&data[4]);
                        keys = 0;
                        break;
+               case 4:
+                       buttons = data[1];
+                       keys = 0;
+                       ring = 0;
+                       break;
                case 9:
                        buttons = (data[1]) | (data[3] << 8);
                        ring = le16_to_cpup((__le16 *)&data[4]);
@@ -2145,6 +2150,10 @@ void wacom_wac_irq(struct wacom_wac *wacom_wac,
size_t len)
                        sync = wacom_bpt_irq(wacom_wac, len);
                break;

+       case INTUOSHT3:
+               sync = wacom_mspro_irq(wacom_wac);
+               break;
+
        case WIRELESS:
                sync = wacom_wireless_irq(wacom_wac, len);
                break;
@@ -2634,6 +2643,7 @@ int wacom_setup_input_capabilities(struct input_dev
*input_dev,
                }
                /* fall through */

+       case INTUOSHT3:
        case BAMBOO_PT:
                __clear_bit(ABS_MISC, input_dev->absbit);

@@ -2670,7 +2680,7 @@ int wacom_setup_input_capabilities(struct input_dev
*input_dev,
                        }
                } else if (features->device_type == BTN_TOOL_PEN) {
                        __set_bit(INPUT_PROP_POINTER, input_dev->propbit);
-                       if (features->type == INTUOSHT2) {
+                       if (features->type == INTUOSHT2 || features->type
== INTUOSHT3) {
                                __set_bit(ABS_MISC, input_dev->absbit);
                                wacom_setup_basic_pro_pen(wacom_wac);
                        } else {
@@ -3262,6 +3272,18 @@ static const struct wacom_features
wacom_features_0x368 =
        { "Wacom DTH-1152 Touch", WACOM_PKGLEN_27QHDT,
          .type = DTH1152T, .touch_max = 10, .oVid = USB_VENDOR_ID_WACOM,
          .oPid = 0x35A }; /* Touch */
+static const struct wacom_features wacom_features_0x374 =
+       { "Intuos S", WACOM_PKGLEN_INTUOSP2, 15200, 9500, 4095,
+         63, INTUOSHT3, WACOM_INTUOS_RES, WACOM_INTUOS_RES, 4 };
+static const struct wacom_features wacom_features_0x375 =
+       { "Intuos M", WACOM_PKGLEN_INTUOSP2, 21600, 13500, 4095,
+         63, INTUOSHT3, WACOM_INTUOS_RES, WACOM_INTUOS_RES, 4 };
+static const struct wacom_features wacom_features_0x376 =
+       { "Intuos BT S", WACOM_PKGLEN_INTUOSP2, 15200, 9500, 4095,
+         63, INTUOSHT3, WACOM_INTUOS_RES, WACOM_INTUOS_RES, 4 };
+static const struct wacom_features wacom_features_0x378 =
+       { "Intuos BT M", WACOM_PKGLEN_INTUOSP2, 21600, 13500, 4095,
+         63, INTUOSHT3, WACOM_INTUOS_RES, WACOM_INTUOS_RES, 4 };
 static const struct wacom_features wacom_features_0x37A =
        { "Wacom One by Wacom S", 15200, 9500, 2047, 63,
          BAMBOO_PT, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
@@ -3466,6 +3488,10 @@ const struct usb_device_id wacom_ids[] = {
        { USB_DEVICE_DETAILED(0x358, USB_CLASS_HID, 0, 0) },
        { USB_DEVICE_WACOM(0x35A) },
        { USB_DEVICE_WACOM(0x368) },
+       { USB_DEVICE_WACOM(0x374) },
+       { USB_DEVICE_WACOM(0x375) },
+       { USB_DEVICE_WACOM(0x376) },
+       { USB_DEVICE_WACOM(0x378) },
        { USB_DEVICE_WACOM(0x37A) },
        { USB_DEVICE_WACOM(0x37B) },
        { USB_DEVICE_WACOM(0x37C) },
diff --git a/3.7/wacom_wac.h b/3.7/wacom_wac.h
index 3bfdf04a1ace..5f3fe7446cd7 100644
--- a/3.7/wacom_wac.h
+++ b/3.7/wacom_wac.h
@@ -141,6 +141,7 @@ enum {
        WACOM_MSPROT,
        DTH1152T,
        INTUOSP2,
+       INTUOSHT3,
        WIRELESS,
        REMOTE,
        TABLETPC,   /* add new TPC below */
--
2.7.4
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to