USB: add usb_hcd_{start,end}_port_resume
authorAlan Stern <stern@rowland.harvard.edu>
Fri, 25 Jan 2013 22:09:42 +0000 (17:09 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 Jan 2013 23:06:01 +0000 (15:06 -0800)
commitda0aa7169b97d90f4af39a9dc84d58bbe19d7e78
tree7d5e1d583787b07d6627f4acd46da1cc38deaf93
parent6e0c3339a6f19d748f16091d0a05adeb1e1f822b
USB: add usb_hcd_{start,end}_port_resume

This patch (as1649) adds a mechanism for host controller drivers to
inform usbcore when they have begun or ended resume signalling on a
particular root-hub port.  The core will then make sure that the root
hub does not get runtime-suspended while the port resume is going on.

Since commit 596d789a211d134dc5f94d1e5957248c204ef850 (USB: set hub's
default autosuspend delay as 0), the system tries to suspend hubs
whenever they aren't in use.  While a root-hub port is being resumed,
the root hub does not appear to be in use.  Attempted runtime suspends
fail because of the ongoing port resume, but the PM core just keeps on
trying over and over again.  We want to prevent this wasteful effort.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Tested-by: Ming Lei <ming.lei@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/core/hcd.c
include/linux/usb.h
include/linux/usb/hcd.h