@@ -134,7 +134,7 @@ static inline void wacom_schedule_work(struct wacom_wac *wacom_wac)
extern const struct usb_device_id wacom_ids[];
void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len);
-void wacom_setup_device_quirks(struct wacom_features *features);
+void wacom_setup_device_quirks(struct wacom_features *features, int product_id);
int wacom_setup_input_capabilities(struct input_dev *input_dev,
struct wacom_wac *wacom_wac);
#endif
@@ -1293,7 +1293,7 @@ static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *i
}
}
- wacom_setup_device_quirks(features);
+ wacom_setup_device_quirks(features, id->idProduct);
strlcpy(wacom_wac->name, features->name, sizeof(wacom_wac->name));
@@ -1397,7 +1397,7 @@ 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_features *features, int product_id)
{
/* touch device found but size is not defined. use default */
@@ -1422,6 +1422,14 @@ void wacom_setup_device_quirks(struct wacom_features *features)
features->quirks |= WACOM_QUIRK_BBTOUCH_LOWRES;
}
+ /* TPC93 is a 12" device, but the finger tool reports limits for a 13" screen */
+ if ( product_id == 0x93 && features->device_type == BTN_TOOL_FINGER) {
+ features->x_min = 176;
+ features->x_max = 3960;
+ features->y_min = 216;
+ features->y_max = 3900;
+ }
+
if (features->type == WIRELESS) {
/* monitor never has input and pen/touch have delayed create */
@@ -1450,9 +1458,9 @@ int wacom_setup_input_capabilities(struct input_dev *input_dev,
__set_bit(BTN_TOUCH, input_dev->keybit);
- input_set_abs_params(input_dev, ABS_X, 0, features->x_max,
+ input_set_abs_params(input_dev, ABS_X, features->x_min, features->x_max,
features->x_fuzz, 0);
- input_set_abs_params(input_dev, ABS_Y, 0, features->y_max,
+ input_set_abs_params(input_dev, ABS_Y, features->y_min, features->y_max,
features->y_fuzz, 0);
if (features->device_type == BTN_TOOL_PEN) {
@@ -114,6 +114,8 @@ struct wacom_features {
unsigned touch_max;
int oVid;
int oPid;
+ int x_min;
+ int y_min;
};
struct wacom_shared {