On Mon, Sep 14, 2009 at 12:53:05AM +0200, Rafael J. Wysocki wrote: > On Monday 14 September 2009, Matthew Garrett wrote: > > On Sun, Sep 13, 2009 at 11:24:03PM +0200, Rafael J. Wysocki wrote: > > > + } else if (!dev->wakeup.flags.run_wake) { > > > + acpi_set_gpe_type(dev->wakeup.gpe_device, > > > + dev->wakeup.gpe_number, > > > + ACPI_GPE_TYPE_WAKE); > > > > Is this going to work for cases where we have multiple devices attached > > to the same GPE? The common one is EHCI, where both EHCI HCDs will be > > one a single GPE. If we wake one, that'll then disable the GPE for the > > other. Further wakeup events will then be lost. > > You're right, I overlooked that. Some kind of refcounting is needed here. I've sent patches to implement this at the GPE level, which also change the API for requesting them. I'm waiting on feedback from Bob Moore. > > > + if (device->wakeup.flags.valid) > > > + acpi_install_notify_handler(device->handle, ACPI_SYSTEM_NOTIFY, > > > + pci_acpi_device_wakeup, > > > + &dev->dev); > > > + > > > > I think this will fail for the root bridge if acpiphp has already > > grabbed it to check for hotplug events. > > The root bridge is not a struct pci_dev and this is called only for these. Are you sure? When I did this I saw conflicts with acpiphp. I may have my terminology confused. I sent another patch that abstract that out. -- Matthew Garrett | mjg59@xxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html