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> --- I saw that the copy paste error was actually from rebasing over "One By Wacom" support, not from the device name change. -Aaron 2.6.30/wacom_wac.c | 24 +++++++++++++++++++++++- 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, 80 insertions(+), 3 deletions(-)
diff --git a/2.6.30/wacom_wac.c b/2.6.30/wacom_wac.c index 36a87b90c955..967509aa440f 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,14 @@ 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, 4 }; +static const struct wacom_features wacom_features_0x375 = + { "Intuos M", WACOM_PKGLEN_INTUOSP2, 21600, 13500, 4095, 63, INTUOSHT3, 4 }; +static const struct wacom_features wacom_features_0x376 = + { "Intuos BT S", WACOM_PKGLEN_INTUOSP2, 15200, 9500, 4095, 63, INTUOSHT3, 4 }; +static const struct wacom_features wacom_features_0x378 = + { "Intuos BT M", WACOM_PKGLEN_INTUOSP2, 21600, 13500, 4095, 63, INTUOSHT3, 4 }; static const struct wacom_features wacom_features_0x37A = { "Wacom One by Wacom S", 15200, 9500, 2047, 63, BAMBOO_PT }; @@ -3122,6 +3140,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