usb: hub: delay hub autosuspend if USB3 port is still link training
authorMathias Nyman <mathias.nyman@linux.intel.com>
Wed, 28 Nov 2018 13:55:21 +0000 (15:55 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 12 Feb 2019 18:44:54 +0000 (19:44 +0100)
commit1fbecf8e70c85ab4c4d487573e8a6248d2efd40d
tree5d8e123e7dc47a41d15ef404c948c1a5b7f543a0
parentf096edebd1525d1f67c9a78912d9229d00739ac7
usb: hub: delay hub autosuspend if USB3 port is still link training

[ Upstream commit e86108940e541febf35813402ff29fa6f4a9ac0b ]

When initializing a hub we want to give a USB3 port in link training
the same debounce delay time before autosuspening the hub as already
trained, connected enabled ports.

USB3 ports won't reach the enabled state with "current connect status" and
"connect status change" bits set until the USB3 link training finishes.

Catching the port in link training (polling) and adding the debounce delay
prevents unnecessary failed attempts to autosuspend the hub.

Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/usb/core/hub.c