Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 14134b31 authored by Stephen Hemminger's avatar Stephen Hemminger Committed by Dmitry Torokhov
Browse files

Input: polled device power saving



For slow running polling, it saves power to align wakeups on tick boundary.

Signed-off-by: default avatarStephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent e15b0213
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@ static int input_open_polled_device(struct input_dev *input)
{
	struct input_polled_dev *dev = input->private;
	int error;
	unsigned long ticks;

	error = input_polldev_start_workqueue();
	if (error)
@@ -78,8 +79,10 @@ static int input_open_polled_device(struct input_dev *input)
	if (dev->flush)
		dev->flush(dev);

	queue_delayed_work(polldev_wq, &dev->work,
			   msecs_to_jiffies(dev->poll_interval));
	ticks = msecs_to_jiffies(dev->poll_interval);
	if (ticks >= HZ)
		ticks = round_jiffies(ticks);
	queue_delayed_work(polldev_wq, &dev->work, ticks);

	return 0;
}