• Alan Stern's avatar
    USB: unify reset_resume and normal resume · 54515fe5
    Alan Stern authored
    This patch (as919) unifies the code paths used for normal resume and
    for reset-resume.  Earlier I had failed to note a section in the USB
    spec which requires the host to resume a suspended port before
    resetting it if the attached device is enabled for remote wakeup.
    Since the port has to be resumed anyway, we might as well reuse the
    existing code.
    The main changes are:
    	usb_reset_suspended_device() is eliminated.
    	usb_root_hub_lost_power() is moved down next to the
    	hub_reset_resume() routine, to which it is logically
    	finish_port_resume() does a port reset() if the device's
    	reset_resume flag is set.
    	usb_port_resume() doesn't check whether the port is initially
    	enabled if this is a USB-Persist sort of resume.
    	Code to perform the port reset is added to the resume pathway
    	for the non-CONFIG_USB_SUSPEND case.
    Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
hub.c 84.4 KB