From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: pm list <linux-pm@lists.linux-foundation.org>
Cc: Linux PCI <linux-pci@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
Jesse Barnes <jbarnes@virtuousgeek.org>,
ACPI Devel Maling List <linux-acpi@vger.kernel.org>,
Francois Romieu <romieu@fr.zoreil.com>
Subject: [RFC][PATCH 3/12] PCI / PM: Propagate wake-up enable for PCIe devices too
Date: Sun, 29 Nov 2009 16:35:54 +0100 [thread overview]
Message-ID: <200911291635.54352.rjw@sisk.pl> (raw)
In-Reply-To: <200911291632.44763.rjw@sisk.pl>
From: Rafael J. Wysocki <rjw@sisk.pl>
Having read the PM part of the PCIe 2.0 specification more carefully
I think that it was a mistake to restrict the wake-up enable
propagation to non-PCIe devices, because if we do not request
control of the root ports' PME registers via OSC, PCIe PME is
supposed to be handled by the platform, just like the non-PCIe PME.
Even if we do that, the wake-up propagation is done to allow the
devices to wake up the system from sleep states which involves the
platform anyway, so it won't hurt.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
---
drivers/pci/pci-acpi.c | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
Index: linux-2.6/drivers/pci/pci-acpi.c
===================================================================
--- linux-2.6.orig/drivers/pci/pci-acpi.c
+++ linux-2.6/drivers/pci/pci-acpi.c
@@ -112,11 +112,7 @@ static bool acpi_pci_can_wakeup(struct p
static void acpi_pci_propagate_wakeup_enable(struct pci_bus *bus, bool enable)
{
while (bus->parent) {
- struct pci_dev *bridge = bus->self;
- int ret;
-
- ret = acpi_pm_device_sleep_wake(&bridge->dev, enable);
- if (!ret || bridge->is_pcie)
+ if (!acpi_pm_device_sleep_wake(&bus->self->dev, enable))
return;
bus = bus->parent;
}
@@ -131,9 +127,7 @@ static int acpi_pci_sleep_wake(struct pc
if (acpi_pci_can_wakeup(dev))
return acpi_pm_device_sleep_wake(&dev->dev, enable);
- if (!dev->is_pcie)
- acpi_pci_propagate_wakeup_enable(dev->bus, enable);
-
+ acpi_pci_propagate_wakeup_enable(dev->bus, enable);
return 0;
}
next prev parent reply other threads:[~2009-11-29 15:35 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-15 23:47 [RFC][PATCH 0/10] PCI run-time PM support Rafael J. Wysocki
2009-11-15 23:49 ` [RFC][PATCH 1/10] PM: Add flag for devices capable of generating run-time wake-up events Rafael J. Wysocki
2009-11-16 19:39 ` Alan Stern
2009-11-15 23:50 ` [RFC][PATCH 2/10] PCI PM: Add function for checking PME status of devices Rafael J. Wysocki
2009-11-15 23:51 ` [RFC][PATCH 3/10] PCI / PM: Propagate wake-up enable for PCIe devices too Rafael J. Wysocki
2009-11-15 23:52 ` [RFC][PATCH 4/10] PCI PM: PCIe PME root port service driver (rev. 4) Rafael J. Wysocki
2009-11-15 23:53 ` [RFC][PATCH 5/10] ACPI: Add infrastructure for refcounting GPE consumers Rafael J. Wysocki
2009-11-15 23:55 ` [RFC][PATCH 6/10] ACPI: Add support for new refcounted GPE API to drivers Rafael J. Wysocki
2009-11-15 23:55 ` [RFC][PATCH 7/10] ACPI: Remove old GPE API and transition code entirely to new one Rafael J. Wysocki
2009-11-15 23:55 ` [RFC][PATCH 8/10] ACPI / PM: Add more run-time wake-up fields Rafael J. Wysocki
2009-11-15 23:57 ` [RFC][PATCH 9/10] PCI / ACPI PM: Platform support for PCI PME wake-up (rev. 3) Rafael J. Wysocki
2009-11-15 23:58 ` [RFC][PATCH 10/10] PCI PM: Run-time callbacks for PCI bus type Rafael J. Wysocki
[not found] ` <200911160057.42421.rjw@sisk.pl>
2009-11-16 4:36 ` [RFC][PATCH 9/10] PCI / ACPI PM: Platform support for PCI PME wake-up (rev. 3) Jin Dongming
[not found] ` <4B00D6E2.9010404@np.css.fujitsu.com>
2009-11-16 19:04 ` Rafael J. Wysocki
2009-11-29 15:32 ` [RFC][PATCH 0/12] PCI run-time PM support (updated) Rafael J. Wysocki
[not found] ` <200911291632.44763.rjw@sisk.pl>
2009-11-29 15:34 ` [RFC][PATCH 1/12] PM: Add flag for devices capable of generating run-time wake-up events Rafael J. Wysocki
2009-11-29 15:34 ` [RFC][PATCH 2/12] PCI PM: Add function for checking PME status of devices Rafael J. Wysocki
2009-11-29 15:35 ` Rafael J. Wysocki [this message]
2009-12-16 19:19 ` [RFC][PATCH 3/12] PCI / PM: Propagate wake-up enable for PCIe devices too Jesse Barnes
[not found] ` <20091216111939.1a756377@jbarnes-piketon>
2009-12-16 19:28 ` Rafael J. Wysocki
2009-11-29 15:36 ` [RFC][PATCH 4/12] PCI PM: PCIe PME root port service driver (rev. 5) Rafael J. Wysocki
2009-11-29 15:37 ` [RFC][PATCH 5/12] PCI PM: Make it possible to force using INTx for PCIe PME signaling Rafael J. Wysocki
2009-11-29 15:39 ` [RFC][PATCH 6/12] ACPI: Add infrastructure for refcounting GPE consumers Rafael J. Wysocki
2009-11-29 15:39 ` [RFC][PATCH 7/12] ACPI: Add support for new refcounted GPE API to drivers Rafael J. Wysocki
2009-11-29 15:40 ` [RFC][PATCH 8/12] ACPI: Remove old GPE API and transition code entirely to new one Rafael J. Wysocki
2009-11-29 15:41 ` [RFC][PATCH 9/12] ACPI / PM: Add more run-time wake-up fields Rafael J. Wysocki
2009-11-29 15:42 ` [RFC][PATCH 10/12] PCI / ACPI PM: Platform support for PCI PME wake-up (rev. 4) Rafael J. Wysocki
2009-11-29 15:43 ` [RFC][PATCH 11/12] PCI PM: Run-time callbacks for PCI bus type (rev. 2) Rafael J. Wysocki
2009-11-29 15:44 ` [RFC][PATCH 12/12] PM / r8169: Add simplified run-time PM support Rafael J. Wysocki
[not found] ` <200911291643.15603.rjw@sisk.pl>
2009-12-01 22:00 ` [RFC][PATCH 11/12] PCI PM: Run-time callbacks for PCI bus type (rev. 2) Matthew Garrett
[not found] ` <20091201220043.GA17093@srcf.ucam.org>
2009-12-01 22:50 ` Rafael J. Wysocki
[not found] ` <200911291642.20172.rjw@sisk.pl>
2009-12-04 16:21 ` [RFC][PATCH 10/12] PCI / ACPI PM: Platform support for PCI PME wake-up (rev. 4) Matthew Garrett
[not found] ` <20091204162107.GA13371@srcf.ucam.org>
2009-12-04 21:15 ` Rafael J. Wysocki
[not found] ` <200912042215.03776.rjw@sisk.pl>
2009-12-05 0:35 ` [RFC][PATCH 10/12] PCI / ACPI PM: Platform support for PCI PME wake-up (rev. 5) Rafael J. Wysocki
[not found] ` <200911291637.41461.rjw@sisk.pl>
2009-12-04 21:17 ` [RFC][PATCH 5/12] PCI PM: Make it possible to force using INTx for PCIe PME signaling (updated) Rafael J. Wysocki
2009-12-04 23:21 ` [RFC][PATCH 0/12] PCI run-time PM support (updated) Jesse Barnes
[not found] ` <200911291636.39842.rjw@sisk.pl>
2009-12-05 0:38 ` [RFC][PATCH 4/12] PCI PM: PCIe PME root port service driver (rev. 5) (updated) Rafael J. Wysocki
[not found] ` <200911291644.27288.rjw@sisk.pl>
2009-12-15 11:49 ` [RFC][PATCH 12/12] PM / r8169: Add simplified run-time PM support Pavel Machek
[not found] ` <20091215114956.GA1415@ucw.cz>
2009-12-27 19:48 ` Rafael J. Wysocki
[not found] ` <200912272048.37332.rjw@sisk.pl>
2009-12-27 20:01 ` Pavel Machek
[not found] ` <20091227200147.GJ11737@elf.ucw.cz>
2010-01-02 20:49 ` Rafael J. Wysocki
[not found] ` <201001022149.05553.rjw@sisk.pl>
2010-01-03 19:55 ` Pavel Machek
[not found] ` <20100103195544.GC11928@elf.ucw.cz>
2010-01-03 21:01 ` Rafael J. Wysocki
[not found] ` <201001032201.14087.rjw@sisk.pl>
2010-01-04 8:31 ` Pavel Machek
[not found] ` <20100104083108.GD1372@ucw.cz>
2010-01-04 9:53 ` Oliver Neukum
2010-01-04 19:51 ` Rafael J. Wysocki
[not found] ` <201001042051.08692.rjw@sisk.pl>
2010-01-04 21:00 ` Pavel Machek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200911291635.54352.rjw@sisk.pl \
--to=rjw@sisk.pl \
--cc=jbarnes@virtuousgeek.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=romieu@fr.zoreil.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox