Re: [PATCH 5/5] thunderbolt: Add support for runtime PM

From: Mika Westerberg
Date: Sun Jul 08 2018 - 03:31:48 EST


On Sat, Jul 07, 2018 at 11:14:01PM +0200, Lukas Wunner wrote:
> On Mon, Jun 18, 2018 at 02:07:31PM +0300, Mika Westerberg wrote:
> > 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.
>
> IIUC, if there is no xdomain, after 15 s all switch devices as well as
> the domain device and the NHI will have runtime suspended. The control
> channel is torn down as well, so you can no longer receive notifications
> over it. Then how is wakeup of the NHI signalled on hotplug/unplug?
> Do you get a PME for the NHI device?

Yes, it sends PME.

> Because I'm fairly certain that
> I do not get a PME for the Light Ridge in my MacBook Pro, but I'll test
> this once more and modify negotiate_os_control() to grant PME control
> to the OS.

I think in case of Apple hardware, they handle the in some different
means than PME (possibly part of chipset driver or ACPI method/event).