On Sun, Apr 15, 2018 at 07:17:46PM +0200, Pali Rohár wrote: > On Saturday 14 April 2018 13:17:11 Lukas Wunner wrote: > > On Sat, Apr 14, 2018 at 12:49:50PM +0200, Pali Rohár wrote: > > > On Saturday 14 April 2018 12:45:12 Lukas Wunner wrote: > > > > On Thu, Apr 12, 2018 at 10:15:41PM +0800, Kai-Heng Feng wrote: > > > > > Do you have any suggestion to check if it connects to the system via > > > > > Thunderbolt? > > > > > > > > Just use pci_is_thunderbolt_attached(), introduced by 8531e283bee6, > > > > like this: > > > > > > > > if (check_dell_switchable_gfx(pci) && !pci_is_thunderbolt_attached(pci)) > > > > > > And what about PCI-e device attached to ExpressCard slot? > > > > I don't know of a bullet-proof way to recognize those. In theory > > one could check if the PCIe port above the GPU is a non-hotplug > > root port, but I think there are machines with hotplug capable > > root ports with GPUs below them that aren't actually removable. > > > > However I think ExpressCard-attached GPUs were rare, much less ones > > with integrated HDA controller, so in reality that's probably a > > non-issue. > > Hm... maybe another idea: Is it possible to detect which audio pci > device belongs to graphics card via vga_switcheroo? Currently, looking > at output it is same PCI device as graphic card, just different PCI > function. No, the DRM drivers don't filter ExpressCard-attached GPUs when registering with vga_switcheroo. They do filter Thunderbolt- attached GPUs. The ExpressCard 2.0 spec defines some ACPI stuff that *might* be used to recognize root ports that are ExpressCard slots, but I'm not sure how reliable that is. I don't have such a machine and have no experience with it. This is from the MacBookPro8,3 DSDT: Device (RP04) { Name (_ADR, 0x001C0003) OperationRegion (A1E0, PCI_Config, 0x19, 0x01) Field (A1E0, ByteAcc, NoLock, Preserve) { SECB, 8 } Device (EXCD) { Name (_ADR, 0x00) Name (_SUN, 0x01) Method (_RMV, 0, NotSerialized) { Return (0x01) } Name (_EJD, "\\_SB.PCI0.EHC2.HUBN.PRTN.PRT4") } ... } Thanks, Lukas