diff options
Diffstat (limited to 'drivers/usb/core')
-rw-r--r-- | drivers/usb/core/hcd-pci.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/usb/core/hcd-pci.c b/drivers/usb/core/hcd-pci.c index 6c1642b382f..aa7bbbcf9d8 100644 --- a/drivers/usb/core/hcd-pci.c +++ b/drivers/usb/core/hcd-pci.c | |||
@@ -495,6 +495,15 @@ static int hcd_pci_suspend_noirq(struct device *dev) | |||
495 | 495 | ||
496 | pci_save_state(pci_dev); | 496 | pci_save_state(pci_dev); |
497 | 497 | ||
498 | /* | ||
499 | * Some systems crash if an EHCI controller is in D3 during | ||
500 | * a sleep transition. We have to leave such controllers in D0. | ||
501 | */ | ||
502 | if (hcd->broken_pci_sleep) { | ||
503 | dev_dbg(dev, "Staying in PCI D0\n"); | ||
504 | return retval; | ||
505 | } | ||
506 | |||
498 | /* If the root hub is dead rather than suspended, disallow remote | 507 | /* If the root hub is dead rather than suspended, disallow remote |
499 | * wakeup. usb_hc_died() should ensure that both hosts are marked as | 508 | * wakeup. usb_hc_died() should ensure that both hosts are marked as |
500 | * dying, so we only need to check the primary roothub. | 509 | * dying, so we only need to check the primary roothub. |