diff options
| author | Przemo Firszt <przemo@firszt.eu> | 2011-11-05 07:28:21 -0400 |
|---|---|---|
| committer | Jiri Kosina <jkosina@suse.cz> | 2011-11-13 15:32:46 -0500 |
| commit | f6b7efc162caed555264cd73cd00103701fddbc0 (patch) | |
| tree | 1431b1c1db84f1c1f3c485626f09100d3c612f0e | |
| parent | 30307c69d59b14723fbf8a524847b302388c702d (diff) | |
HID: wacom: Move parsing to a separate function
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>
| -rw-r--r-- | drivers/hid/hid-wacom.c | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/drivers/hid/hid-wacom.c b/drivers/hid/hid-wacom.c index 17bb88f782b6..db2322310486 100644 --- a/drivers/hid/hid-wacom.c +++ b/drivers/hid/hid-wacom.c | |||
| @@ -177,26 +177,13 @@ static ssize_t wacom_store_speed(struct device *dev, | |||
| 177 | static DEVICE_ATTR(speed, S_IRUGO | S_IWUSR | S_IWGRP, | 177 | static DEVICE_ATTR(speed, S_IRUGO | S_IWUSR | S_IWGRP, |
| 178 | wacom_show_speed, wacom_store_speed); | 178 | wacom_show_speed, wacom_store_speed); |
| 179 | 179 | ||
| 180 | static int wacom_raw_event(struct hid_device *hdev, struct hid_report *report, | 180 | static int wacom_gr_parse_report(struct hid_device *hdev, |
| 181 | u8 *raw_data, int size) | 181 | struct wacom_data *wdata, |
| 182 | struct input_dev *input, unsigned char *data) | ||
| 182 | { | 183 | { |
| 183 | struct wacom_data *wdata = hid_get_drvdata(hdev); | ||
| 184 | struct hid_input *hidinput; | ||
| 185 | struct input_dev *input; | ||
| 186 | unsigned char *data = (unsigned char *) raw_data; | ||
| 187 | int tool, x, y, rw; | 184 | int tool, x, y, rw; |
| 188 | 185 | ||
| 189 | if (!(hdev->claimed & HID_CLAIMED_INPUT)) | ||
| 190 | return 0; | ||
| 191 | |||
| 192 | tool = 0; | 186 | tool = 0; |
| 193 | hidinput = list_entry(hdev->inputs.next, struct hid_input, list); | ||
| 194 | input = hidinput->input; | ||
| 195 | |||
| 196 | /* Check if this is a tablet report */ | ||
| 197 | if (data[0] != 0x03) | ||
| 198 | return 0; | ||
| 199 | |||
| 200 | /* Get X & Y positions */ | 187 | /* Get X & Y positions */ |
| 201 | x = le16_to_cpu(*(__le16 *) &data[2]); | 188 | x = le16_to_cpu(*(__le16 *) &data[2]); |
| 202 | y = le16_to_cpu(*(__le16 *) &data[4]); | 189 | y = le16_to_cpu(*(__le16 *) &data[4]); |
| @@ -303,6 +290,26 @@ static int wacom_raw_event(struct hid_device *hdev, struct hid_report *report, | |||
| 303 | #endif | 290 | #endif |
| 304 | return 1; | 291 | return 1; |
| 305 | } | 292 | } |
| 293 | static int wacom_raw_event(struct hid_device *hdev, struct hid_report *report, | ||
| 294 | u8 *raw_data, int size) | ||
| 295 | { | ||
| 296 | struct wacom_data *wdata = hid_get_drvdata(hdev); | ||
| 297 | struct hid_input *hidinput; | ||
| 298 | struct input_dev *input; | ||
| 299 | unsigned char *data = (unsigned char *) raw_data; | ||
| 300 | |||
| 301 | if (!(hdev->claimed & HID_CLAIMED_INPUT)) | ||
| 302 | return 0; | ||
| 303 | |||
| 304 | hidinput = list_entry(hdev->inputs.next, struct hid_input, list); | ||
| 305 | input = hidinput->input; | ||
| 306 | |||
| 307 | /* Check if this is a tablet report */ | ||
| 308 | if (data[0] != 0x03) | ||
| 309 | return 0; | ||
| 310 | |||
| 311 | return wacom_gr_parse_report(hdev, wdata, input, data); | ||
| 312 | } | ||
| 306 | 313 | ||
| 307 | static int wacom_input_mapped(struct hid_device *hdev, struct hid_input *hi, | 314 | static int wacom_input_mapped(struct hid_device *hdev, struct hid_input *hi, |
| 308 | struct hid_field *field, struct hid_usage *usage, unsigned long **bit, | 315 | struct hid_field *field, struct hid_usage *usage, unsigned long **bit, |
