static int input_open_polled_device(struct input_dev *input) { struct input_polled_dev *dev = input_get_drvdata(input); int error; error = input_polldev_start_workqueue(); if (error) return error; if (dev->flush) dev->flush(dev); queue_delayed_work(polldev_wq, &dev->work, msecs_to_jiffies(dev->poll_interval)); return 0; }
static int input_open_polled_device(struct input_dev *input) { struct input_polled_dev *dev = input_get_drvdata(input); int error; error = input_polldev_start_workqueue(); if (error) return error; if (dev->open) dev->open(dev); /* Only start polling if polling is enabled */ if (dev->poll_interval > 0) queue_delayed_work(polldev_wq, &dev->work, 0); return 0; }