linux/drivers/thunderbolt
Mika Westerberg 2d8ff0b586 thunderbolt: Add support for runtime PM
When Thunderbolt host controller is set to RTD3 mode (Runtime D3) it is
present all the time. Because of this it is important to runtime suspend
the controller whenever possible. In case of ICM we have following rules
which all needs to be true before the host controller can be put to D3:

  - The controller firmware reports to support RTD3
  - All the connected devices announce support for RTD3
  - There is no active XDomain connection

Implement this using standard Linux runtime PM APIs so that when all the
children devices are runtime suspended, the Thunderbolt host controller
PCI device is runtime suspended as well. The ICM firmware then starts
powering down power domains towards RTD3 but it can prevent this if it
detects that there is an active Display Port stream (this is not visible
to the software, though).

The Thunderbolt host controller will be runtime resumed either when
there is a remote wake event (device is connected or disconnected), or
when there is access from userspace that requires hardware access.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-25 10:55:29 +02:00
..
Kconfig thunderbolt: Add support for host and device NVM firmware upgrade 2017-06-09 11:42:43 +02:00
Makefile thunderbolt: Add support for XDomain discovery protocol 2017-10-02 11:24:41 -07:00
cap.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ctl.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-04 09:26:51 +09:00
ctl.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-04 09:26:51 +09:00
dma_port.c thunderbolt: Add support for Intel Titan Ridge 2018-03-09 12:54:11 +03:00
dma_port.h thunderbolt: Add support for DMA configuration based mailbox 2017-06-09 11:42:43 +02:00
domain.c thunderbolt: Add support for runtime PM 2018-07-25 10:55:29 +02:00
eeprom.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
icm.c thunderbolt: Add support for runtime PM 2018-07-25 10:55:29 +02:00
nhi.c thunderbolt: Add support for runtime PM 2018-07-25 10:55:29 +02:00
nhi.h thunderbolt: Add support for Intel Titan Ridge 2018-03-09 12:54:11 +03:00
nhi_regs.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-04 09:26:51 +09:00
path.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
property.c thunderbolt: Add support for XDomain properties 2017-10-02 11:24:40 -07:00
switch.c thunderbolt: Add support for runtime PM 2018-07-25 10:55:29 +02:00
tb.c Char/Misc patches for 4.15-rc1 2017-11-16 09:10:59 -08:00
tb.h thunderbolt: Add support for runtime PM 2018-07-25 10:55:29 +02:00
tb_msgs.h thunderbolt: Add support for runtime PM 2018-07-25 10:55:29 +02:00
tb_regs.h thunderbolt: Fix small typo in variable name 2018-07-25 10:15:24 +02:00
tunnel_pci.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tunnel_pci.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
xdomain.c thunderbolt: Add support for runtime PM 2018-07-25 10:55:29 +02:00