Thread (4 messages) 4 messages, 2 authors, 2012-02-01

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.c
b/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(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)
+               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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help