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