HID: Only dump input if someone is listening
authorHenrik Rydberg <rydberg@euromail.se>
Sat, 1 Sep 2012 19:47:11 +0000 (21:47 +0200)
committerJiri Kosina <jkosina@suse.cz>
Sun, 2 Sep 2012 07:26:46 +0000 (09:26 +0200)
Going through the motions of printing the debug message information
takes a long time; using the keyboard can lead to a 160 us irqsoff
latency. This patch skips hid_dump_input() when there are no open
handles, which brings latency down to 100 us.

Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-core.c

index 8bf8a64e511543989c41624338304d0f11f0c59b..b8485a0106c9730a276c20babb78c010a3115407 100644 (file)
@@ -996,7 +996,8 @@ static void hid_process_event(struct hid_device *hid, struct hid_field *field,
        struct hid_driver *hdrv = hid->driver;
        int ret;
 
-       hid_dump_input(hid, usage, value);
+       if (!list_empty(&hid->debug_list))
+               hid_dump_input(hid, usage, value);
 
        if (hdrv && hdrv->event && hid_match_usage(hid, usage)) {
                ret = hdrv->event(hid, field, usage, value);