linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Input: improve autorepeat initialization
@ 2015-10-09 21:10 Petri Gynther
  2015-10-10  0:15 ` Dmitry Torokhov
  0 siblings, 1 reply; 3+ messages in thread
From: Petri Gynther @ 2015-10-09 21:10 UTC (permalink / raw)
  To: linux-input; +Cc: Dmitry Torokhov, Petri Gynther

Allow driver to initialize only input_dev->rep[REP_DELAY] and
input_dev->rep[REP_PERIOD], but then use the input timer and
repeat function from input.c.

For example, a HID driver could do:

static void xyz_input_configured(struct hid_device *hid,
                                 struct hid_input *hidinput)
{
        hidinput->input->rep[REP_DELAY] = 400;
        hidinput->input->rep[REP_PERIOD] = 100;
}

static struct hid_driver xyz_driver = {
        .input_configured = xyz_input_configured,
}

Signed-off-by: Petri Gynther <pgynther@google.com>
---
 drivers/input/input.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/input/input.c b/drivers/input/input.c
index 5391abd..1984ba5 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -2115,6 +2115,15 @@ int input_register_device(struct input_dev *dev)
 		dev->rep[REP_PERIOD] = 33;
 	}
 
+	/*
+	 * If the driver didn't initialize the timer data and function, then
+	 * handle the autorepeating here in input.c.
+	 */
+	if (!dev->timer.data && !dev->timer.function) {
+		dev->timer.data = (unsigned long) dev;
+		dev->timer.function = input_repeat_key;
+	}
+
 	if (!dev->getkeycode)
 		dev->getkeycode = input_default_getkeycode;
 
-- 
2.6.0.rc2.230.g3dd15c0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-10-12 18:50 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-09 21:10 [PATCH] Input: improve autorepeat initialization Petri Gynther
2015-10-10  0:15 ` Dmitry Torokhov
2015-10-12 18:50   ` Petri Gynther

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).