-
David Brownell authored
This patch makes usbcore behave better with system sleep states, fixing some PM/PCI integration problems as well as some PM/USB ones. - PCI HCDs should behave better, even if they don't support PCI PM; tested with both ACPI and APM suspend cycles, and swsusp. - Systems that advertise ACPI S1 support don't necessarily support the PCI D1 or D2 states for their USB controllers. (Examples include Centrino laptops.) This patch makes them suspend into D3hot, which always works (and won't take much longer to resume, either). - Handle the "go into deeper suspend" transition the way PCI drivers are supposed to. - Understand that USB only has one suspend state: if the device is suspended, it can't do any better. - Export some symbols to HCDs, so they can reuse more of the existing usbcore framework. Plus minor related cleanups. The PCI D1/D2 state issue is a variant of an earlier problem, with the same root cause: the PM core thinking there's a one-to-one mapping between system states (roughly: ACPI S0/S1/S3/S4) and PCI states that a given device can support (only D0 is required, D3hot is common). That same issue comes up again with USB. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
3cf710a1