Hi Mario,
On Sun, Feb 13, 2022 at 11:26:56AM -0600, Limonciello, Mario wrote:
On 2/13/2022 02:20, Lukas Wunner wrote:
On Fri, Feb 11, 2022 at 01:32:42PM -0600, Mario Limonciello wrote:
The `is_thunderbolt` attribute is currently a dumping ground for a variety of things.
It's not as arbitrary as it may seem. Quite a bit of thought went into the current design.
Instead use the driver core removable attribute to indicate the detail a device is attached to a thunderbolt or USB4 chain.
You're missing the point that "is_thunderbolt" is set on the *controller* (i.e. its upstream and downstream ports).
The controller itself is *not* removable if it's the host controller.
However a device can be assumed to be removable if it has an ancestor which has the "is_thunderbolt" flag set.
Ah right... I wonder if really what this series should be about then is setting up the the PCIe endpoints for PCIe tunneling and XHCI tunneling to be marked as "external" instead then. It would mean that existing code will apply the removable attribute to everything downstream (and presumably at least some of those drivers it will continue to make sense to drop "pcie_is_thunderbolt_attached" and instead check dev_is_removable.
Yes, I think this is the right thing to do. Anything connected over PCIe/USB 3.x tunnel is pretty much "removable" whereas the host controllers may or may not. Typically they are not.