[PATCH v2 0/7] Allow UVC devices to remain runtime-suspended when sleeping

From: Tomeu Vizoso
Date: Fri Apr 03 2015 - 08:58:37 EST


v2: * Let creators of the input device to decide whether it should remain
runtime suspended when the system goes into a sleep state
* Don't enable PM runtime on all evdev handlers
* Cope with another wrong wakeup setting in usb_dev_prepare

Hi,

this series contain what I needed to do in order to have my USB webcam to not
be resumed when the system resumes, reducing considerably the total time that
resuming takes.

It makes use of the facility that Rafael Wysocki added in aae4518b3 ("PM /
sleep: Mechanism to avoid resuming runtime-suspended devices unnecessarily"),
which requires that a device and all its descendants opt-in by having their
dev_pm_ops.prepare callback return 1, to have runtime PM enabled, and to be
runtime suspended when the system goes to a sleep state.

Thanks,

Tomeu

Tomeu Vizoso (7):
Input: Implement dev_pm_ops.prepare in input_class
Input: Add input_dev.stay_runtime_suspended flag
[media] uvcvideo: Set input_dev.stay_runtime_suspended flag
[media] uvcvideo: Enable runtime PM of descendant devices
[media] v4l2-core: Implement dev_pm_ops.prepare()
[media] media-devnode: Implement dev_pm_ops.prepare callback
USB / PM: Allow USB devices to remain runtime-suspended when sleeping

drivers/input/input.c | 20 ++++++++++++++++++++
drivers/media/media-devnode.c | 10 ++++++++++
drivers/media/usb/uvc/uvc_driver.c | 11 +++++++++++
drivers/media/usb/uvc/uvc_status.c | 1 +
drivers/media/v4l2-core/v4l2-dev.c | 10 ++++++++++
drivers/usb/core/endpoint.c | 17 +++++++++++++++++
drivers/usb/core/message.c | 16 ++++++++++++++++
drivers/usb/core/port.c | 6 ++++++
drivers/usb/core/usb.c | 8 +++++++-
include/linux/input.h | 4 ++++
10 files changed, 102 insertions(+), 1 deletion(-)

--
2.3.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/