diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-21 20:41:38 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-21 20:41:38 -0500 |
| commit | 48a732dfaa77a4dfec803aa8f248373998704f76 (patch) | |
| tree | b8ea89d3f48bc82fcc1b14d8cd356241e7ef2d37 /include/linux | |
| parent | 9afa3195b96da7d2320ec44d19fbfbded7a15571 (diff) | |
| parent | 0d69a3c731e120b05b7da9fb976830475a3fbc01 (diff) | |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
Pull HID subsystem updates from Jiri Kosina:
"HID subsystem and drivers update. Highlights:
- new support of a group of Win7/Win8 multitouch devices, from
Benjamin Tissoires
- fix for compat interface brokenness in uhid, from Dmitry Torokhov
- conversion of drivers to use hid_driver helper, by H Hartley
Sweeten
- HID over I2C transport received ACPI enumeration support, written
by Mika Westerberg
- there is an ongoing effort to make HID sensor hubs independent of
USB transport. The first self-contained part of this work is
provided here, done by Mika Westerberg
- a few smaller fixes here and there, support for a couple new
devices added"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (43 commits)
HID: Correct Logitech order in hid-ids.h
HID: LG4FF: Remove unnecessary deadzone code
HID: LG: Prevent the Logitech Gaming Wheels deadzone
HID: LG: Fix detection of Logitech Speed Force Wireless (WiiWheel)
HID: LG: Add support for Logitech Momo Force (Red) Wheel
HID: hidraw: print message when succesfully initialized
HID: logitech: split accel, brake for Driving Force wheel
HID: logitech: add report descriptor for Driving Force wheel
HID: add ThingM blink(1) USB RGB LED support
HID: uhid: make creating devices work on 64/32 systems
HID: wiimote: fix nunchuck button parser
HID: blacklist Velleman data acquisition boards
HID: sensor-hub: don't limit the driver only to USB bus
HID: sensor-hub: get rid of unused sensor_hub_grabbed_usages[] table
HID: extend autodetect to handle I2C sensors as well
HID: ntrig: use input_configured() callback to set the name
HID: multitouch: do not use pointers towards hid-core
HID: add missing GENERIC_HARDIRQ dependency
HID: multitouch: make MT_CLS_ALWAYS_TRUE the new default class
HID: multitouch: fix protocol for Elo panels
...
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/hid.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/include/linux/hid.h b/include/linux/hid.h index 7330a0fef0c0..e14b465b1146 100644 --- a/include/linux/hid.h +++ b/include/linux/hid.h | |||
| @@ -589,6 +589,7 @@ struct hid_usage_id { | |||
| 589 | * @raw_event: if report in report_table, this hook is called (NULL means nop) | 589 | * @raw_event: if report in report_table, this hook is called (NULL means nop) |
| 590 | * @usage_table: on which events to call event (NULL means all) | 590 | * @usage_table: on which events to call event (NULL means all) |
| 591 | * @event: if usage in usage_table, this hook is called (NULL means nop) | 591 | * @event: if usage in usage_table, this hook is called (NULL means nop) |
| 592 | * @report: this hook is called after parsing a report (NULL means nop) | ||
| 592 | * @report_fixup: called before report descriptor parsing (NULL means nop) | 593 | * @report_fixup: called before report descriptor parsing (NULL means nop) |
| 593 | * @input_mapping: invoked on input registering before mapping an usage | 594 | * @input_mapping: invoked on input registering before mapping an usage |
| 594 | * @input_mapped: invoked on input registering after mapping an usage | 595 | * @input_mapped: invoked on input registering after mapping an usage |
| @@ -627,6 +628,7 @@ struct hid_driver { | |||
| 627 | const struct hid_usage_id *usage_table; | 628 | const struct hid_usage_id *usage_table; |
| 628 | int (*event)(struct hid_device *hdev, struct hid_field *field, | 629 | int (*event)(struct hid_device *hdev, struct hid_field *field, |
| 629 | struct hid_usage *usage, __s32 value); | 630 | struct hid_usage *usage, __s32 value); |
| 631 | void (*report)(struct hid_device *hdev, struct hid_report *report); | ||
| 630 | 632 | ||
| 631 | __u8 *(*report_fixup)(struct hid_device *hdev, __u8 *buf, | 633 | __u8 *(*report_fixup)(struct hid_device *hdev, __u8 *buf, |
| 632 | unsigned int *size); | 634 | unsigned int *size); |
| @@ -700,6 +702,18 @@ extern int __must_check __hid_register_driver(struct hid_driver *, | |||
| 700 | 702 | ||
| 701 | extern void hid_unregister_driver(struct hid_driver *); | 703 | extern void hid_unregister_driver(struct hid_driver *); |
| 702 | 704 | ||
| 705 | /** | ||
| 706 | * module_hid_driver() - Helper macro for registering a HID driver | ||
| 707 | * @__hid_driver: hid_driver struct | ||
| 708 | * | ||
| 709 | * Helper macro for HID drivers which do not do anything special in module | ||
| 710 | * init/exit. This eliminates a lot of boilerplate. Each module may only | ||
| 711 | * use this macro once, and calling it replaces module_init() and module_exit() | ||
| 712 | */ | ||
| 713 | #define module_hid_driver(__hid_driver) \ | ||
| 714 | module_driver(__hid_driver, hid_register_driver, \ | ||
| 715 | hid_unregister_driver) | ||
| 716 | |||
| 703 | extern void hidinput_hid_event(struct hid_device *, struct hid_field *, struct hid_usage *, __s32); | 717 | extern void hidinput_hid_event(struct hid_device *, struct hid_field *, struct hid_usage *, __s32); |
| 704 | extern void hidinput_report_event(struct hid_device *hid, struct hid_report *report); | 718 | extern void hidinput_report_event(struct hid_device *hid, struct hid_report *report); |
| 705 | extern int hidinput_connect(struct hid_device *hid, unsigned int force); | 719 | extern int hidinput_connect(struct hid_device *hid, unsigned int force); |
| @@ -872,9 +886,6 @@ static inline int hid_hw_power(struct hid_device *hdev, int level) | |||
| 872 | int hid_report_raw_event(struct hid_device *hid, int type, u8 *data, int size, | 886 | int hid_report_raw_event(struct hid_device *hid, int type, u8 *data, int size, |
| 873 | int interrupt); | 887 | int interrupt); |
| 874 | 888 | ||
| 875 | extern int hid_generic_init(void); | ||
| 876 | extern void hid_generic_exit(void); | ||
| 877 | |||
| 878 | /* HID quirks API */ | 889 | /* HID quirks API */ |
| 879 | u32 usbhid_lookup_quirk(const u16 idVendor, const u16 idProduct); | 890 | u32 usbhid_lookup_quirk(const u16 idVendor, const u16 idProduct); |
| 880 | int usbhid_quirks_init(char **quirks_param); | 891 | int usbhid_quirks_init(char **quirks_param); |
