Re: [PATCH] usb:solve resume usb device identification problem
From: Alan Stern
Date: Mon Jul 11 2016 - 10:51:08 EST
On Mon, 11 Jul 2016, Pengcheng Li wrote:
> A usb device in the connection state. Then host is suspend and resume.
> But the usb device could not be at the right speed. We should be reset
> the reset.
>
> Signed-off-by: Pengcheng Li <lpc.li@xxxxxxxxxxxxx>
Why wouldn't the USB device be at the right speed?
You should _not_ reset the device if it is at the right speed.
> @@ -3512,6 +3512,10 @@ int usb_port_resume(struct usb_device *udev, pm_message_t msg)
> }
> }
>
> + retval = hub_port_reset(hub, port1, udev, HUB_ROOT_RESET_TIME, false);
> + if (retval < 0)
> + hub_port_disable(hub, port1, 0);
> +
Most of the time (for example, for non-USB3 devices) this would be
wrong.
Alan Stern