Re: [PATCH] USB:fix USB3 devices behind USB3 hubs not resuming at hibernate thaw

From: Greg KH
Date: Thu Mar 22 2018 - 08:03:34 EST


On Wed, Mar 21, 2018 at 01:29:42PM +0800, Zhengjun Xing wrote:
> USB3 hubs don't support global suspend.
>
> USB3 specification 10.10, Enhanced SuperSpeed hubs only support selective
> suspend and resume, they do not support global suspend/resume where the
> hub downstream facing ports states are not affected.
>
> When system enters hibernation it first enters freeze process where only
> the root hub enters suspend, usb_port_suspend() is not called for other
> devices, and suspend status flags are not set for them. Other devices are
> expected to suspend globally. Some external USB3 hubs will suspend the
> downstream facing port at global suspend. These devices won't be resumed
> at thaw as the suspend status flag is not set.
>
> A USB3 removable hard disk connected through a USB3 hub that won't resume
> at thaw will fail to synchronize SCSI cache, return âcmd cmplt err -71â
> error, and needs a 60 seconds timeout which causing system hang for 60s
> before the USB host reset the port for the USB3 removable hard disk to
> recover.
>
> Fix this by always calling usb_port_suspend() during freeze for USB3
> devices.

This should go to the stable trees as well, right?

greg k-h