Re: [PATCH 0/5] thunderbolt: Add support for runtime PM
From: Mika Westerberg
Date: Wed Jul 04 2018 - 00:38:40 EST
On Mon, Jun 18, 2018 at 02:07:26PM +0300, Mika Westerberg wrote:
> 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
All applied to thunderbolt.git/next.