aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/hid/wacom_sys.c24
-rw-r--r--drivers/hid/wacom_wac.c18
-rw-r--r--drivers/hid/wacom_wac.h9
3 files changed, 19 insertions, 32 deletions
diff --git a/drivers/hid/wacom_sys.c b/drivers/hid/wacom_sys.c
index 353fe476be26..1b00d8d4466c 100644
--- a/drivers/hid/wacom_sys.c
+++ b/drivers/hid/wacom_sys.c
@@ -1521,19 +1521,17 @@ static int wacom_probe(struct hid_device *hdev,
1521 snprintf(wacom_wac->pad_name, sizeof(wacom_wac->pad_name), 1521 snprintf(wacom_wac->pad_name, sizeof(wacom_wac->pad_name),
1522 "%s Pad", features->name); 1522 "%s Pad", features->name);
1523 1523
1524 if (features->quirks & WACOM_QUIRK_MULTI_INPUT) { 1524 /* Append the device type to the name */
1525 /* Append the device type to the name */ 1525 if (features->device_type != BTN_TOOL_FINGER)
1526 if (features->device_type != BTN_TOOL_FINGER) 1526 strlcat(wacom_wac->name, " Pen", WACOM_NAME_MAX);
1527 strlcat(wacom_wac->name, " Pen", WACOM_NAME_MAX); 1527 else if (features->touch_max)
1528 else if (features->touch_max) 1528 strlcat(wacom_wac->name, " Finger", WACOM_NAME_MAX);
1529 strlcat(wacom_wac->name, " Finger", WACOM_NAME_MAX); 1529 else
1530 else 1530 strlcat(wacom_wac->name, " Pad", WACOM_NAME_MAX);
1531 strlcat(wacom_wac->name, " Pad", WACOM_NAME_MAX); 1531
1532 1532 error = wacom_add_shared_data(hdev);
1533 error = wacom_add_shared_data(hdev); 1533 if (error)
1534 if (error) 1534 goto fail_shared_data;
1535 goto fail_shared_data;
1536 }
1537 1535
1538 if (!(features->quirks & WACOM_QUIRK_MONITOR) && 1536 if (!(features->quirks & WACOM_QUIRK_MONITOR) &&
1539 (features->quirks & WACOM_QUIRK_BATTERY)) { 1537 (features->quirks & WACOM_QUIRK_BATTERY)) {
diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c
index fa0578ecd7a1..221443710aed 100644
--- a/drivers/hid/wacom_wac.c
+++ b/drivers/hid/wacom_wac.c
@@ -581,12 +581,9 @@ static int wacom_intuos_inout(struct wacom_wac *wacom)
581 (features->type == CINTIQ && !(data[1] & 0x40))) 581 (features->type == CINTIQ && !(data[1] & 0x40)))
582 return 1; 582 return 1;
583 583
584 if (wacom->shared) { 584 wacom->shared->stylus_in_proximity = true;
585 wacom->shared->stylus_in_proximity = true; 585 if (wacom->shared->touch_down)
586 586 return 1;
587 if (wacom->shared->touch_down)
588 return 1;
589 }
590 587
591 /* in Range while exiting */ 588 /* in Range while exiting */
592 if (((data[1] & 0xfe) == 0x20) && wacom->reporting_data) { 589 if (((data[1] & 0xfe) == 0x20) && wacom->reporting_data) {
@@ -598,8 +595,7 @@ static int wacom_intuos_inout(struct wacom_wac *wacom)
598 595
599 /* Exit report */ 596 /* Exit report */
600 if ((data[1] & 0xfe) == 0x80) { 597 if ((data[1] & 0xfe) == 0x80) {
601 if (features->quirks & WACOM_QUIRK_MULTI_INPUT) 598 wacom->shared->stylus_in_proximity = false;
602 wacom->shared->stylus_in_proximity = false;
603 wacom->reporting_data = false; 599 wacom->reporting_data = false;
604 600
605 /* don't report exit if we don't know the ID */ 601 /* don't report exit if we don't know the ID */
@@ -2197,12 +2193,6 @@ void wacom_setup_device_quirks(struct wacom_features *features)
2197 features->y_max = 1023; 2193 features->y_max = 1023;
2198 } 2194 }
2199 2195
2200 /* these device have multiple inputs */
2201 if (features->type >= WIRELESS ||
2202 (features->type >= INTUOS5S && features->type <= INTUOSHT) ||
2203 (features->oVid && features->oPid))
2204 features->quirks |= WACOM_QUIRK_MULTI_INPUT;
2205
2206 /* quirk for bamboo touch with 2 low res touches */ 2196 /* quirk for bamboo touch with 2 low res touches */
2207 if (features->type == BAMBOO_PT && 2197 if (features->type == BAMBOO_PT &&
2208 features->pktlen == WACOM_PKGLEN_BBTOUCH) { 2198 features->pktlen == WACOM_PKGLEN_BBTOUCH) {
diff --git a/drivers/hid/wacom_wac.h b/drivers/hid/wacom_wac.h
index 1c7d8931f1fa..4700ac994a3b 100644
--- a/drivers/hid/wacom_wac.h
+++ b/drivers/hid/wacom_wac.h
@@ -73,11 +73,10 @@
73#define WACOM_REPORT_BPAD_TOUCH 16 73#define WACOM_REPORT_BPAD_TOUCH 16
74 74
75/* device quirks */ 75/* device quirks */
76#define WACOM_QUIRK_MULTI_INPUT 0x0001 76#define WACOM_QUIRK_BBTOUCH_LOWRES 0x0001
77#define WACOM_QUIRK_BBTOUCH_LOWRES 0x0002 77#define WACOM_QUIRK_NO_INPUT 0x0002
78#define WACOM_QUIRK_NO_INPUT 0x0004 78#define WACOM_QUIRK_MONITOR 0x0004
79#define WACOM_QUIRK_MONITOR 0x0008 79#define WACOM_QUIRK_BATTERY 0x0008
80#define WACOM_QUIRK_BATTERY 0x0010
81 80
82#define WACOM_PEN_FIELD(f) (((f)->logical == HID_DG_STYLUS) || \ 81#define WACOM_PEN_FIELD(f) (((f)->logical == HID_DG_STYLUS) || \
83 ((f)->physical == HID_DG_STYLUS) || \ 82 ((f)->physical == HID_DG_STYLUS) || \