Input: polled device power saving

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

Signed-off-by: Stephen Hemminger <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
This commit is contained in:
Stephen Hemminger 2007-09-26 00:01:25 -04:00 • committed by Dmitry Torokhov
commit 14134b31ae

View file

@ -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;
}