aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/hid.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.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.h')
-rw-r--r--include/linux/hid.h26
1 files changed, 8 insertions, 18 deletions
diff --git a/include/linux/hid.h b/include/linux/hid.h
index da09ab140ef1..60fa52913f89 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -451,10 +451,6 @@ struct hid_device { /* device report descriptor */
451 char phys[64]; /* Device physical location */ 451 char phys[64]; /* Device physical location */
452 char uniq[64]; /* Device unique identifier (serial #) */ 452 char uniq[64]; /* Device unique identifier (serial #) */
453 453
454 /* debugfs */
455 struct dentry *debug_dir;
456 struct dentry *debug_rdesc;
457
458 void *driver_data; 454 void *driver_data;
459 455
460 /* temporary hid_ff handling (until moved to the drivers) */ 456 /* temporary hid_ff handling (until moved to the drivers) */
@@ -468,6 +464,14 @@ struct hid_device { /* device report descriptor */
468 464
469 /* handler for raw output data, used by hidraw */ 465 /* handler for raw output data, used by hidraw */
470 int (*hid_output_raw_report) (struct hid_device *, __u8 *, size_t); 466 int (*hid_output_raw_report) (struct hid_device *, __u8 *, size_t);
467
468 /* debugging support via debugfs */
469 unsigned short debug;
470 struct dentry *debug_dir;
471 struct dentry *debug_rdesc;
472 struct dentry *debug_events;
473 struct list_head debug_list;
474 wait_queue_head_t debug_wait;
471}; 475};
472 476
473static inline void *hid_get_drvdata(struct hid_device *hdev) 477static inline void *hid_get_drvdata(struct hid_device *hdev)
@@ -625,9 +629,7 @@ struct hid_ll_driver {
625 629
626/* HID core API */ 630/* HID core API */
627 631
628#ifdef CONFIG_HID_DEBUG
629extern int hid_debug; 632extern int hid_debug;
630#endif
631 633
632extern int hid_add_device(struct hid_device *); 634extern int hid_add_device(struct hid_device *);
633extern void hid_destroy_device(struct hid_device *); 635extern void hid_destroy_device(struct hid_device *);
@@ -783,21 +785,9 @@ int hid_pidff_init(struct hid_device *hid);
783#define hid_pidff_init NULL 785#define hid_pidff_init NULL
784#endif 786#endif
785 787
786#ifdef CONFIG_HID_DEBUG
787#define dbg_hid(format, arg...) if (hid_debug) \ 788#define dbg_hid(format, arg...) if (hid_debug) \
788 printk(KERN_DEBUG "%s: " format ,\ 789 printk(KERN_DEBUG "%s: " format ,\
789 __FILE__ , ## arg) 790 __FILE__ , ## arg)
790#define dbg_hid_line(format, arg...) if (hid_debug) \
791 printk(format, ## arg)
792#else
793static inline int __attribute__((format(printf, 1, 2)))
794dbg_hid(const char *fmt, ...)
795{
796 return 0;
797}
798#define dbg_hid_line dbg_hid
799#endif /* HID_DEBUG */
800
801#define err_hid(format, arg...) printk(KERN_ERR "%s: " format "\n" , \ 791#define err_hid(format, arg...) printk(KERN_ERR "%s: " format "\n" , \
802 __FILE__ , ## arg) 792 __FILE__ , ## arg)
803#endif /* HID_FF */ 793#endif /* HID_FF */