diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/hid-debug.h | 48 | ||||
| -rw-r--r-- | include/linux/hid.h | 22 |
2 files changed, 42 insertions, 28 deletions
diff --git a/include/linux/hid-debug.h b/include/linux/hid-debug.h index 50d568ec178a..53744fa1c8b7 100644 --- a/include/linux/hid-debug.h +++ b/include/linux/hid-debug.h | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | #define __HID_DEBUG_H | 2 | #define __HID_DEBUG_H |
| 3 | 3 | ||
| 4 | /* | 4 | /* |
| 5 | * Copyright (c) 2007 Jiri Kosina | 5 | * Copyright (c) 2007-2009 Jiri Kosina |
| 6 | */ | 6 | */ |
| 7 | 7 | ||
| 8 | /* | 8 | /* |
| @@ -22,24 +22,44 @@ | |||
| 22 | * | 22 | * |
| 23 | */ | 23 | */ |
| 24 | 24 | ||
| 25 | #ifdef CONFIG_HID_DEBUG | 25 | #define HID_DEBUG_BUFSIZE 512 |
| 26 | 26 | ||
| 27 | void hid_dump_input(struct hid_usage *, __s32); | 27 | #ifdef CONFIG_DEBUG_FS |
| 28 | void hid_dump_device(struct hid_device *); | 28 | |
| 29 | void hid_dump_field(struct hid_field *, int); | 29 | void hid_dump_input(struct hid_device *, struct hid_usage *, __s32); |
| 30 | void hid_resolv_usage(unsigned); | 30 | void hid_dump_device(struct hid_device *, struct seq_file *); |
| 31 | void hid_resolv_event(__u8, __u16); | 31 | void hid_dump_field(struct hid_field *, int, struct seq_file *); |
| 32 | char *hid_resolv_usage(unsigned, struct seq_file *); | ||
| 33 | void hid_debug_register(struct hid_device *, const char *); | ||
| 34 | void hid_debug_unregister(struct hid_device *); | ||
| 35 | void hid_debug_init(void); | ||
| 36 | void hid_debug_exit(void); | ||
| 37 | void hid_debug_event(struct hid_device *, char *); | ||
| 32 | 38 | ||
| 33 | #else | ||
| 34 | 39 | ||
| 35 | #define hid_dump_input(a,b) do { } while (0) | 40 | struct hid_debug_list { |
| 36 | #define hid_dump_device(c) do { } while (0) | 41 | char *hid_debug_buf; |
| 37 | #define hid_dump_field(a,b) do { } while (0) | 42 | int head; |
| 38 | #define hid_resolv_usage(a) do { } while (0) | 43 | int tail; |
| 39 | #define hid_resolv_event(a,b) do { } while (0) | 44 | struct fasync_struct *fasync; |
| 45 | struct hid_device *hdev; | ||
| 46 | struct list_head node; | ||
| 47 | struct mutex read_mutex; | ||
| 48 | }; | ||
| 40 | 49 | ||
| 41 | #endif /* CONFIG_HID_DEBUG */ | 50 | #else |
| 42 | 51 | ||
| 52 | #define hid_dump_input(a,b,c) do { } while (0) | ||
| 53 | #define hid_dump_device(a,b) do { } while (0) | ||
| 54 | #define hid_dump_field(a,b,c) do { } while (0) | ||
| 55 | #define hid_resolv_usage(a,b) do { } while (0) | ||
| 56 | #define hid_debug_register(a, b) do { } while (0) | ||
| 57 | #define hid_debug_unregister(a) do { } while (0) | ||
| 58 | #define hid_debug_init() do { } while (0) | ||
| 59 | #define hid_debug_exit() do { } while (0) | ||
| 60 | #define hid_debug_event(a,b) do { } while (0) | ||
| 61 | |||
| 62 | #endif | ||
| 43 | 63 | ||
| 44 | #endif | 64 | #endif |
| 45 | 65 | ||
diff --git a/include/linux/hid.h b/include/linux/hid.h index 53489fd4d700..a0ebdace7baa 100644 --- a/include/linux/hid.h +++ b/include/linux/hid.h | |||
| @@ -500,6 +500,14 @@ struct hid_device { /* device report descriptor */ | |||
| 500 | 500 | ||
| 501 | /* handler for raw output data, used by hidraw */ | 501 | /* handler for raw output data, used by hidraw */ |
| 502 | int (*hid_output_raw_report) (struct hid_device *, __u8 *, size_t); | 502 | int (*hid_output_raw_report) (struct hid_device *, __u8 *, size_t); |
| 503 | |||
| 504 | /* debugging support via debugfs */ | ||
| 505 | unsigned short debug; | ||
| 506 | struct dentry *debug_dir; | ||
| 507 | struct dentry *debug_rdesc; | ||
| 508 | struct dentry *debug_events; | ||
| 509 | struct list_head debug_list; | ||
| 510 | wait_queue_head_t debug_wait; | ||
| 503 | }; | 511 | }; |
| 504 | 512 | ||
| 505 | static inline void *hid_get_drvdata(struct hid_device *hdev) | 513 | static inline void *hid_get_drvdata(struct hid_device *hdev) |
| @@ -657,9 +665,7 @@ struct hid_ll_driver { | |||
| 657 | 665 | ||
| 658 | /* HID core API */ | 666 | /* HID core API */ |
| 659 | 667 | ||
| 660 | #ifdef CONFIG_HID_DEBUG | ||
| 661 | extern int hid_debug; | 668 | extern int hid_debug; |
| 662 | #endif | ||
| 663 | 669 | ||
| 664 | extern int hid_add_device(struct hid_device *); | 670 | extern int hid_add_device(struct hid_device *); |
| 665 | extern void hid_destroy_device(struct hid_device *); | 671 | extern void hid_destroy_device(struct hid_device *); |
| @@ -815,21 +821,9 @@ int hid_pidff_init(struct hid_device *hid); | |||
| 815 | #define hid_pidff_init NULL | 821 | #define hid_pidff_init NULL |
| 816 | #endif | 822 | #endif |
| 817 | 823 | ||
| 818 | #ifdef CONFIG_HID_DEBUG | ||
| 819 | #define dbg_hid(format, arg...) if (hid_debug) \ | 824 | #define dbg_hid(format, arg...) if (hid_debug) \ |
| 820 | printk(KERN_DEBUG "%s: " format ,\ | 825 | printk(KERN_DEBUG "%s: " format ,\ |
| 821 | __FILE__ , ## arg) | 826 | __FILE__ , ## arg) |
| 822 | #define dbg_hid_line(format, arg...) if (hid_debug) \ | ||
| 823 | printk(format, ## arg) | ||
| 824 | #else | ||
| 825 | static inline int __attribute__((format(printf, 1, 2))) | ||
| 826 | dbg_hid(const char *fmt, ...) | ||
| 827 | { | ||
| 828 | return 0; | ||
| 829 | } | ||
| 830 | #define dbg_hid_line dbg_hid | ||
| 831 | #endif /* HID_DEBUG */ | ||
| 832 | |||
| 833 | #define err_hid(format, arg...) printk(KERN_ERR "%s: " format "\n" , \ | 827 | #define err_hid(format, arg...) printk(KERN_ERR "%s: " format "\n" , \ |
| 834 | __FILE__ , ## arg) | 828 | __FILE__ , ## arg) |
| 835 | #endif /* HID_FF */ | 829 | #endif /* HID_FF */ |
