From 37ff33454873d8639d10dc5c72d76fb3a1eb540f Mon Sep 17 00:00:00 2001 From: Vladimir Kondratyev Date: Wed, 1 Nov 2017 22:37:43 +0000 Subject: evdev: Do not start/stop softrepeat callout if no clients attached Reviewed by: gonzo Approved by: gonzo (mentor) MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D12676 --- sys/dev/evdev/evdev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'sys/dev/evdev') diff --git a/sys/dev/evdev/evdev.c b/sys/dev/evdev/evdev.c index 56c814ecccdc..94b3ecdc83fd 100644 --- a/sys/dev/evdev/evdev.c +++ b/sys/dev/evdev/evdev.c @@ -579,7 +579,8 @@ evdev_modify_event(struct evdev_dev *evdev, uint16_t type, uint16_t code, *value = KEY_EVENT_REPEAT; } else { /* Start/stop callout for evdev repeats */ - if (bit_test(evdev->ev_key_states, code) == !*value) { + if (bit_test(evdev->ev_key_states, code) == !*value && + !LIST_EMPTY(&evdev->ev_clients)) { if (*value == KEY_EVENT_DOWN) evdev_start_repeat(evdev, code); else -- cgit v1.3