lkml.org 
[lkml]   [2009]   [Sep]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RFC][PATCH 3/4] PCI / ACPI PM: Platform support for PCI PME wake-up
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@srcf.ucam.org


\
 
 \ /
  Last update: 2009-09-14 00:57    [W:1.483 / U:1.040 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site