mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 17:08:10 +00:00
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>
This commit is contained in:
parent
30307c69d5
commit
f6b7efc162
1 changed files with 23 additions and 16 deletions
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue