On Mon, 3 Oct 2011 23:16:33 +0200 "Rafael J. Wysocki" <rjw@xxxxxxx> wrote: > From: Rafael J. Wysocki <rjw@xxxxxxx> > > The land of PCI power management is a land of sorrow and ugliness, > especially in the area of signaling events by devices. There are > devices that set their PME Status bits, but don't really bother > to send a PME message or assert PME#. There are hardware vendors > who don't connect PME# lines to the system core logic (they know > who they are). There are PCI Express Root Ports that don't bother > to trigger interrupts when they receive PME messages from the devices > below. There are ACPI BIOSes that forget to provide _PRW methods for > devices capable of signaling wakeup. Finally, there are BIOSes that > do provide _PRW methods for such devices, but then don't bother to > call Notify() for those devices from the corresponding _Lxx/_Exx > GPE-handling methods. In all of these cases the kernel doesn't have > a chance to receive a proper notification that it should wake up a > device, so devices stay in low-power states forever. Worse yet, in > some cases they continuously send PME Messages that are silently > ignored, because the kernel simply doesn't know that it should clear > the device's PME Status bit. > > This problem was first observed for "parallel" (non-Express) PCI > devices on add-on cards and Matthew Garrett addressed it by adding > code that polls PME Status bits of such devices, if they are enabled > to signal PME, to the kernel. Recently, however, it has turned out > that PCI Express devices are also affected by this issue and that it > is not limited to add-on devices, so it seems necessary to extend > the PME polling to all PCI devices, including PCI Express and planar > ones. Still, it would be wasteful to poll the PME Status bits of > devices that are known to receive proper PME notifications, so make > the kernel (1) poll the PME Status bits of all PCI and PCIe devices > enabled to signal PME and (2) disable the PME Status polling for > devices for which correct PME notifications are received. > > Tested-by: Sarah Sharp <sarah.a.sharp@xxxxxxxxxxxxxxx> > Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx> > --- Applied to linux-next, thanks. -- Jesse Barnes, Intel Open Source Technology Center
Attachment:
signature.asc
Description: PGP signature