On Fri, Jul 20, 2018 at 06:23:49PM +0300, Mika Westerberg wrote: > On Wed, Jul 18, 2018 at 09:30:53PM +0200, Lukas Wunner wrote: > > Hi Mika, > > > > sorry for the delay! > > > > On Thu, Jun 21, 2018 at 02:13:54PM +0300, Mika Westerberg wrote: > > > On Sat, Jun 16, 2018 at 09:25:00PM +0200, Lukas Wunner wrote: > > > > + /* Even the oldest 2010 Thunderbolt controller supports D3. */ > > > > + if (bridge->is_thunderbolt) > > > > + return true; > > > > > > I have a small concern here. In PC world native PCIe hotplug used with > > > Thunderbolt comes in two flavors: > > > > > > - Native PCI hotplug without runtime PM > > > - Native PCI hotplug with runtime PM > > > > > > The former works so that even if it uses native PCIe hotplug, the power > > > management is done so that the Thunderbolt host router is hot-removed > > > when there is nothing connected (and that brings the power savings). > > > With the above change we start putting all Thunderbolt PCIe hotplug > > > ports to D3 runtime. While this probably works (and I tested it on the > > > same Dell) I don't think Windows does it and it may lead to a path that > > > has not been tested very thoroughly by OEMs. > > > > > > So I wonder if it makes sense to restrict this particular check to Apple > > > hardware at this point? > > > > I'm not familiar at all with Windows, so this your call. Normally I'd say, > > if there's no known case which forces us to constrain this to Apple, we > > probably shouldn't be overzealous. OTOH I imagine you have to deal with > > Windows and broken BIOSes on a daily basis and can anticipate if problems > > are to be expected. > > > > The "host router" is the NHI, right? So IIUC all downstream ports and > > the upstream port of the TB PCIe switch may go to D3hot, same for the > > root port. And your concern is that hotplug addition or removal of the > > NHI might not work if those ports are in D3hot? > > Host router is the PCIe switch + NHI + xHCI. My concern is that now we > start putting the downstream hotplug ports of the host router (the ports > where TBT PCIe daisy chain is to be extented) to D3hot even when the > whole power management of the "Native PCI hotplug without runtime PM" is > done pretty much by hot-removing the whole host router if there is > nothing connected. I see Bjorn already merged these so please ignore the above. We can add the Apple check later if this turns out causing problems.