HID: wacom: Move parsing to a separate function
authorPrzemo Firszt <przemo@firszt.eu>
Sat, 5 Nov 2011 11:28:21 +0000 (11:28 +0000)
committerJiri Kosina <jkosina@suse.cz>
Sun, 13 Nov 2011 20:32:46 +0000 (21:32 +0100)
This patch doesn't change the way driver works. Parsing logic is now in a
separate function. It's a first step to add Intuos4 Wireless support to
hid-wacom driver.

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
Acked-by: Ping Cheng <pinglinux@gmail.com>
Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-wacom.c

index 17bb88f782b69b5cd0a44df7927742f412c6d1d0..db2322310486eeea925ff158eada0b8d50371e74 100644 (file)
@@ -177,26 +177,13 @@ static ssize_t wacom_store_speed(struct device *dev,
 static DEVICE_ATTR(speed, S_IRUGO | S_IWUSR | S_IWGRP,
                wacom_show_speed, wacom_store_speed);
 
-static int wacom_raw_event(struct hid_device *hdev, struct hid_report *report,
-               u8 *raw_data, int size)
+static int wacom_gr_parse_report(struct hid_device *hdev,
+                       struct wacom_data *wdata,
+                       struct input_dev *input, unsigned char *data)
 {
-       struct wacom_data *wdata = hid_get_drvdata(hdev);
-       struct hid_input *hidinput;
-       struct input_dev *input;
-       unsigned char *data = (unsigned char *) raw_data;
        int tool, x, y, rw;
 
-       if (!(hdev->claimed & HID_CLAIMED_INPUT))
-               return 0;
-
        tool = 0;
-       hidinput = list_entry(hdev->inputs.next, struct hid_input, list);
-       input = hidinput->input;
-
-       /* Check if this is a tablet report */
-       if (data[0] != 0x03)
-               return 0;
-
        /* Get X & Y positions */
        x = le16_to_cpu(*(__le16 *) &data[2]);
        y = le16_to_cpu(*(__le16 *) &data[4]);
@@ -303,6 +290,26 @@ static int wacom_raw_event(struct hid_device *hdev, struct hid_report *report,
 #endif
        return 1;
 }
+static int wacom_raw_event(struct hid_device *hdev, struct hid_report *report,
+               u8 *raw_data, int size)
+{
+       struct wacom_data *wdata = hid_get_drvdata(hdev);
+       struct hid_input *hidinput;
+       struct input_dev *input;
+       unsigned char *data = (unsigned char *) raw_data;
+
+       if (!(hdev->claimed & HID_CLAIMED_INPUT))
+               return 0;
+
+       hidinput = list_entry(hdev->inputs.next, struct hid_input, list);
+       input = hidinput->input;
+
+       /* Check if this is a tablet report */
+       if (data[0] != 0x03)
+               return 0;
+
+       return wacom_gr_parse_report(hdev, wdata, input, data);
+}
 
 static int wacom_input_mapped(struct hid_device *hdev, struct hid_input *hi,
        struct hid_field *field, struct hid_usage *usage, unsigned long **bit,