]> Pileus Git - ~andy/linux/commitdiff
Input: wacom - cleanup feature report for bamboos
authorChris Bagwell <chris@cnpbagwell.com>
Thu, 27 Oct 2011 05:24:22 +0000 (22:24 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 27 Oct 2011 05:35:50 +0000 (22:35 -0700)
Only the stylus interface on Bamboo's has a feature report that can
be used to set to wacom mode.  The touch interface only has 1 report mode
and will return errors for those get/sets requests.

The get request was always erroring out because it was not marked as
an input request. Only down side of error was needlessly resending the
set request 5 times.

Signed-off-by: Chris Bagwell <chris@cnpbagwell.com>
Acked-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
drivers/input/tablet/wacom_sys.c

index a205055a4c517d8a602e1d7d2b478d4342e783e6..4f354737a8332ad20879bcf91acfde270f96ed5e 100644 (file)
@@ -66,7 +66,8 @@ static int wacom_get_report(struct usb_interface *intf, u8 type, u8 id,
        do {
                retval = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0),
                                USB_REQ_GET_REPORT,
-                               USB_TYPE_CLASS | USB_RECIP_INTERFACE,
+                               USB_DIR_IN | USB_TYPE_CLASS |
+                               USB_RECIP_INTERFACE,
                                (type << 8) + id,
                                intf->altsetting[0].desc.bInterfaceNumber,
                                buf, size, 100);
@@ -362,7 +363,8 @@ static int wacom_query_tablet_data(struct usb_interface *intf, struct wacom_feat
                                                WAC_HID_FEATURE_REPORT,
                                                report_id, rep_data, 4, 1);
                } while ((error < 0 || rep_data[1] != 4) && limit++ < WAC_MSG_RETRIES);
-       } else if (features->type != TABLETPC) {
+       } else if (features->type != TABLETPC &&
+                  features->device_type == BTN_TOOL_PEN) {
                do {
                        rep_data[0] = 2;
                        rep_data[1] = 2;