ehci: fix EHCI host controller initialization sequence
authorEugene Korenevsky <ekorenevsky@astralinux.ru>
Sun, 10 Jan 2021 17:36:09 +0000 (20:36 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 12 Jan 2021 16:16:37 +0000 (17:16 +0100)
commit280a9045bb18833db921b316a5527d2b565e9f2e
tree3ba47c9fdf46093bd5ebde9908ed57acfa86ef06
parent5f8e084026543bc06eb9b2a623de55bb4ab3e60e
ehci: fix EHCI host controller initialization sequence

According to EHCI spec, EHCI HC clears USBSTS.HCHalted whenever
USBCMD.RS=1.

However, it is a good practice to wait some time after setting USBCMD.RS
(approximately 100ms) until USBSTS.HCHalted become zero.

Without this waiting, VirtualBox's EHCI virtual HC accidentally hangs
(see BugLink).

BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=211095
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Eugene Korenevsky <ekorenevsky@astralinux.ru>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20210110173609.GA17313@himera.home
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/ehci-hcd.c