diff options
-rw-r--r-- | drivers/hid/Makefile | 2 | ||||
-rw-r--r-- | drivers/hid/hid-input-quirks.c | 49 | ||||
-rw-r--r-- | drivers/hid/hid-input.c | 11 | ||||
-rw-r--r-- | include/linux/hid.h | 3 |
4 files changed, 2 insertions, 63 deletions
diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile index 735c371ca02e..0141ff88008e 100644 --- a/drivers/hid/Makefile +++ b/drivers/hid/Makefile | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Makefile for the HID driver | 2 | # Makefile for the HID driver |
3 | # | 3 | # |
4 | hid-objs := hid-core.o hid-input.o hid-input-quirks.o | 4 | hid-objs := hid-core.o hid-input.o |
5 | 5 | ||
6 | obj-$(CONFIG_HID) += hid.o | 6 | obj-$(CONFIG_HID) += hid.o |
7 | 7 | ||
diff --git a/drivers/hid/hid-input-quirks.c b/drivers/hid/hid-input-quirks.c deleted file mode 100644 index 980e7456e260..000000000000 --- a/drivers/hid/hid-input-quirks.c +++ /dev/null | |||
@@ -1,49 +0,0 @@ | |||
1 | /* | ||
2 | * HID-input usage mapping quirks | ||
3 | * | ||
4 | * This is used to handle HID-input mappings for devices violating | ||
5 | * HUT 1.12 specification. | ||
6 | * | ||
7 | * Copyright (c) 2007-2008 Jiri Kosina | ||
8 | */ | ||
9 | |||
10 | /* | ||
11 | * This program is free software; you can redistribute it and/or modify it | ||
12 | * under the terms of the GNU General Public License as published by the Free | ||
13 | * Software Foundation; either version 2 of the License | ||
14 | */ | ||
15 | |||
16 | #include <linux/input.h> | ||
17 | #include <linux/hid.h> | ||
18 | |||
19 | static const struct hid_input_blacklist { | ||
20 | __u16 idVendor; | ||
21 | __u16 idProduct; | ||
22 | int (*quirk)(struct hid_usage *, struct hid_input *, unsigned long **, | ||
23 | int *); | ||
24 | } hid_input_blacklist[] = { | ||
25 | { 0, 0, NULL } | ||
26 | }; | ||
27 | |||
28 | int hidinput_mapping_quirks(struct hid_usage *usage, | ||
29 | struct hid_input *hi, unsigned long **bit, int *max) | ||
30 | { | ||
31 | struct hid_device *device = input_get_drvdata(hi->input); | ||
32 | int i = 0; | ||
33 | |||
34 | while (hid_input_blacklist[i].quirk) { | ||
35 | if (hid_input_blacklist[i].idVendor == device->vendor && | ||
36 | hid_input_blacklist[i].idProduct == device->product) | ||
37 | return hid_input_blacklist[i].quirk(usage, hi, bit, | ||
38 | max); | ||
39 | i++; | ||
40 | } | ||
41 | return 0; | ||
42 | } | ||
43 | |||
44 | int hidinput_event_quirks(struct hid_device *hid, struct hid_field *field, struct hid_usage *usage, __s32 value) | ||
45 | { | ||
46 | return 0; | ||
47 | } | ||
48 | |||
49 | |||
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c index 1d2d0827820c..0a68935c20b8 100644 --- a/drivers/hid/hid-input.c +++ b/drivers/hid/hid-input.c | |||
@@ -154,7 +154,7 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel | |||
154 | { | 154 | { |
155 | struct input_dev *input = hidinput->input; | 155 | struct input_dev *input = hidinput->input; |
156 | struct hid_device *device = input_get_drvdata(input); | 156 | struct hid_device *device = input_get_drvdata(input); |
157 | int max = 0, code, ret; | 157 | int max = 0, code; |
158 | unsigned long *bit = NULL; | 158 | unsigned long *bit = NULL; |
159 | 159 | ||
160 | field->hidinput = hidinput; | 160 | field->hidinput = hidinput; |
@@ -173,11 +173,6 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel | |||
173 | goto ignore; | 173 | goto ignore; |
174 | } | 174 | } |
175 | 175 | ||
176 | /* handle input mappings for quirky devices */ | ||
177 | ret = hidinput_mapping_quirks(usage, hidinput, &bit, &max); | ||
178 | if (ret) | ||
179 | goto mapped; | ||
180 | |||
181 | if (device->driver->input_mapping) { | 176 | if (device->driver->input_mapping) { |
182 | int ret = device->driver->input_mapping(device, hidinput, field, | 177 | int ret = device->driver->input_mapping(device, hidinput, field, |
183 | usage, &bit, &max); | 178 | usage, &bit, &max); |
@@ -590,10 +585,6 @@ void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct | |||
590 | if (!usage->type) | 585 | if (!usage->type) |
591 | return; | 586 | return; |
592 | 587 | ||
593 | /* handle input events for quirky devices */ | ||
594 | if (hidinput_event_quirks(hid, field, usage, value)) | ||
595 | return; | ||
596 | |||
597 | if (usage->hat_min < usage->hat_max || usage->hat_dir) { | 588 | if (usage->hat_min < usage->hat_max || usage->hat_dir) { |
598 | int hat_dir = usage->hat_dir; | 589 | int hat_dir = usage->hat_dir; |
599 | if (!hat_dir) | 590 | if (!hat_dir) |
diff --git a/include/linux/hid.h b/include/linux/hid.h index 5b47feecc101..0de5fe8894d9 100644 --- a/include/linux/hid.h +++ b/include/linux/hid.h | |||
@@ -617,9 +617,6 @@ extern void hidinput_disconnect(struct hid_device *); | |||
617 | int hid_set_field(struct hid_field *, unsigned, __s32); | 617 | int hid_set_field(struct hid_field *, unsigned, __s32); |
618 | int hid_input_report(struct hid_device *, int type, u8 *, int, int); | 618 | int hid_input_report(struct hid_device *, int type, u8 *, int, int); |
619 | int hidinput_find_field(struct hid_device *hid, unsigned int type, unsigned int code, struct hid_field **field); | 619 | int hidinput_find_field(struct hid_device *hid, unsigned int type, unsigned int code, struct hid_field **field); |
620 | int hidinput_mapping_quirks(struct hid_usage *, struct hid_input *, | ||
621 | unsigned long **, int *); | ||
622 | int hidinput_event_quirks(struct hid_device *, struct hid_field *, struct hid_usage *, __s32); | ||
623 | void hid_output_report(struct hid_report *report, __u8 *data); | 620 | void hid_output_report(struct hid_report *report, __u8 *data); |
624 | struct hid_device *hid_allocate_device(void); | 621 | struct hid_device *hid_allocate_device(void); |
625 | int hid_parse_report(struct hid_device *hid, __u8 *start, unsigned size); | 622 | int hid_parse_report(struct hid_device *hid, __u8 *start, unsigned size); |