X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=drivers%2Finput%2Finput-polldev.c;h=92b359894e81ed89d7608c90e4f52a2173daa8c3;hb=2a0f9c4c452298da89b67060c7ca034ef7836aa9;hp=b773d4c756a61333d1e5d65ae5cc282cbe01815b;hpb=5e16e3f0e24dadb79b96b6134cd3303f0d42f0c5;p=~andy%2Flinux diff --git a/drivers/input/input-polldev.c b/drivers/input/input-polldev.c index b773d4c756a..92b359894e8 100644 --- a/drivers/input/input-polldev.c +++ b/drivers/input/input-polldev.c @@ -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; }