linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Lukas Wunner <lukas@wunner.de>
To: linux-pci@vger.kernel.org
Cc: linux-pm@vger.kernel.org, linux-acpi@vger.kernel.org,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Peter Wu <peter@lekensteyn.nl>,
	Andreas Noever <andreas.noever@gmail.com>
Subject: [PATCH 0/4] PCI PM refinements
Date: Wed, 31 Aug 2016 08:15:18 +0200	[thread overview]
Message-ID: <cover.1472554278.git.lukas@wunner.de> (raw)

The following patches are part of my Thunderbolt Runtime PM series.
I'm posting them separately to split the series into digestible chunks.

They benefit everyone, not just Thunderbolt, and Thunderbolt works fine
without them (just not with the same degree of perfection).

Patch [1/4] affords direct-complete to devices which are not platform-
power-manageable, yet can be suspended to D3cold with a nonstandard
mechanism. It does so using a heuristic: If a device's current_state
is D3cold and it is not power-manageable, it is assumed that a
nonstandard PM mechanism is at work and the device is left asleep.
The patch is the outcome of a discussion with Rafael and Alan on
linux-pci@ and I would like to thank both for tirelessly responding
to my questions.

Patch [3/4] replaces the unconditional resume after direct-complete with
a conditional resume by determining if the platform firmware has put the
device in reset-power-on or not.

Because the D3cold state cannot be determined from the PMCSR, patch [2/4]
adds a hook to query the platform firmware for its opinion on the device's
power state.

Finally, patch [4/4] changes the shutdown handling of PCI devices such
that they are no longer woken without reason.

The result of these patches should be a speedup and decreased power
consumption for system sleep and system shutdown (both for devices that
are platform-power-manageable and those that aren't).

If you prefer point & click interfaces, the patches are browsable here:
https://github.com/l1k/linux/commits/thunderbolt_runpm_v3

Thanks,

Lukas


Lukas Wunner (4):
  PCI: Afford direct-complete to devices with nonstandard pm
  PCI: Query platform firmware for device power state
  PCI: Avoid unnecessary resume after direct-complete
  PCI: Avoid unnecessary resume on shutdown

 drivers/pci/pci-acpi.c   | 23 +++++++++++++++++++++++
 drivers/pci/pci-driver.c | 20 ++++++++++++++++++--
 drivers/pci/pci.c        | 38 +++++++++++++++++++++++++++++++-------
 drivers/pci/pci.h        |  3 +++
 4 files changed, 75 insertions(+), 9 deletions(-)

-- 
2.8.1


             reply	other threads:[~2016-08-31  6:15 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-31  6:15 Lukas Wunner [this message]
2016-08-31  6:15 ` [PATCH 4/4] PCI: Avoid unnecessary resume on shutdown Lukas Wunner
2016-09-14  0:29   ` Rafael J. Wysocki
2016-09-15 13:11     ` Lukas Wunner
2016-09-15 13:57       ` Rafael J. Wysocki
2016-08-31  6:15 ` [PATCH 1/4] PCI: Afford direct-complete to devices with nonstandard PM Lukas Wunner
2016-09-14  0:05   ` Rafael J. Wysocki
2016-08-31  6:15 ` [PATCH 2/4] PCI: Query platform firmware for device power state Lukas Wunner
2016-09-14  0:21   ` Rafael J. Wysocki
2016-09-14 10:50     ` Lukas Wunner
2016-09-14 13:01       ` Rafael J. Wysocki
2016-09-14 16:47         ` Rafael J. Wysocki
2016-09-14 21:36           ` Rafael J. Wysocki
2016-09-14 21:47             ` Rafael J. Wysocki
2016-09-14 22:58           ` Lukas Wunner
2016-09-15  0:49             ` Rafael J. Wysocki
2016-09-17 13:49         ` Lukas Wunner
2016-09-18  1:09           ` Rafael J. Wysocki
2016-08-31  6:15 ` [PATCH 3/4] PCI: Avoid unnecessary resume after direct-complete Lukas Wunner
2016-09-14  0:29   ` Rafael J. Wysocki
2016-09-14  0:43     ` Rafael J. Wysocki
2016-09-14  0:50   ` Rafael J. Wysocki
2016-09-14  9:56     ` Lukas Wunner
2016-09-14 13:14       ` Rafael J. Wysocki
2016-09-18 12:43         ` Lukas Wunner
2016-09-12 22:07 ` [PATCH 0/4] PCI PM refinements Bjorn Helgaas
2016-09-12 22:15   ` Rafael J. Wysocki

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=cover.1472554278.git.lukas@wunner.de \
    --to=lukas@wunner.de \
    --cc=andreas.noever@gmail.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=peter@lekensteyn.nl \
    --cc=rjw@rjwysocki.net \
    /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;
as well as URLs for NNTP newsgroup(s).