On Mon, Sep 08, 2014 at 10:50:27PM +0200, Mark Kettenis wrote: > > > > On Sat, Sep 06, 2014 at 09:18:26PM +0200, Mark Kettenis wrote: > > > As pea@ noticed, Apple machines with an NVIDIA MCP79 chipset will > > > suffer an interrupt storm when you send them WOL packet to their > > > nfe(4) interface. The acpi0 interrupt handler fires continously in > > > this case. Some digging revealed that the device wake GPE for the > > > nfe(4) interface was casuing this. The machine's AML sends a > > > notification, suggesting that the device driver for the device needs > > > to take some action. But ours doesn't. > > > > > > Some more digging revealed that the PCIe PME status bit gets set. > > > Clearing that bit stops the interrupts and makes the machine happy > > > again. > > > > > > So here is a diff that installs a notification handler for all PCI > > > devices that clears the PME status bit if the device has one. This > > > seems to be what Windows does. At least I found some Microsoft > > > documentation that says that the PCI driver is responsible for > > > clearing the PME status bit if a PME event is received. > > > > > > ok? > > > > Just a nit, there's a dozen or so notify types in the spec, should we > > replace '2' with something more understandable like ACPI_PME_EVENT or > > similar? That suggestion should probably apply to the others we look > > at in other places like 0x81 / 0x82, etc. Maybe that's better left > > for another cleanup diff? > > > > Other than that, diff looks ok to me. > > Yeah, some #defines for those magic constants would be good. We > actually have some, but their names are dock-specific. So this will > need some additional cleanup. I'll see what I can do. >
Different diff. I think this one can go in as is and we can go through with a different diff to clean it later. -ml
