Input: polled device power saving
For slow running polling, it saves power to align wakeups on tick boundary. Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
parent
e15b02138b
commit
14134b31ae
1 changed files with 5 additions and 2 deletions
|
@ -70,6 +70,7 @@ static int input_open_polled_device(struct input_dev *input)
|
||||||
{
|
{
|
||||||
struct input_polled_dev *dev = input->private;
|
struct input_polled_dev *dev = input->private;
|
||||||
int error;
|
int error;
|
||||||
|
unsigned long ticks;
|
||||||
|
|
||||||
error = input_polldev_start_workqueue();
|
error = input_polldev_start_workqueue();
|
||||||
if (error)
|
if (error)
|
||||||
|
@ -78,8 +79,10 @@ static int input_open_polled_device(struct input_dev *input)
|
||||||
if (dev->flush)
|
if (dev->flush)
|
||||||
dev->flush(dev);
|
dev->flush(dev);
|
||||||
|
|
||||||
queue_delayed_work(polldev_wq, &dev->work,
|
ticks = msecs_to_jiffies(dev->poll_interval);
|
||||||
msecs_to_jiffies(dev->poll_interval));
|
if (ticks >= HZ)
|
||||||
|
ticks = round_jiffies(ticks);
|
||||||
|
queue_delayed_work(polldev_wq, &dev->work, ticks);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue