|
@@ -2164,8 +2164,9 @@ static void wacom_setup_intuos(struct wacom_wac *wacom_wac)
|
|
|
input_set_abs_params(input_dev, ABS_THROTTLE, -1023, 1023, 0, 0);
|
|
|
}
|
|
|
|
|
|
-void wacom_setup_device_quirks(struct wacom_features *features)
|
|
|
+void wacom_setup_device_quirks(struct wacom *wacom)
|
|
|
{
|
|
|
+ struct wacom_features *features = &wacom->wacom_wac.features;
|
|
|
|
|
|
/* touch device found but size is not defined. use default */
|
|
|
if (features->device_type == BTN_TOOL_FINGER && !features->x_max) {
|
|
@@ -2173,6 +2174,33 @@ void wacom_setup_device_quirks(struct wacom_features *features)
|
|
|
features->y_max = 1023;
|
|
|
}
|
|
|
|
|
|
+ /*
|
|
|
+ * Intuos5/Pro and Bamboo 3rd gen have no useful data about its
|
|
|
+ * touch interface in its HID descriptor. If this is the touch
|
|
|
+ * interface (PacketSize of WACOM_PKGLEN_BBTOUCH3), override the
|
|
|
+ * tablet values.
|
|
|
+ */
|
|
|
+ if ((features->type >= INTUOS5S && features->type <= INTUOSHT) ||
|
|
|
+ (features->type == BAMBOO_PT)) {
|
|
|
+ if (features->pktlen == WACOM_PKGLEN_BBTOUCH3) {
|
|
|
+ features->device_type = BTN_TOOL_FINGER;
|
|
|
+
|
|
|
+ features->x_max = 4096;
|
|
|
+ features->y_max = 4096;
|
|
|
+ } else {
|
|
|
+ features->device_type = BTN_TOOL_PEN;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Same thing for Bamboo PAD
|
|
|
+ */
|
|
|
+ if (features->type == BAMBOO_PAD)
|
|
|
+ features->device_type = BTN_TOOL_FINGER;
|
|
|
+
|
|
|
+ if (wacom->hdev->bus == BUS_BLUETOOTH)
|
|
|
+ features->quirks |= WACOM_QUIRK_BATTERY;
|
|
|
+
|
|
|
/* quirk for bamboo touch with 2 low res touches */
|
|
|
if (features->type == BAMBOO_PT &&
|
|
|
features->pktlen == WACOM_PKGLEN_BBTOUCH) {
|