All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] thunderbolt: Add support for runtime PM
@ 2018-06-18 11:07 Mika Westerberg
  2018-06-18 11:07 ` [PATCH 1/5] thunderbolt: Use 64-bit DMA mask if supported by the platform Mika Westerberg
                   ` (5 more replies)
  0 siblings, 6 replies; 16+ messages in thread
From: Mika Westerberg @ 2018-06-18 11:07 UTC (permalink / raw)
  To: linux-kernel
  Cc: Andreas Noever, Michael Jamet, Yehezkel Bernat, Lukas Wunner,
	Rafael J. Wysocki, Christian Kellner, Mario Limonciello,
	Mika Westerberg

Hi all,

In recent PCs such as Lenovo X1 Carbon 6th generation the Thunderbolt
controller is in RTD3 mode (Runtime D3). This is different from the
previous modes because now the controller is present most of the time (it
still will be hot-removed/hot-added during NVM firmware upgrade). Because
of that we need to dynamically power it down whenever possible to save some
power.

This patch series adds Linux runtime PM support for the Thunderbolt host
controller driver using ICM firmware but it should be generic enough for
future additions to allow similar functionality for the older Apple
hardware as well (even though those system do not support full RTD3, it
still makes it possible for the host controller to go to low power state if
cable is not connected).

With these patches the driver automatically runtime suspends the host
controller after being idle for 15s. The connected Thunderbolt devices (if
any) need to support RTD3 mode as well. Typically all 3rd generation
devices (Alpine Ridge, Titan Ridge) support this.

However, while this provides some power savings, there is more work to do
in order to allow powering down the PCIe root port leading to the
Thunderbolt PCIe hierarchy. This work is still in progress.

Mika Westerberg (5):
  thunderbolt: Use 64-bit DMA mask if supported by the platform
  thunderbolt: Do not unnecessarily call ICM get route
  thunderbolt: No need to take tb->lock in domain suspend/complete
  thunderbolt: Use correct ICM commands in system suspend
  thunderbolt: Add support for runtime PM

 drivers/thunderbolt/domain.c  |  55 ++++++++---
 drivers/thunderbolt/icm.c     | 172 ++++++++++++++++++++++++++++------
 drivers/thunderbolt/nhi.c     |  46 ++++++++-
 drivers/thunderbolt/switch.c  |  65 ++++++++++++-
 drivers/thunderbolt/tb.h      |  10 ++
 drivers/thunderbolt/tb_msgs.h |   4 +
 drivers/thunderbolt/xdomain.c |  18 ++++
 7 files changed, 323 insertions(+), 47 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2018-07-09  6:41 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-18 11:07 [PATCH 0/5] thunderbolt: Add support for runtime PM Mika Westerberg
2018-06-18 11:07 ` [PATCH 1/5] thunderbolt: Use 64-bit DMA mask if supported by the platform Mika Westerberg
2018-06-18 11:07 ` [PATCH 2/5] thunderbolt: Do not unnecessarily call ICM get route Mika Westerberg
2018-06-18 11:07 ` [PATCH 3/5] thunderbolt: No need to take tb->lock in domain suspend/complete Mika Westerberg
2018-06-18 11:07 ` [PATCH 4/5] thunderbolt: Use correct ICM commands in system suspend Mika Westerberg
2018-06-18 11:07 ` [PATCH 5/5] thunderbolt: Add support for runtime PM Mika Westerberg
2018-07-07 13:38   ` Lukas Wunner
2018-07-07 14:25     ` Mika Westerberg
2018-07-07 14:43       ` Lukas Wunner
2018-07-07 15:54         ` Mika Westerberg
2018-07-07 21:14   ` Lukas Wunner
2018-07-08  7:31     ` Mika Westerberg
2018-07-08  9:56       ` Yehezkel Bernat
2018-07-09  4:20         ` Mario.Limonciello
2018-07-09  6:41           ` Mika Westerberg
2018-07-04  4:37 ` [PATCH 0/5] " Mika Westerberg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.