USB: ratelimit port power transitions

Prevent a recovery result of:

  "hub 3-0:1.0: Cannot enable port 1.  Maybe the USB cable is bad?"

Once a populated port has been resumed, do not allow it to be suspended
again until it has gone through a recovery cycle (reset_resume).  It has
been observed that bouncing power without an intervening recovery
results in the endpoint device failing to reconnect.

Force an autosuspend timeout and a recovery of the port before allowing
power to be removed again.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2 files changed