From: Lan Tianyu Date: Tue, 22 Jan 2013 20:26:32 +0000 (+0800) Subject: usb: enable usb port device's async suspend. X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=192fef18d0f5ac9a05a93ff6314fc9865c10fbf9;p=openwrt%2Fstaging%2Fblogic.git usb: enable usb port device's async suspend. This patch is to set power.async_suspend for usb port in order to allow it to be suspended and resumed asynchronously during system sleep transitions. The power.async_suspend flag is also set for devices that don't have suspend or resume callbacks, because otherwise they would make the main suspend/resume thread wait for their "asynchronous" children (during suspend) or parents (during resume), effectively negating the possible gains from executing these devices' suspend and resume callbacks asynchronously. Signed-off-by: Lan Tianyu Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/usb/core/port.c b/drivers/usb/core/port.c index 9a15b26944ec..5df143dbd759 100644 --- a/drivers/usb/core/port.c +++ b/drivers/usb/core/port.c @@ -186,6 +186,7 @@ int usb_hub_create_port_device(struct usb_hub *hub, int port1) PM_QOS_FLAG_NO_POWER_OFF)) pm_runtime_enable(&port_dev->dev); + device_enable_async_suspend(&port_dev->dev); retval = usb_acpi_register_power_resources(&port_dev->dev); if (retval && retval != -ENODEV)