xhci: disable U3 suspended ports in S4 hibernate poweroff_late stage
Disable U3 suspended ports in hibernate S4 poweroff_late for systems with XHCI_RESET_TO_DEFAULT quirk, if wakeup is not enabled. This reduces the number of self-powered usb devices from surviving in U3 suspended state into next reboot. Bootloader/firmware on these systems can't handle usb ports in U3, and will timeout, causing extra delay during reboot/restore from S4. Add pci_poweroff_late() callback to struct usb_hcd to get this done at the correct stage in hibernate. Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> Link: https://lore.kernel.org/r/20221130091944.2171610-5-mathias.nyman@linux.intel.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
705c333a7a
commit
c3bbacd61b
@@ -269,6 +269,9 @@ struct hc_driver {
|
||||
/* called after entering D0 (etc), before resuming the hub */
|
||||
int (*pci_resume)(struct usb_hcd *hcd, bool hibernated);
|
||||
|
||||
/* called just before hibernate final D3 state, allows host to poweroff parts */
|
||||
int (*pci_poweroff_late)(struct usb_hcd *hcd, bool do_wakeup);
|
||||
|
||||
/* cleanly make HCD stop writing memory and doing I/O */
|
||||
void (*stop) (struct usb_hcd *hcd);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user