From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Garrett Subject: Re: [RFC][PATCH 3/4] PCI / ACPI PM: Platform support for PCI PME wake-up Date: Sun, 13 Sep 2009 23:55:18 +0100 Message-ID: <20090913225518.GA31787@srcf.ucam.org> References: <200909132320.05077.rjw@sisk.pl> <200909132324.03340.rjw@sisk.pl> <20090913222505.GC31175@srcf.ucam.org> <200909140053.05779.rjw@sisk.pl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from cavan.codon.org.uk ([93.93.128.6]:59659 "EHLO cavan.codon.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753028AbZIMWz3 (ORCPT ); Sun, 13 Sep 2009 18:55:29 -0400 Content-Disposition: inline In-Reply-To: <200909140053.05779.rjw@sisk.pl> Sender: linux-acpi-owner@vger.kernel.org List-Id: linux-acpi@vger.kernel.org To: "Rafael J. Wysocki" Cc: pm list , Linux PCI , Len Brown , LKML , Jesse Barnes , Shaohua Li , ACPI Devel Maling List 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