* [PATCH 1/2] Input: wacom: Add support for 0x116 sensor on Win8 Panasonic CF-H2
@ 2014-05-10 1:30 Jason Gerecke
2014-05-10 1:30 ` [PATCH 2/2] Input: wacom: Add support for three new ISDv4 sensors Jason Gerecke
2014-05-14 18:27 ` [PATCH 1/2] Input: wacom: Add support for 0x116 sensor on Win8 Panasonic CF-H2 Ping Cheng
0 siblings, 2 replies; 6+ messages in thread
From: Jason Gerecke @ 2014-05-10 1:30 UTC (permalink / raw)
To: linux-input, dmitry.torokhov, pingc; +Cc: Jason Gerecke
The Win8 version of the Panasonic CF-H2 includes a new Wacom device.
The pen interface appears to use the same protocol as before, but the
touch interface has been tweaked to send Win8-compatible reports.
Signed-off-by: Jason Gerecke <killertofu@gmail.com>
---
drivers/input/tablet/wacom_wac.c | 8 ++++++++
drivers/input/tablet/wacom_wac.h | 1 +
2 files changed, 9 insertions(+)
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c
index a4d8f1d..e4566c3 100644
--- a/drivers/input/tablet/wacom_wac.c
+++ b/drivers/input/tablet/wacom_wac.c
@@ -1107,6 +1107,10 @@ 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 if (len == WACOM_PKGLEN_TPC1FG_B) {
+ prox = data[2] & 0x01;
+ x = le16_to_cpup((__le16 *)&data[3]);
+ y = le16_to_cpup((__le16 *)&data[5]);
} else {
prox = data[1] & 0x01;
x = le16_to_cpup((__le16 *)&data[2]);
@@ -2298,6 +2302,9 @@ static const struct wacom_features wacom_features_0x10E =
static const struct wacom_features wacom_features_0x10F =
{ "Wacom ISDv4 10F", WACOM_PKGLEN_MTTPC, 27760, 15694, 255,
0, MTTPC, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
+static const struct wacom_features wacom_features_0x116 =
+ { "Wacom ISDv4 116", WACOM_PKGLEN_GRAPHIRE, 26202, 16325, 255,
+ 0, TABLETPCE, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
static const struct wacom_features wacom_features_0x4001 =
{ "Wacom ISDv4 4001", WACOM_PKGLEN_MTTPC, 26202, 16325, 255,
0, MTTPC, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
@@ -2512,6 +2519,7 @@ const struct usb_device_id wacom_ids[] = {
{ USB_DEVICE_WACOM(0x10D) },
{ USB_DEVICE_WACOM(0x10E) },
{ USB_DEVICE_WACOM(0x10F) },
+ { USB_DEVICE_WACOM(0x116) },
{ USB_DEVICE_WACOM(0x300) },
{ USB_DEVICE_WACOM(0x301) },
{ USB_DEVICE_DETAILED(0x302, USB_CLASS_HID, 0, 0) },
diff --git a/drivers/input/tablet/wacom_wac.h b/drivers/input/tablet/wacom_wac.h
index 9f947c3..adf73cb 100644
--- a/drivers/input/tablet/wacom_wac.h
+++ b/drivers/input/tablet/wacom_wac.h
@@ -22,6 +22,7 @@
#define WACOM_PKGLEN_BBFUN 9
#define WACOM_PKGLEN_INTUOS 10
#define WACOM_PKGLEN_TPC1FG 5
+#define WACOM_PKGLEN_TPC1FG_B 10
#define WACOM_PKGLEN_TPC2FG 14
#define WACOM_PKGLEN_BBTOUCH 20
#define WACOM_PKGLEN_BBTOUCH3 64
--
1.9.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/2] Input: wacom: Add support for three new ISDv4 sensors
2014-05-10 1:30 [PATCH 1/2] Input: wacom: Add support for 0x116 sensor on Win8 Panasonic CF-H2 Jason Gerecke
@ 2014-05-10 1:30 ` Jason Gerecke
2014-05-14 18:46 ` Dmitry Torokhov
2014-05-14 18:27 ` [PATCH 1/2] Input: wacom: Add support for 0x116 sensor on Win8 Panasonic CF-H2 Ping Cheng
1 sibling, 1 reply; 6+ messages in thread
From: Jason Gerecke @ 2014-05-10 1:30 UTC (permalink / raw)
To: linux-input, dmitry.torokhov, pingc; +Cc: Jason Gerecke
This patch adds support for the 0x4004, 0x5000, and 0x5002 sensors found
on what should be the Motion R12, Fujitsu Q704, and Fujitsu T904. These
tablets use a new report ID (3) for their touch packets and a slightly
different HID descriptor format, but are otherwise largely identical in
protocol to the "MTTPC" tablets.
Note:
* The R12 uses its 0x4004 sensor for touch input only. A pen interface
is not present in its HID descriptor, though its possible a 0x4004
may be used for pen input by other tablet PCs in the future.
* The 0x5002 sensor appears to use a new report ID (8) for its pen
packets. The other sensors continue to use the traditional report
ID (2).
Signed-off-by: Jason Gerecke <killertofu@gmail.com>
---
drivers/input/tablet/wacom_sys.c | 19 +++++++++++++++++++
drivers/input/tablet/wacom_wac.c | 20 +++++++++++++++++++-
drivers/input/tablet/wacom_wac.h | 3 +++
3 files changed, 41 insertions(+), 1 deletion(-)
diff --git a/drivers/input/tablet/wacom_sys.c b/drivers/input/tablet/wacom_sys.c
index b16ebef..0056a6d 100644
--- a/drivers/input/tablet/wacom_sys.c
+++ b/drivers/input/tablet/wacom_sys.c
@@ -364,6 +364,7 @@ static int wacom_parse_hid(struct usb_interface *intf,
break;
case MTTPC:
+ case MTTPC_B:
features->pktlen = WACOM_PKGLEN_MTTPC;
break;
@@ -395,6 +396,16 @@ static int wacom_parse_hid(struct usb_interface *intf,
i += 12;
break;
+ case MTTPC_B:
+ features->x_max =
+ get_unaligned_le16(&report[i + 3]);
+ features->x_phy =
+ get_unaligned_le16(&report[i + 6]);
+ features->unit = report[i - 5];
+ features->unitExpo = report[i - 3];
+ i += 9;
+ break;
+
default:
features->x_max =
get_unaligned_le16(&report[i + 3]);
@@ -447,6 +458,14 @@ static int wacom_parse_hid(struct usb_interface *intf,
i += 12;
break;
+ case MTTPC_B:
+ features->y_max =
+ get_unaligned_le16(&report[i + 3]);
+ features->y_phy =
+ get_unaligned_le16(&report[i + 6]);
+ i += 9;
+ break;
+
default:
features->y_max =
features->x_max;
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c
index e4566c3..12da87e 100644
--- a/drivers/input/tablet/wacom_wac.c
+++ b/drivers/input/tablet/wacom_wac.c
@@ -1022,7 +1022,7 @@ static int wacom_mt_touch(struct wacom_wac *wacom)
int x_offset = 0;
/* MTTPC does not support Height and Width */
- if (wacom->features.type == MTTPC)
+ if (wacom->features.type == MTTPC || wacom->features.type == MTTPC_B)
x_offset = -4;
/*
@@ -1179,6 +1179,9 @@ static int wacom_tpc_irq(struct wacom_wac *wacom, size_t len)
case WACOM_PKGLEN_TPC2FG:
return wacom_tpc_mt_touch(wacom);
+ case WACOM_PKGLEN_PENABLED:
+ return wacom_tpc_pen(wacom);
+
default:
switch (data[0]) {
case WACOM_REPORT_TPC1FG:
@@ -1188,6 +1191,7 @@ static int wacom_tpc_irq(struct wacom_wac *wacom, size_t len)
return wacom_tpc_single_touch(wacom, len);
case WACOM_REPORT_TPCMT:
+ case WACOM_REPORT_TPCMT2:
return wacom_mt_touch(wacom);
case WACOM_REPORT_PENABLED:
@@ -1530,6 +1534,7 @@ void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len)
case TABLETPC2FG:
case MTSCREEN:
case MTTPC:
+ case MTTPC_B:
sync = wacom_tpc_irq(wacom_wac, len);
break;
@@ -1871,6 +1876,7 @@ int wacom_setup_input_capabilities(struct input_dev *input_dev,
case MTSCREEN:
case MTTPC:
+ case MTTPC_B:
case TABLETPC2FG:
if (features->device_type == BTN_TOOL_FINGER) {
unsigned int flags = INPUT_MT_DIRECT;
@@ -2308,6 +2314,15 @@ static const struct wacom_features wacom_features_0x116 =
static const struct wacom_features wacom_features_0x4001 =
{ "Wacom ISDv4 4001", WACOM_PKGLEN_MTTPC, 26202, 16325, 255,
0, MTTPC, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
+static const struct wacom_features wacom_features_0x4004 =
+ { "Wacom ISDv4 4004", WACOM_PKGLEN_MTTPC, 11060, 6220, 255,
+ 0, MTTPC_B, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
+static const struct wacom_features wacom_features_0x5000 =
+ { "Wacom ISDv4 5000", WACOM_PKGLEN_MTTPC, 27848, 15752, 1023,
+ 0, MTTPC_B, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
+static const struct wacom_features wacom_features_0x5002 =
+ { "Wacom ISDv4 5002", WACOM_PKGLEN_MTTPC, 29576, 16724, 1023,
+ 0, MTTPC_B, 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 };
@@ -2530,6 +2545,9 @@ const struct usb_device_id wacom_ids[] = {
{ USB_DEVICE_DETAILED(0x315, USB_CLASS_HID, 0, 0) },
{ USB_DEVICE_DETAILED(0x317, USB_CLASS_HID, 0, 0) },
{ USB_DEVICE_WACOM(0x4001) },
+ { USB_DEVICE_WACOM(0x4004) },
+ { USB_DEVICE_WACOM(0x5000) },
+ { USB_DEVICE_WACOM(0x5002) },
{ USB_DEVICE_WACOM(0x47) },
{ USB_DEVICE_WACOM(0xF4) },
{ USB_DEVICE_WACOM(0xF8) },
diff --git a/drivers/input/tablet/wacom_wac.h b/drivers/input/tablet/wacom_wac.h
index adf73cb..84013a7 100644
--- a/drivers/input/tablet/wacom_wac.h
+++ b/drivers/input/tablet/wacom_wac.h
@@ -31,6 +31,7 @@
#define WACOM_PKGLEN_MTOUCH 62
#define WACOM_PKGLEN_MTTPC 40
#define WACOM_PKGLEN_DTUS 68
+#define WACOM_PKGLEN_PENABLED 8
/* wacom data size per MT contact */
#define WACOM_BYTES_PER_MT_PACKET 11
@@ -53,6 +54,7 @@
#define WACOM_REPORT_TPC1FG 6
#define WACOM_REPORT_TPC2FG 13
#define WACOM_REPORT_TPCMT 13
+#define WACOM_REPORT_TPCMT2 3
#define WACOM_REPORT_TPCHID 15
#define WACOM_REPORT_TPCST 16
#define WACOM_REPORT_DTUS 17
@@ -106,6 +108,7 @@ enum {
TABLETPC2FG,
MTSCREEN,
MTTPC,
+ MTTPC_B,
MAX_TYPE
};
--
1.9.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] Input: wacom: Add support for 0x116 sensor on Win8 Panasonic CF-H2
2014-05-10 1:30 [PATCH 1/2] Input: wacom: Add support for 0x116 sensor on Win8 Panasonic CF-H2 Jason Gerecke
2014-05-10 1:30 ` [PATCH 2/2] Input: wacom: Add support for three new ISDv4 sensors Jason Gerecke
@ 2014-05-14 18:27 ` Ping Cheng
2014-05-14 18:47 ` Dmitry Torokhov
1 sibling, 1 reply; 6+ messages in thread
From: Ping Cheng @ 2014-05-14 18:27 UTC (permalink / raw)
To: Jason Gerecke; +Cc: linux-input, Dmitry Torokhov
On Fri, May 9, 2014 at 6:30 PM, Jason Gerecke <killertofu@gmail.com> wrote:
> The Win8 version of the Panasonic CF-H2 includes a new Wacom device.
> The pen interface appears to use the same protocol as before, but the
> touch interface has been tweaked to send Win8-compatible reports.
>
> Signed-off-by: Jason Gerecke <killertofu@gmail.com>
> ---
> drivers/input/tablet/wacom_wac.c | 8 ++++++++
> drivers/input/tablet/wacom_wac.h | 1 +
> 2 files changed, 9 insertions(+)
>
> diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c
> index a4d8f1d..e4566c3 100644
> --- a/drivers/input/tablet/wacom_wac.c
> +++ b/drivers/input/tablet/wacom_wac.c
> @@ -1107,6 +1107,10 @@ 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 if (len == WACOM_PKGLEN_TPC1FG_B) {
> + prox = data[2] & 0x01;
> + x = le16_to_cpup((__le16 *)&data[3]);
> + y = le16_to_cpup((__le16 *)&data[5]);
Above two lines should use get_unaligned_le16() instead.
wacom_mt_touch() needs some cleanup too.
Except that, the whole patchset looks good to me.
Reviewed-by: Ping Cheng <pingc@wacom.com>
Ping
> } else {
> prox = data[1] & 0x01;
> x = le16_to_cpup((__le16 *)&data[2]);
> @@ -2298,6 +2302,9 @@ static const struct wacom_features wacom_features_0x10E =
> static const struct wacom_features wacom_features_0x10F =
> { "Wacom ISDv4 10F", WACOM_PKGLEN_MTTPC, 27760, 15694, 255,
> 0, MTTPC, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
> +static const struct wacom_features wacom_features_0x116 =
> + { "Wacom ISDv4 116", WACOM_PKGLEN_GRAPHIRE, 26202, 16325, 255,
> + 0, TABLETPCE, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
> static const struct wacom_features wacom_features_0x4001 =
> { "Wacom ISDv4 4001", WACOM_PKGLEN_MTTPC, 26202, 16325, 255,
> 0, MTTPC, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
> @@ -2512,6 +2519,7 @@ const struct usb_device_id wacom_ids[] = {
> { USB_DEVICE_WACOM(0x10D) },
> { USB_DEVICE_WACOM(0x10E) },
> { USB_DEVICE_WACOM(0x10F) },
> + { USB_DEVICE_WACOM(0x116) },
> { USB_DEVICE_WACOM(0x300) },
> { USB_DEVICE_WACOM(0x301) },
> { USB_DEVICE_DETAILED(0x302, USB_CLASS_HID, 0, 0) },
> diff --git a/drivers/input/tablet/wacom_wac.h b/drivers/input/tablet/wacom_wac.h
> index 9f947c3..adf73cb 100644
> --- a/drivers/input/tablet/wacom_wac.h
> +++ b/drivers/input/tablet/wacom_wac.h
> @@ -22,6 +22,7 @@
> #define WACOM_PKGLEN_BBFUN 9
> #define WACOM_PKGLEN_INTUOS 10
> #define WACOM_PKGLEN_TPC1FG 5
> +#define WACOM_PKGLEN_TPC1FG_B 10
> #define WACOM_PKGLEN_TPC2FG 14
> #define WACOM_PKGLEN_BBTOUCH 20
> #define WACOM_PKGLEN_BBTOUCH3 64
> --
> 1.9.2
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-input" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] Input: wacom: Add support for three new ISDv4 sensors
2014-05-10 1:30 ` [PATCH 2/2] Input: wacom: Add support for three new ISDv4 sensors Jason Gerecke
@ 2014-05-14 18:46 ` Dmitry Torokhov
2014-05-14 22:31 ` [PATCH v2] " Jason Gerecke
0 siblings, 1 reply; 6+ messages in thread
From: Dmitry Torokhov @ 2014-05-14 18:46 UTC (permalink / raw)
To: Jason Gerecke; +Cc: linux-input, pingc
On Fri, May 09, 2014 at 06:30:17PM -0700, Jason Gerecke wrote:
> This patch adds support for the 0x4004, 0x5000, and 0x5002 sensors found
> on what should be the Motion R12, Fujitsu Q704, and Fujitsu T904. These
> tablets use a new report ID (3) for their touch packets and a slightly
> different HID descriptor format, but are otherwise largely identical in
> protocol to the "MTTPC" tablets.
>
> Note:
> * The R12 uses its 0x4004 sensor for touch input only. A pen interface
> is not present in its HID descriptor, though its possible a 0x4004
> may be used for pen input by other tablet PCs in the future.
>
> * The 0x5002 sensor appears to use a new report ID (8) for its pen
> packets. The other sensors continue to use the traditional report
> ID (2).
>
> Signed-off-by: Jason Gerecke <killertofu@gmail.com>
Hmm, that does not apply to my next branch, could it be because I pulled
out a patch unifying some reports that Ping asked me to pull out?
Thanks.
--
Dmitry
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] Input: wacom: Add support for 0x116 sensor on Win8 Panasonic CF-H2
2014-05-14 18:27 ` [PATCH 1/2] Input: wacom: Add support for 0x116 sensor on Win8 Panasonic CF-H2 Ping Cheng
@ 2014-05-14 18:47 ` Dmitry Torokhov
0 siblings, 0 replies; 6+ messages in thread
From: Dmitry Torokhov @ 2014-05-14 18:47 UTC (permalink / raw)
To: Ping Cheng; +Cc: Jason Gerecke, linux-input
On Wed, May 14, 2014 at 11:27:27AM -0700, Ping Cheng wrote:
> On Fri, May 9, 2014 at 6:30 PM, Jason Gerecke <killertofu@gmail.com> wrote:
> > The Win8 version of the Panasonic CF-H2 includes a new Wacom device.
> > The pen interface appears to use the same protocol as before, but the
> > touch interface has been tweaked to send Win8-compatible reports.
> >
> > Signed-off-by: Jason Gerecke <killertofu@gmail.com>
> > ---
> > drivers/input/tablet/wacom_wac.c | 8 ++++++++
> > drivers/input/tablet/wacom_wac.h | 1 +
> > 2 files changed, 9 insertions(+)
> >
> > diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c
> > index a4d8f1d..e4566c3 100644
> > --- a/drivers/input/tablet/wacom_wac.c
> > +++ b/drivers/input/tablet/wacom_wac.c
> > @@ -1107,6 +1107,10 @@ 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 if (len == WACOM_PKGLEN_TPC1FG_B) {
> > + prox = data[2] & 0x01;
> > + x = le16_to_cpup((__le16 *)&data[3]);
> > + y = le16_to_cpup((__le16 *)&data[5]);
>
> Above two lines should use get_unaligned_le16() instead.
> wacom_mt_touch() needs some cleanup too.
>
> Except that, the whole patchset looks good to me.
>
> Reviewed-by: Ping Cheng <pingc@wacom.com>
I changed le16_to_cpup to get_unaligned_le16 locally and applied, thank
you.
--
Dmitry
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v2] Input: wacom: Add support for three new ISDv4 sensors
2014-05-14 18:46 ` Dmitry Torokhov
@ 2014-05-14 22:31 ` Jason Gerecke
0 siblings, 0 replies; 6+ messages in thread
From: Jason Gerecke @ 2014-05-14 22:31 UTC (permalink / raw)
To: linux-input, pingc, dmitry.torokhov; +Cc: Jason Gerecke
This patch adds support for the 0x4004, 0x5000, and 0x5002 sensors found
on what should be the Motion R12, Fujitsu Q704, and Fujitsu T904. These
tablets use a new report ID (3) for their touch packets and a slightly
different HID descriptor format, but are otherwise largely identical in
protocol to the "MTTPC" tablets.
Note:
* The R12 uses its 0x4004 sensor for touch input only. A pen interface
is not present in its HID descriptor, though its possible a 0x4004
may be used for pen input by other tablet PCs in the future.
* The 0x5002 sensor appears to use a new report ID (8) for its pen
packets. The other sensors continue to use the traditional report
ID (2).
Signed-off-by: Jason Gerecke <killertofu@gmail.com>
---
Changes from v1:
* None; rebased.
drivers/input/tablet/wacom_sys.c | 19 +++++++++++++++++++
drivers/input/tablet/wacom_wac.c | 20 +++++++++++++++++++-
drivers/input/tablet/wacom_wac.h | 3 +++
3 files changed, 41 insertions(+), 1 deletion(-)
diff --git a/drivers/input/tablet/wacom_sys.c b/drivers/input/tablet/wacom_sys.c
index b16ebef..0056a6d 100644
--- a/drivers/input/tablet/wacom_sys.c
+++ b/drivers/input/tablet/wacom_sys.c
@@ -364,6 +364,7 @@ static int wacom_parse_hid(struct usb_interface *intf,
break;
case MTTPC:
+ case MTTPC_B:
features->pktlen = WACOM_PKGLEN_MTTPC;
break;
@@ -395,6 +396,16 @@ static int wacom_parse_hid(struct usb_interface *intf,
i += 12;
break;
+ case MTTPC_B:
+ features->x_max =
+ get_unaligned_le16(&report[i + 3]);
+ features->x_phy =
+ get_unaligned_le16(&report[i + 6]);
+ features->unit = report[i - 5];
+ features->unitExpo = report[i - 3];
+ i += 9;
+ break;
+
default:
features->x_max =
get_unaligned_le16(&report[i + 3]);
@@ -447,6 +458,14 @@ static int wacom_parse_hid(struct usb_interface *intf,
i += 12;
break;
+ case MTTPC_B:
+ features->y_max =
+ get_unaligned_le16(&report[i + 3]);
+ features->y_phy =
+ get_unaligned_le16(&report[i + 6]);
+ i += 9;
+ break;
+
default:
features->y_max =
features->x_max;
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c
index 5baab92..1c779a6 100644
--- a/drivers/input/tablet/wacom_wac.c
+++ b/drivers/input/tablet/wacom_wac.c
@@ -1022,7 +1022,7 @@ static int wacom_mt_touch(struct wacom_wac *wacom)
int x_offset = 0;
/* MTTPC does not support Height and Width */
- if (wacom->features.type == MTTPC)
+ if (wacom->features.type == MTTPC || wacom->features.type == MTTPC_B)
x_offset = -4;
/*
@@ -1179,6 +1179,9 @@ static int wacom_tpc_irq(struct wacom_wac *wacom, size_t len)
case WACOM_PKGLEN_TPC2FG:
return wacom_tpc_mt_touch(wacom);
+ case WACOM_PKGLEN_PENABLED:
+ return wacom_tpc_pen(wacom);
+
default:
switch (data[0]) {
case WACOM_REPORT_TPC1FG:
@@ -1188,6 +1191,7 @@ static int wacom_tpc_irq(struct wacom_wac *wacom, size_t len)
return wacom_tpc_single_touch(wacom, len);
case WACOM_REPORT_TPCMT:
+ case WACOM_REPORT_TPCMT2:
return wacom_mt_touch(wacom);
case WACOM_REPORT_PENABLED:
@@ -1530,6 +1534,7 @@ void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len)
case TABLETPC2FG:
case MTSCREEN:
case MTTPC:
+ case MTTPC_B:
sync = wacom_tpc_irq(wacom_wac, len);
break;
@@ -1871,6 +1876,7 @@ int wacom_setup_input_capabilities(struct input_dev *input_dev,
case MTSCREEN:
case MTTPC:
+ case MTTPC_B:
case TABLETPC2FG:
if (features->device_type == BTN_TOOL_FINGER) {
unsigned int flags = INPUT_MT_DIRECT;
@@ -2308,6 +2314,15 @@ static const struct wacom_features wacom_features_0x116 =
static const struct wacom_features wacom_features_0x4001 =
{ "Wacom ISDv4 4001", WACOM_PKGLEN_MTTPC, 26202, 16325, 255,
0, MTTPC, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
+static const struct wacom_features wacom_features_0x4004 =
+ { "Wacom ISDv4 4004", WACOM_PKGLEN_MTTPC, 11060, 6220, 255,
+ 0, MTTPC_B, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
+static const struct wacom_features wacom_features_0x5000 =
+ { "Wacom ISDv4 5000", WACOM_PKGLEN_MTTPC, 27848, 15752, 1023,
+ 0, MTTPC_B, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
+static const struct wacom_features wacom_features_0x5002 =
+ { "Wacom ISDv4 5002", WACOM_PKGLEN_MTTPC, 29576, 16724, 1023,
+ 0, MTTPC_B, 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 };
@@ -2530,6 +2545,9 @@ const struct usb_device_id wacom_ids[] = {
{ USB_DEVICE_DETAILED(0x315, USB_CLASS_HID, 0, 0) },
{ USB_DEVICE_DETAILED(0x317, USB_CLASS_HID, 0, 0) },
{ USB_DEVICE_WACOM(0x4001) },
+ { USB_DEVICE_WACOM(0x4004) },
+ { USB_DEVICE_WACOM(0x5000) },
+ { USB_DEVICE_WACOM(0x5002) },
{ USB_DEVICE_WACOM(0x47) },
{ USB_DEVICE_WACOM(0xF4) },
{ USB_DEVICE_WACOM(0xF8) },
diff --git a/drivers/input/tablet/wacom_wac.h b/drivers/input/tablet/wacom_wac.h
index adf73cb..84013a7 100644
--- a/drivers/input/tablet/wacom_wac.h
+++ b/drivers/input/tablet/wacom_wac.h
@@ -31,6 +31,7 @@
#define WACOM_PKGLEN_MTOUCH 62
#define WACOM_PKGLEN_MTTPC 40
#define WACOM_PKGLEN_DTUS 68
+#define WACOM_PKGLEN_PENABLED 8
/* wacom data size per MT contact */
#define WACOM_BYTES_PER_MT_PACKET 11
@@ -53,6 +54,7 @@
#define WACOM_REPORT_TPC1FG 6
#define WACOM_REPORT_TPC2FG 13
#define WACOM_REPORT_TPCMT 13
+#define WACOM_REPORT_TPCMT2 3
#define WACOM_REPORT_TPCHID 15
#define WACOM_REPORT_TPCST 16
#define WACOM_REPORT_DTUS 17
@@ -106,6 +108,7 @@ enum {
TABLETPC2FG,
MTSCREEN,
MTTPC,
+ MTTPC_B,
MAX_TYPE
};
--
1.9.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-05-14 22:31 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-10 1:30 [PATCH 1/2] Input: wacom: Add support for 0x116 sensor on Win8 Panasonic CF-H2 Jason Gerecke
2014-05-10 1:30 ` [PATCH 2/2] Input: wacom: Add support for three new ISDv4 sensors Jason Gerecke
2014-05-14 18:46 ` Dmitry Torokhov
2014-05-14 22:31 ` [PATCH v2] " Jason Gerecke
2014-05-14 18:27 ` [PATCH 1/2] Input: wacom: Add support for 0x116 sensor on Win8 Panasonic CF-H2 Ping Cheng
2014-05-14 18:47 ` Dmitry Torokhov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).