diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-22 16:43:46 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-22 16:43:46 -0400 |
commit | 0d07a15bdb5a4ea6271b6e874d307c48151ef546 (patch) | |
tree | cd91d121f71fea110a87cfcc694fc2b312e912bf /include/linux | |
parent | 62429f434091586d54b37b8dd46076e7c08b27b9 (diff) | |
parent | efa0f16b0d0e87ffbef311785fed0815b0240f46 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
HID: Suppress hidinput for Samsung IR control
HID: remove 60x GTCO devices from blacklist
HID: export headers properly
HID: WiseGroup 866 Dual Joypad needs output reports quirk
HID: ThrustMaster FF driver is no longer experimental
HID: Logitech diNovo Mini pad support
HID: fix race between open() and disconnect() in usbhid
HID: make hid_input_field and usbhid_modify_dquirk static
HID: pass numbered reports properly to hidraw
HID: fix misplaced rdesc quirk
HID: force feedback driver for Logitech Rumblepad 2
HID: move wait from hid to usbhid
HID: make function from dbg_hid
HID: fix sparse warnings
HID: only dump report traffic with debug level 2
HID: patch to add NOGET for DMI/Acomdata
HID: Sunplus Wireless Desktop needs report descriptor fixup
HID: quirk for MS Wireless Desktop Receiver (model 1028)
HID: fixup fullspeed interval on highspeed Afatech DVB-T IR kbd
HID: fix build failure in hiddev_ioctl with gcc 3.2
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/Kbuild | 2 | ||||
-rw-r--r-- | include/linux/hid.h | 17 | ||||
-rw-r--r-- | include/linux/hidraw.h | 1 |
3 files changed, 14 insertions, 6 deletions
diff --git a/include/linux/Kbuild b/include/linux/Kbuild index 34624835d90f..97a88b2b0c8e 100644 --- a/include/linux/Kbuild +++ b/include/linux/Kbuild | |||
@@ -211,7 +211,9 @@ unifdef-y += hdlcdrv.h | |||
211 | unifdef-y += hdlc.h | 211 | unifdef-y += hdlc.h |
212 | unifdef-y += hdreg.h | 212 | unifdef-y += hdreg.h |
213 | unifdef-y += hdsmart.h | 213 | unifdef-y += hdsmart.h |
214 | unifdef-y += hid.h | ||
214 | unifdef-y += hiddev.h | 215 | unifdef-y += hiddev.h |
216 | unifdef-y += hidraw.h | ||
215 | unifdef-y += hpet.h | 217 | unifdef-y += hpet.h |
216 | unifdef-y += i2c.h | 218 | unifdef-y += i2c.h |
217 | unifdef-y += i2c-dev.h | 219 | unifdef-y += i2c-dev.h |
diff --git a/include/linux/hid.h b/include/linux/hid.h index 74ff57596eb1..d951ec411241 100644 --- a/include/linux/hid.h +++ b/include/linux/hid.h | |||
@@ -284,6 +284,7 @@ struct hid_item { | |||
284 | #define HID_QUIRK_2WHEEL_MOUSE_HACK_B8 0x02000000 | 284 | #define HID_QUIRK_2WHEEL_MOUSE_HACK_B8 0x02000000 |
285 | #define HID_QUIRK_HWHEEL_WHEEL_INVERT 0x04000000 | 285 | #define HID_QUIRK_HWHEEL_WHEEL_INVERT 0x04000000 |
286 | #define HID_QUIRK_MICROSOFT_KEYS 0x08000000 | 286 | #define HID_QUIRK_MICROSOFT_KEYS 0x08000000 |
287 | #define HID_QUIRK_FULLSPEED_INTERVAL 0x10000000 | ||
287 | 288 | ||
288 | /* | 289 | /* |
289 | * Separate quirks for runtime report descriptor fixup | 290 | * Separate quirks for runtime report descriptor fixup |
@@ -296,6 +297,8 @@ struct hid_item { | |||
296 | #define HID_QUIRK_RDESC_MACBOOK_JIS 0x00000010 | 297 | #define HID_QUIRK_RDESC_MACBOOK_JIS 0x00000010 |
297 | #define HID_QUIRK_RDESC_BUTTON_CONSUMER 0x00000020 | 298 | #define HID_QUIRK_RDESC_BUTTON_CONSUMER 0x00000020 |
298 | #define HID_QUIRK_RDESC_SAMSUNG_REMOTE 0x00000040 | 299 | #define HID_QUIRK_RDESC_SAMSUNG_REMOTE 0x00000040 |
300 | #define HID_QUIRK_RDESC_MICROSOFT_RECV_1028 0x00000080 | ||
301 | #define HID_QUIRK_RDESC_SUNPLUS_WDESKTOP 0x00000100 | ||
299 | 302 | ||
300 | /* | 303 | /* |
301 | * This is the global environment of the parser. This information is | 304 | * This is the global environment of the parser. This information is |
@@ -320,7 +323,7 @@ struct hid_global { | |||
320 | * This is the local environment. It is persistent up the next main-item. | 323 | * This is the local environment. It is persistent up the next main-item. |
321 | */ | 324 | */ |
322 | 325 | ||
323 | #define HID_MAX_USAGES 8192 | 326 | #define HID_MAX_USAGES 12288 |
324 | #define HID_DEFAULT_NUM_COLLECTIONS 16 | 327 | #define HID_DEFAULT_NUM_COLLECTIONS 16 |
325 | 328 | ||
326 | struct hid_local { | 329 | struct hid_local { |
@@ -421,6 +424,7 @@ struct hid_control_fifo { | |||
421 | #define HID_RESET_PENDING 4 | 424 | #define HID_RESET_PENDING 4 |
422 | #define HID_SUSPENDED 5 | 425 | #define HID_SUSPENDED 5 |
423 | #define HID_CLEAR_HALT 6 | 426 | #define HID_CLEAR_HALT 6 |
427 | #define HID_DISCONNECTED 7 | ||
424 | 428 | ||
425 | struct hid_input { | 429 | struct hid_input { |
426 | struct list_head list; | 430 | struct list_head list; |
@@ -452,8 +456,6 @@ struct hid_device { /* device report descriptor */ | |||
452 | void *hidraw; | 456 | void *hidraw; |
453 | int minor; /* Hiddev minor number */ | 457 | int minor; /* Hiddev minor number */ |
454 | 458 | ||
455 | wait_queue_head_t wait; /* For sleeping */ | ||
456 | |||
457 | int open; /* is the device open by anyone? */ | 459 | int open; /* is the device open by anyone? */ |
458 | char name[128]; /* Device name */ | 460 | char name[128]; /* Device name */ |
459 | char phys[64]; /* Device physical location */ | 461 | char phys[64]; /* Device physical location */ |
@@ -530,14 +532,12 @@ int hidinput_find_field(struct hid_device *hid, unsigned int type, unsigned int | |||
530 | int hidinput_mapping_quirks(struct hid_usage *, struct input_dev *, unsigned long **, int *); | 532 | int hidinput_mapping_quirks(struct hid_usage *, struct input_dev *, unsigned long **, int *); |
531 | int hidinput_event_quirks(struct hid_device *, struct hid_field *, struct hid_usage *, __s32); | 533 | int hidinput_event_quirks(struct hid_device *, struct hid_field *, struct hid_usage *, __s32); |
532 | int hidinput_apple_event(struct hid_device *, struct input_dev *, struct hid_usage *, __s32); | 534 | int hidinput_apple_event(struct hid_device *, struct input_dev *, struct hid_usage *, __s32); |
533 | void hid_input_field(struct hid_device *hid, struct hid_field *field, __u8 *data, int interrupt); | ||
534 | void hid_output_report(struct hid_report *report, __u8 *data); | 535 | void hid_output_report(struct hid_report *report, __u8 *data); |
535 | void hid_free_device(struct hid_device *device); | 536 | void hid_free_device(struct hid_device *device); |
536 | struct hid_device *hid_parse_report(__u8 *start, unsigned size); | 537 | struct hid_device *hid_parse_report(__u8 *start, unsigned size); |
537 | 538 | ||
538 | /* HID quirks API */ | 539 | /* HID quirks API */ |
539 | u32 usbhid_lookup_quirk(const u16 idVendor, const u16 idProduct); | 540 | u32 usbhid_lookup_quirk(const u16 idVendor, const u16 idProduct); |
540 | int usbhid_modify_dquirk(const u16 idVendor, const u16 idProduct, const u32 quirks); | ||
541 | int usbhid_quirks_init(char **quirks_param); | 541 | int usbhid_quirks_init(char **quirks_param); |
542 | void usbhid_quirks_exit(void); | 542 | void usbhid_quirks_exit(void); |
543 | void usbhid_fixup_report_descriptor(const u16, const u16, char *, unsigned, char **); | 543 | void usbhid_fixup_report_descriptor(const u16, const u16, char *, unsigned, char **); |
@@ -546,6 +546,7 @@ void usbhid_fixup_report_descriptor(const u16, const u16, char *, unsigned, char | |||
546 | int hid_ff_init(struct hid_device *hid); | 546 | int hid_ff_init(struct hid_device *hid); |
547 | 547 | ||
548 | int hid_lgff_init(struct hid_device *hid); | 548 | int hid_lgff_init(struct hid_device *hid); |
549 | int hid_lg2ff_init(struct hid_device *hid); | ||
549 | int hid_plff_init(struct hid_device *hid); | 550 | int hid_plff_init(struct hid_device *hid); |
550 | int hid_tmff_init(struct hid_device *hid); | 551 | int hid_tmff_init(struct hid_device *hid); |
551 | int hid_zpff_init(struct hid_device *hid); | 552 | int hid_zpff_init(struct hid_device *hid); |
@@ -566,7 +567,11 @@ static inline int hid_ff_init(struct hid_device *hid) { return -1; } | |||
566 | #define dbg_hid_line(format, arg...) if (hid_debug) \ | 567 | #define dbg_hid_line(format, arg...) if (hid_debug) \ |
567 | printk(format, ## arg) | 568 | printk(format, ## arg) |
568 | #else | 569 | #else |
569 | #define dbg_hid(format, arg...) do {} while (0) | 570 | static inline int __attribute__((format(printf, 1, 2))) |
571 | dbg_hid(const char *fmt, ...) | ||
572 | { | ||
573 | return 0; | ||
574 | } | ||
570 | #define dbg_hid_line dbg_hid | 575 | #define dbg_hid_line dbg_hid |
571 | #endif | 576 | #endif |
572 | 577 | ||
diff --git a/include/linux/hidraw.h b/include/linux/hidraw.h index 0536f299f7ff..dbb5c8c374f0 100644 --- a/include/linux/hidraw.h +++ b/include/linux/hidraw.h | |||
@@ -16,6 +16,7 @@ | |||
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/hid.h> | 18 | #include <linux/hid.h> |
19 | #include <linux/types.h> | ||
19 | 20 | ||
20 | struct hidraw_report_descriptor { | 21 | struct hidraw_report_descriptor { |
21 | __u32 size; | 22 | __u32 size; |