aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/hid-debug.h
diff options
context:
space:
mode:
authorJiri Kosina <jkosina@suse.cz>2009-06-12 09:20:57 -0400
committerJiri Kosina <jkosina@suse.cz>2009-06-12 09:20:57 -0400
commitcd667ce24796700e1a0e6e7528efc61c96ff832e (patch)
tree6279001dbecb476588873402668aa761ee2f4a8f /include/linux/hid-debug.h
parenta635f9dd83f3382577f4544a96df12356e951a40 (diff)
HID: use debugfs for events/reports dumping
This is a followup patch to the one implemeting rdesc representation in debugfs rather than being dependent on compile-time CONFIG_HID_DEBUG setting. The API of the appropriate formatting functions is slightly modified -- if they are passed seq_file pointer, the one-shot output for 'rdesc' file mode is used, and therefore the message is formatted into the corresponding seq_file immediately. Otherwise the called function allocated a new buffer, formats the text into the buffer and returns the pointer to it, so that it can be queued into the ring-buffer of the processess blocked waiting on input on 'events' file in debugfs. 'debug' parameter to the 'hid' module is now used solely for the prupose of inetrnal driver state debugging (parser, transport, etc). Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'include/linux/hid-debug.h')
-rw-r--r--include/linux/hid-debug.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/include/linux/hid-debug.h b/include/linux/hid-debug.h
index 516e12c33235..ec08ac1ad687 100644
--- a/include/linux/hid-debug.h
+++ b/include/linux/hid-debug.h
@@ -24,14 +24,27 @@
24 24
25#ifdef CONFIG_DEBUG_FS 25#ifdef CONFIG_DEBUG_FS
26 26
27void hid_dump_input(struct hid_usage *, __s32); 27void hid_dump_input(struct hid_device *, struct hid_usage *, __s32);
28void hid_dump_device(struct hid_device *, struct seq_file *); 28void hid_dump_device(struct hid_device *, struct seq_file *);
29void hid_dump_field(struct hid_field *, int, struct seq_file *); 29void hid_dump_field(struct hid_field *, int, struct seq_file *);
30void hid_resolv_usage(unsigned, struct seq_file *); 30char *hid_resolv_usage(unsigned, struct seq_file *);
31void hid_debug_register(struct hid_device *, const char *); 31void hid_debug_register(struct hid_device *, const char *);
32void hid_debug_unregister(struct hid_device *); 32void hid_debug_unregister(struct hid_device *);
33void hid_debug_init(void); 33void hid_debug_init(void);
34void hid_debug_exit(void); 34void hid_debug_exit(void);
35void hid_debug_event(struct hid_device *, char *);
36
37#define HID_DEBUG_BUFSIZE 512
38
39struct hid_debug_list {
40 char *hid_debug_buf;
41 int head;
42 int tail;
43 struct fasync_struct *fasync;
44 struct hid_device *hdev;
45 struct list_head node;
46 struct mutex read_mutex;
47};
35 48
36#else 49#else
37 50
@@ -44,6 +57,7 @@ void hid_debug_exit(void);
44#define hid_debug_unregister(a) do { } while (0) 57#define hid_debug_unregister(a) do { } while (0)
45#define hid_debug_init() do { } while (0) 58#define hid_debug_init() do { } while (0)
46#define hid_debug_exit() do { } while (0) 59#define hid_debug_exit() do { } while (0)
60#define hid_debug_event(a,b) do { } while (0)
47 61
48#endif 62#endif
49 63