Input: wacom - include and use linux/hid.h
authorBenjamin Tissoires <benjamin.tissoires@redhat.com>
Thu, 24 Jul 2014 19:52:00 +0000 (12:52 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Sat, 26 Jul 2014 01:53:49 +0000 (18:53 -0700)
The current wacom code redefines constants that are already in linux/hid.h
This patch includes the official implementation and use it accross the code.

There is a conflict with HID_USAGE and others at the same level:
- in the wacom.ko implementation, those are the #define regarding the
  value of the field in the report descriptor
- in the hid.h, those are bitmask
So add HDESC_ in their current definition.

Also, the struct hid_descriptor slightly differs from the linux/hid.h
point of view, so mark it as custom for this driver.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Reviewed-by: Jason Gerecke <killertofu@gmail.com>
Tested-by: Jason Gerecke <killertofu@gmail.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/tablet/wacom_sys.c

index dd0dbc250c94e63be65a3ebe12f6ba50c8bd3094..c34791e7f0b9df74a6fe6dd4695cee53d73bab87 100644 (file)
 
 #include "wacom_wac.h"
 #include "wacom.h"
+#include <linux/hid.h>
 
 /* defines to get HID report descriptor */
 #define HID_DEVICET_HID                (USB_TYPE_CLASS | 0x01)
 #define HID_DEVICET_REPORT     (USB_TYPE_CLASS | 0x02)
-#define HID_USAGE_UNDEFINED            0x00
-#define HID_USAGE_PAGE                 0x05
-#define HID_USAGE_PAGE_DIGITIZER       0x0d
-#define HID_USAGE_PAGE_DESKTOP         0x01
-#define HID_USAGE                      0x09
-#define HID_USAGE_X                    ((HID_USAGE_PAGE_DESKTOP << 16) | 0x30)
-#define HID_USAGE_Y                    ((HID_USAGE_PAGE_DESKTOP << 16) | 0x31)
-#define HID_USAGE_PRESSURE             ((HID_USAGE_PAGE_DIGITIZER << 16) | 0x30)
-#define HID_USAGE_X_TILT               ((HID_USAGE_PAGE_DIGITIZER << 16) | 0x3d)
-#define HID_USAGE_Y_TILT               ((HID_USAGE_PAGE_DIGITIZER << 16) | 0x3e)
-#define HID_USAGE_FINGER               ((HID_USAGE_PAGE_DIGITIZER << 16) | 0x22)
-#define HID_USAGE_STYLUS               ((HID_USAGE_PAGE_DIGITIZER << 16) | 0x20)
-#define HID_USAGE_CONTACTMAX           ((HID_USAGE_PAGE_DIGITIZER << 16) | 0x55)
-#define HID_COLLECTION                 0xa1
-#define HID_COLLECTION_LOGICAL         0x02
-#define HID_COLLECTION_END             0xc0
-
-struct hid_descriptor {
+#define HID_HDESC_USAGE_UNDEFINED      0x00
+#define HID_HDESC_USAGE_PAGE           0x05
+#define HID_HDESC_USAGE                        0x09
+#define HID_HDESC_COLLECTION           0xa1
+#define HID_HDESC_COLLECTION_LOGICAL   0x02
+#define HID_HDESC_COLLECTION_END       0xc0
+
+struct wac_hid_descriptor {
        struct usb_descriptor_header header;
        __le16   bcdHID;
        u8       bCountryCode;
@@ -301,7 +292,7 @@ static void wacom_retrieve_report_data(struct usb_interface *intf,
  * this after returning from this function.
  */
 static int wacom_parse_hid(struct usb_interface *intf,
-                          struct hid_descriptor *hid_desc,
+                          struct wac_hid_descriptor *hid_desc,
                           struct wacom_features *features)
 {
        struct usb_device *dev = interface_to_usbdev(intf);
@@ -334,14 +325,14 @@ static int wacom_parse_hid(struct usb_interface *intf,
        for (i = 0; i < hid_desc->wDescriptorLength; i++) {
 
                switch (report[i]) {
-               case HID_USAGE_PAGE:
+               case HID_HDESC_USAGE_PAGE:
                        page = report[i + 1];
                        i++;
                        break;
 
-               case HID_USAGE:
+               case HID_HDESC_USAGE:
                        switch (page << 16 | report[i + 1]) {
-                       case HID_USAGE_X:
+                       case HID_GD_X:
                                if (finger) {
                                        features->device_type = BTN_TOOL_FINGER;
                                        /* touch device at least supports one touch point */
@@ -420,7 +411,7 @@ static int wacom_parse_hid(struct usb_interface *intf,
                                }
                                break;
 
-                       case HID_USAGE_Y:
+                       case HID_GD_Y:
                                if (finger) {
                                        switch (features->type) {
                                        case TABLETPC2FG:
@@ -472,7 +463,7 @@ static int wacom_parse_hid(struct usb_interface *intf,
                                }
                                break;
 
-                       case HID_USAGE_FINGER:
+                       case HID_DG_FINGER:
                                finger = 1;
                                i++;
                                break;
@@ -482,19 +473,19 @@ static int wacom_parse_hid(struct usb_interface *intf,
                         * X/Y values and some cases of invalid Digitizer X/Y
                         * values commonly reported.
                         */
-                       case HID_USAGE_STYLUS:
+                       case HID_DG_STYLUS:
                                pen = 1;
                                i++;
                                break;
 
-                       case HID_USAGE_CONTACTMAX:
+                       case HID_DG_CONTACTMAX:
                                /* leave touch_max as is if predefined */
                                if (!features->touch_max)
                                        wacom_retrieve_report_data(intf, features);
                                i++;
                                break;
 
-                       case HID_USAGE_PRESSURE:
+                       case HID_DG_TIPPRESSURE:
                                if (pen) {
                                        features->pressure_max =
                                                get_unaligned_le16(&report[i + 3]);
@@ -504,15 +495,15 @@ static int wacom_parse_hid(struct usb_interface *intf,
                        }
                        break;
 
-               case HID_COLLECTION_END:
+               case HID_HDESC_COLLECTION_END:
                        /* reset UsagePage and Finger */
                        finger = page = 0;
                        break;
 
-               case HID_COLLECTION:
+               case HID_HDESC_COLLECTION:
                        i++;
                        switch (report[i]) {
-                       case HID_COLLECTION_LOGICAL:
+                       case HID_HDESC_COLLECTION_LOGICAL:
                                i += wacom_parse_logical_collection(&report[i],
                                                                    features);
                                break;
@@ -585,7 +576,7 @@ static int wacom_retrieve_hid_descriptor(struct usb_interface *intf,
 {
        int error = 0;
        struct usb_host_interface *interface = intf->cur_altsetting;
-       struct hid_descriptor *hid_desc;
+       struct wac_hid_descriptor *hid_desc;
 
        /* default features */
        features->device_type = BTN_TOOL_PEN;