Re: [PATCH 1/2] input : wacom - retrieve maximum number of touch points
From: Chris Bagwell <hidden>
Date: 2012-02-01 16:16:48
On Wed, Feb 1, 2012 at 5:53 AM, Maurus Cuelenaere [off-list ref] wrote:
Op 01-02-12 05:03, chris@cnpbagwell.com schreef:quoted
From: Ping Cheng<redacted> From the HID usage table when it is supported. Tested-by: Chris Bagwell<redacted> Signed-off-by: Chris Bagwell<redacted> Signed-off-by: Ping Cheng<redacted> --- These two patches were originally in a set of 4 from Ping. 2 of those 4 have already been committed to next branch. The change between this version and Ping's last version is making use of features to set the new touch_max value. The 2nd patch is unmodified. drivers/input/tablet/wacom_sys.c | 26 +++++++++++++++++- drivers/input/tablet/wacom_wac.c | 55 +++++++++++++++++++++++-------------- drivers/input/tablet/wacom_wac.h | 1 + 3 files changed, 60 insertions(+), 22 deletions(-)diff --git a/drivers/input/tablet/wacom_sys.cb/drivers/input/tablet/wacom_sys.c index c9588ee..5004a75 100644--- a/drivers/input/tablet/wacom_sys.c +++ b/drivers/input/tablet/wacom_sys.c@@ -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@@ -196,6 +197,24 @@ static int wacom_parse_logical_collection(unsignedchar *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) + return;Why not allocate this on the stack? This also can't leak memory (like you currently do).
Ah, thank you. That leak got introduced in v2 and I missed it. Agree with using stack. I think we can spare the 2 bytes. :) In v1, this function was inlined in another function that was doing malloc()'s for large message and it felt balanced there. Chris
quoted
+ + 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]; +} +-- Maurus Cuelenaere
-- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html