Skip to contentSkip to conversation

input - wacom : add two new devices (0xed and 0xef)

PATCH In review Ping Cheng 2 participants 4 messages May 12, 2012 – May 17, 2012

Subsystems (2)
lore
Share & tools
lore

Ping Cheng

author
#0 lore raw

PATCH 2/2 input - wacom : add two new devices (0xed and 0xef)

0xed supports pen and one finger touch; 0xef is pen only.

---
 drivers/input/tablet/wacom_wac.c |   13 ++++++++++++-
 drivers/input/tablet/wacom_wac.h |    2 ++
 2 files changed, 14 insertions(+), 1 deletion(-)
drivers/input/tablet/wacom_wac.c +12 -1
index c40dcb7..fd0cf4d3 100644
@@ -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) },
drivers/input/tablet/wacom_wac.h +2 -0
index 8708043..bd5d37b 100644
@@ -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
Signature · 1 line
1.7.9.5
#1 lore raw
Quoted 49 lines · Ping Cheng

0xed supports pen and one finger touch; 0xef is pen only.

---
 drivers/input/tablet/wacom_wac.c |   13 ++++++++++++- drivers/input/tablet/wacom_wac.h |    2 ++

 2 files changed, 14 insertions(+), 1 deletion(-)
drivers/input/tablet/wacom_wac.c +1 -1
index c40dcb7..fd0cf4d3 100644
@@ -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:

drivers/input/tablet/wacom_wac.c +0 -0
@@ -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);

drivers/input/tablet/wacom_wac.c +0 -0
@@ -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);

drivers/input/tablet/wacom_wac.c +0 -0
@@ -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 };

drivers/input/tablet/wacom_wac.c static const struct wacom_features wacom_features_0xE6 = · line 1897

Quoted 6 lines
drivers/input/tablet/wacom_wac.c +6 -0
+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 };

I can't find reason why you've created a TABLETPCE. I was looking for some sort of logic that hit's "if (type <= TABLETPC" that your trying to avoid on 0xED but I couldn't find it.

Is the type needed?

Chris

Quoted 35 lines

 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 };

drivers/input/tablet/wacom_wac.c +2 -0
@@ -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) },
drivers/input/tablet/wacom_wac.h +1 -0
index 8708043..bd5d37b 100644
@@ -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
--
1.7.9.5

Quoted 4 lines

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#2 lore raw
Quoted 45 lines · Chris Bagwell
Quoted 44 lines · Ping Cheng

0xed supports pen and one finger touch; 0xef is pen only.

---
 drivers/input/tablet/wacom_wac.c |   13 ++++++++++++- drivers/input/tablet/wacom_wac.h |    2 ++

 2 files changed, 14 insertions(+), 1 deletion(-)
drivers/input/tablet/wacom_wac.c +1 -1
index c40dcb7..fd0cf4d3 100644
@@ -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:

drivers/input/tablet/wacom_wac.c +0 -0
@@ -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);

drivers/input/tablet/wacom_wac.c +0 -0
@@ -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);

Quoted 15 lines

drivers/input/tablet/wacom_wac.c static const struct wacom_features wacom_features_0xE6 = · line 1897

Quoted 11 lines

               __set_bit(INPUT_PROP_DIRECT, input_dev->propbit);

drivers/input/tablet/wacom_wac.c +0 -0
@@ -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 };

drivers/input/tablet/wacom_wac.c +6 -0
+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 };

I can't find reason why you've created a TABLETPCE.  I was looking for some sort of logic that hit's "if (type <= TABLETPC" that your trying to avoid on 0xED but I couldn't find it.

In response to myself, I think I found the difference. A value of TABLETPC would avoid calling the Wacom PEN Packet mode on PEN device; which a lot of TPC avoid doing.

Just to be safe though, was it on purpose that 0xEF is a TABLETPC?

Chris

Quoted 40 lines

Is the type needed?

Chris

Quoted 35 lines

 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 };

drivers/input/tablet/wacom_wac.c +2 -0
@@ -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) },
drivers/input/tablet/wacom_wac.h +1 -0
index 8708043..bd5d37b 100644
@@ -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
--
1.7.9.5

Quoted 4 lines
Quoted 4 lines

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

author
#3 lore raw
Quoted 62 lines · Chris Bagwell
Quoted 45 lines · Chris Bagwell
Quoted 44 lines · Ping Cheng

0xed supports pen and one finger touch; 0xef is pen only.

---
 drivers/input/tablet/wacom_wac.c |   13 ++++++++++++- drivers/input/tablet/wacom_wac.h |    2 ++

 2 files changed, 14 insertions(+), 1 deletion(-)
drivers/input/tablet/wacom_wac.c +1 -1
index c40dcb7..fd0cf4d3 100644
@@ -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:

drivers/input/tablet/wacom_wac.c +0 -0
@@ -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);

drivers/input/tablet/wacom_wac.c +0 -0
@@ -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);

Quoted 15 lines

drivers/input/tablet/wacom_wac.c static const struct wacom_features wacom_features_0xE6 = · line 1897

Quoted 11 lines

               __set_bit(INPUT_PROP_DIRECT, input_dev->propbit);

drivers/input/tablet/wacom_wac.c +0 -0
@@ -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 };

drivers/input/tablet/wacom_wac.c +6 -0
+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 };

I can't find reason why you've created a TABLETPCE.  I was looking for some sort of logic that hit's "if (type <= TABLETPC" that your trying to avoid on 0xED but I couldn't find it.

Quoted 5 lines

In response to myself, I think I found the difference. A value of TABLETPC would avoid calling the Wacom PEN Packet mode on PEN device; which a lot of TPC avoid doing.

Just to be safe though, was it on purpose that 0xEF is a TABLETPC?

Yes, 0xEF is a pen only TPC while 0xED supports one finger touch. Thank you for reviewing the patchset.

Ping

Quoted 43 lines

Chris

Quoted 40 lines

Is the type needed?

Chris

Quoted 35 lines

 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 };

drivers/input/tablet/wacom_wac.c +2 -0
@@ -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) },
drivers/input/tablet/wacom_wac.h +1 -0
index 8708043..bd5d37b 100644
@@ -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
--
1.7.9.5

Quoted 4 lines
Quoted 4 lines
Quoted 4 lines

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html