-
Alan Stern authored
This patch implements the missing functionality necessary to get device resets working fully. It adds a bit-array of ports with logical connect-changes pending to the hub structure, so that the hub driver can recognize that these ports should be treated as though they had disconnected and re-connected. This is how we will handle devices that "morph" (i.e., change their descriptors) following a reset, as might happen with a firmware upload. There is also a lot of additional kerneldoc and a few small changes to some log messages. An important restriction is that usb_reset_device() will refuse to work if the device is suspended. Trying to reset a suspended device leads to several problems, not least of which is that the device's parent hub might be suspended as well. With this patch the device reset code is pretty much complete. However it won't always work correctly until the device locking is straightened out. That's coming up next. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
67b7cb9a