input: wacom - retrieve maximum number of touch points
Subsystems (2)
PATCH 1/2 input: wacom - retrieve maximum number of touch points
Quoted 1 line
From the HID usage table when it is supported.
Tested-by Jason Gerecke <[email protected]>
Signed-off-by Chris Bagwell <[email protected]>
Signed-off-by Ping Cheng <[email protected]>
--- drivers/input/tablet/wacom_sys.c | 29 ++++++++++++++++++- drivers/input/tablet/wacom_wac.c | 59 +++++++++++++++++++++++--------------- drivers/input/tablet/wacom_wac.h | 1 + 3 files changed, 65 insertions(+), 24 deletions(-)
drivers/input/tablet/wacom_sys.c +28 -1
@@ -28,6 +28,7 @@#define HID_USAGE_Y_TILT 0x3e#define HID_USAGE_FINGER 0x22#define HID_USAGE_STYLUS 0x20 +#define HID_USAGE_CONTACTMAX 0x55#define HID_COLLECTION 0xa1#define HID_COLLECTION_LOGICAL 0x02#define HID_COLLECTION_END 0xc0
@@ -201,6 +202,27 @@ static int wacom_parse_logical_collection(unsigned char *report,return length; } +static void wacom_retrieve_report_data (struct usb_interface *intf, +struct wacom_features *features) +{ +int result =0 ; +unsigned char *rep_data; + + rep_data =kmalloc (2 ,GFP_KERNEL ); + +if (rep_data) { + + rep_data[0 ] =12 ; + result =wacom_get_report (intf,WAC_HID_FEATURE_REPORT , + rep_data[0 ], &rep_data,2 ,WAC_MSG_RETRIES ); + +if ((result >=0 ) && (rep_data[1 ] >2 )) + features->touch_max = rep_data[1 ]; + +kfree (rep_data); + } +} +/* * Interface Descriptor of wacom devices can be incomplete and * inconsistent so wacom_features table is used to store stylus
@@ -377,6 +399,11 @@ static int wacom_parse_hid(struct usb_interface *intf, pen =1 ; i++;break ; + +case HID_USAGE_CONTACTMAX : +wacom_retrieve_report_data (intf, features); + i++; +break ; }break ;
@@ -1085,7 +1112,7 @@ static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *i endpoint = &intf->cur_altsetting->endpoint[0 ].desc; -/* Retrieve the physical and logical size for OEM devices */ +/* Retrieve the physical and logical size for touch devices */ error =wacom_retrieve_hid_descriptor (intf, features);if (error) goto fail3;
drivers/input/tablet/wacom_wac.c +36 -23
142 lines not on this page · raw message
drivers/input/tablet/wacom_wac.h +1 -0
@@ -99,6 +99,7 @@ struct wacom_features {int pressure_fuzz;int distance_fuzz;unsigned quirks; +unsigned touch_max; };struct wacom_shared {
Signature · 1 line
1.7.5.4
Quoted 5 lines · Ping Cheng
From the HID usage table when it is supported.
Tested-by Jason Gerecke <[email protected]>Signed-off-by Chris Bagwell <[email protected]>Signed-off-by Ping Cheng <[email protected]>
Applied, thanks Ping.
Signature · 1 line
Dmitry