USB: make USB-PERSIST work after every system sleep
authorAlan Stern <stern@rowland.harvard.edu>
Mon, 3 Mar 2008 20:15:51 +0000 (15:15 -0500)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 25 Apr 2008 04:16:32 +0000 (21:16 -0700)
commit5e6effaed6da94e727cd45f945ad2489af8570b3
tree2995db2a93c931f3e4a7e4e3203870d5d7f93eb6
parent3eb14915a300f539f271e3716f2421bb0697ed48
USB: make USB-PERSIST work after every system sleep

This patch (as1046) makes USB-PERSIST work more in accordance with
the documentation.  Currently it takes effect only in cases where the
root hub has lost power or been reset, but it is supposed to operate
whenever a power session was dropped during a system sleep.

A new hub_restart() routine carries out the duties required during a
reset or a reset-resume.  It checks to see whether occupied ports are
still enabled, and if they aren't then it clears the enable-change and
connect-change features (to prevent interference by khubd) and sets
the child device's reset_resume flag.  It also checks ports that are
supposed to be unoccupied to verify that the firmware hasn't left the
port in an enabled state.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/core/hub.c