diff options
author | Henrik Rydberg <rydberg@euromail.se> | 2012-09-01 21:47:11 +0200 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2012-09-02 09:26:46 +0200 |
commit | 9bfc8da00b1e74f55a52cc06a0d364f1f7f61ed8 (patch) | |
tree | 6643c6edd934129b20a58a2fe1361a461a02f237 /drivers/hid/hid-core.c | |
parent | 67ddbb3e6568fb1820b2cc45b00c50702b114801 (diff) | |
download | lwn-9bfc8da00b1e74f55a52cc06a0d364f1f7f61ed8.tar.gz lwn-9bfc8da00b1e74f55a52cc06a0d364f1f7f61ed8.zip |
HID: Only dump input if someone is listening
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>
Diffstat (limited to 'drivers/hid/hid-core.c')
-rw-r--r-- | drivers/hid/hid-core.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index 8bf8a64e5115..b8485a0106c9 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c @@ -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); |