From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752644AbbJET6X (ORCPT ); Mon, 5 Oct 2015 15:58:23 -0400 Received: from v094114.home.net.pl ([79.96.170.134]:43378 "HELO v094114.home.net.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1752874AbbJET6U (ORCPT ); Mon, 5 Oct 2015 15:58:20 -0400 From: "Rafael J. Wysocki" To: Tomeu Vizoso Cc: linux-pm@vger.kernel.org, Alan Stern , martyn.welch@collabora.co.uk, Ulf Hansson , David Airlie , Tomas Winkler , linux-usb@vger.kernel.org, linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Russell King , Len Brown , Len Brown , Kevin Hilman , Tony Lindgren , Greg Kroah-Hartman , linux-omap@vger.kernel.org, Pavel Machek , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v9 0/4] Allow USB devices to remain runtime-suspended when sleeping Date: Mon, 05 Oct 2015 22:26:48 +0200 Message-ID: <8710988.MO9zH1zeoz@vostro.rjw.lan> User-Agent: KMail/4.11.5 (Linux/4.1.0-rc5+; KDE/4.11.5; x86_64; ; ) In-Reply-To: <1444056332-30246-1-git-send-email-tomeu.vizoso@collabora.com> References: <1444056332-30246-1-git-send-email-tomeu.vizoso@collabora.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="utf-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Monday, October 05, 2015 04:45:28 PM Tomeu Vizoso wrote: > Hi, > > this is v9 of an attempt to make it easier for devices to remain in > runtime PM when the system goes to sleep, mainly to reduce the time > spent resuming devices. > > For this, we interpret the absence of all PM callback implementations as > it being safe to do direct_complete, so their ancestors aren't prevented > from remaining runtime-suspended. > > Additionally, the prepare() callback of USB devices will return 1 if > runtime PM is enabled and the current wakeup settings are correct. > > With these changes, a uvcvideo device (for example) stays in runtime > suspend when the system goes to sleep and is left in that state when the > system resumes, not delaying it unnecessarily. > > Thanks, > > Tomeu > > Changes in v9: > - Add docs noting the need for the device lock to be held before calling > device_is_bound() > - Add docs noting the need for the device lock to be held before calling > dev_pm_domain_set() > - Move to CONFIG_PM_SLEEP as suggested by Rafael and Ulf. > - Rename from device_check_pm_callbacks to device_pm_check_callbacks to > follow with the naming convention of existing API. > - Re-add calling to device_pm_check_callbacks from device registration > and when updating the PM domain of a device. > > Changes in v8: > - Add device_is_bound() > - Add dev_pm_domain_set() and update code to use it > - Move no_pm_callbacks field into CONFIG_PM_SLEEP > - Call device_check_pm_callbacks only after a device is bound or unbound > > Changes in v7: > - Reduce indentation by adding a label in device_prepare() > > Changes in v6: > - Add stub for !CONFIG_PM. > - Move implementation of device_check_pm_callbacks to power/main.c as it > doesn't belong to CONFIG_PM_SLEEP. > - Take dev->power.lock before modifying flag. > > Changes in v5: > - Check for all dev_pm_ops instances associated to a device, updating a > no_pm_callbacks flag at the times when that could change. > > Tomeu Vizoso (4): > device core: add device_is_bound() > PM / Domains: add setter for dev.pm_domain > PM / sleep: Go direct_complete if driver has no callbacks > USB / PM: Allow USB devices to remain runtime-suspended when sleeping > > arch/arm/mach-omap2/omap_device.c | 7 ++++--- > drivers/acpi/acpi_lpss.c | 5 +++-- > drivers/acpi/device_pm.c | 5 +++-- > drivers/base/dd.c | 21 +++++++++++++++++++-- > drivers/base/power/clock_ops.c | 5 +++-- > drivers/base/power/common.c | 24 ++++++++++++++++++++++++ > drivers/base/power/domain.c | 6 ++++-- > drivers/base/power/main.c | 35 +++++++++++++++++++++++++++++++++++ > drivers/base/power/power.h | 3 +++ > drivers/gpu/vga/vga_switcheroo.c | 10 +++++----- > drivers/misc/mei/pci-me.c | 5 +++-- > drivers/misc/mei/pci-txe.c | 5 +++-- > drivers/usb/core/port.c | 6 ++++++ > drivers/usb/core/usb.c | 11 ++++++++++- > include/linux/device.h | 2 ++ > include/linux/pm.h | 1 + > include/linux/pm_domain.h | 3 +++ > 17 files changed, 131 insertions(+), 23 deletions(-) The series looks good to me now, but patch [4/4] needs an ACK from the USB maintainers and patch [1/4] needs an ACK from Greg. Thanks, Rafael