@@ -1748,6 +1748,15 @@ static const struct dev_pm_ops input_dev_pm_ops = {
.poweroff = input_dev_poweroff,
.restore = input_dev_resume,
};
+
+static int input_class_prepare(struct device *dev)
+{
+ return 1;
+}
+
+static const struct dev_pm_ops input_class_pm_ops = {
+ .prepare = input_class_prepare,
+};
#endif /* CONFIG_PM */
static struct device_type input_dev_type = {
@@ -1767,6 +1776,9 @@ static char *input_devnode(struct device *dev, umode_t *mode)
struct class input_class = {
.name = "input",
.devnode = input_devnode,
+#ifdef CONFIG_PM_SLEEP
+ .pm = &input_class_pm_ops,
+#endif
};
EXPORT_SYMBOL_GPL(input_class);
Have it return 1 so that input handlers don't block input devices from remaining runtime suspended when the system goes into a sleep state. For this to happen, the handler device needs to have runtime PM enabled. This can make resume times considerably shorter because these devices won't be resumed when the system is awaken. Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> --- drivers/input/input.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)