mbox series

[0/3] Introduce Thunderbolt/USB4 <-> USB Type-C port mapping

Message ID 20250414175554.107228-1-alan.borzeszkowski@linux.intel.com
Headers show
Series Introduce Thunderbolt/USB4 <-> USB Type-C port mapping | expand

Message

Alan Borzeszkowski April 14, 2025, 5:55 p.m. UTC
Hello everyone,

This patch series introduces the creation of symlinks between
Thunderbolt/USB4 ports and their corresponding USB Type-C ports. The
primary goal is to provide users with clear visibility into which USB4
port is connected via a specific Type-C port. This provides the same
functionality that is already present in Chromebooks.

Alan Borzeszkowski (3):
  thunderbolt: Expose usb4_port_index() to other modules
  thunderbolt: Add Thunderbolt/USB4 <-> USB3 match function
  usb: typec: Connect Type-C port with associated USB4 port

 drivers/thunderbolt/tb.h        |  1 +
 drivers/thunderbolt/usb4.c      | 14 +++++++--
 drivers/thunderbolt/usb4_port.c | 56 ++++++++++++++++++++++++++++-----
 drivers/usb/typec/port-mapper.c | 23 ++++++++++++--
 include/linux/thunderbolt.h     | 18 +++++++++++
 5 files changed, 99 insertions(+), 13 deletions(-)


base-commit: 306a14d03f47fa152c7e47be544d8d582d387a20

Comments

Heikki Krogerus April 15, 2025, 9:32 a.m. UTC | #1
Hi Greg,

On Mon, Apr 14, 2025 at 09:03:42PM +0200, Greg KH wrote:
> On Mon, Apr 14, 2025 at 07:55:51PM +0200, Alan Borzeszkowski wrote:
> > Hello everyone,
> > 
> > This patch series introduces the creation of symlinks between
> > Thunderbolt/USB4 ports and their corresponding USB Type-C ports. The
> > primary goal is to provide users with clear visibility into which USB4
> > port is connected via a specific Type-C port. This provides the same
> > functionality that is already present in Chromebooks.
> 
> "mapping" in what way?  sysfs links?  If so, care to add
> Documentation/ABI/ updates?

It is already there:
https://docs.kernel.org/admin-guide/abi-testing.html#abi-sys-bus-thunderbolt-devices-usb4-portx-connector

The link is already created on Cromebooks like Alan explained, because
there each USB4/TBT port has a device node in the ACPI tables with the
appropriate _PLD (Physical Location of Device), but on systems
targeted primarily for Windows, that is not the case. There ports do
not have device nodes, so we can't make the link based on _PLD.

This series makes that same link by taking advantage of the
"usb4-host-interface" _DSD device property [1] that we always have on
those Windows platforms. That same device property that we also use in
drivers/usb/code/usb-acpi.c, and probable some other places too.

[1] https://www.usb.org/sites/default/files/D1T2-2%20-%20USB4%20on%20Windows.pdf

thanks,
Greg Kroah-Hartman April 15, 2025, 12:22 p.m. UTC | #2
On Mon, Apr 14, 2025 at 07:55:51PM +0200, Alan Borzeszkowski wrote:
> Hello everyone,
> 
> This patch series introduces the creation of symlinks between
> Thunderbolt/USB4 ports and their corresponding USB Type-C ports. The
> primary goal is to provide users with clear visibility into which USB4
> port is connected via a specific Type-C port. This provides the same
> functionality that is already present in Chromebooks.
> 
> Alan Borzeszkowski (3):
>   thunderbolt: Expose usb4_port_index() to other modules
>   thunderbolt: Add Thunderbolt/USB4 <-> USB3 match function
>   usb: typec: Connect Type-C port with associated USB4 port
> 
>  drivers/thunderbolt/tb.h        |  1 +
>  drivers/thunderbolt/usb4.c      | 14 +++++++--
>  drivers/thunderbolt/usb4_port.c | 56 ++++++++++++++++++++++++++++-----
>  drivers/usb/typec/port-mapper.c | 23 ++++++++++++--
>  include/linux/thunderbolt.h     | 18 +++++++++++
>  5 files changed, 99 insertions(+), 13 deletions(-)
> 
> 
> base-commit: 306a14d03f47fa152c7e47be544d8d582d387a20
> -- 
> 2.43.0
> 
> 

I'm guessing that these will come through the thunderbolt tree to me?
Mika Westerberg April 15, 2025, 12:36 p.m. UTC | #3
On Tue, Apr 15, 2025 at 02:22:35PM +0200, Greg KH wrote:
> On Mon, Apr 14, 2025 at 07:55:51PM +0200, Alan Borzeszkowski wrote:
> > Hello everyone,
> > 
> > This patch series introduces the creation of symlinks between
> > Thunderbolt/USB4 ports and their corresponding USB Type-C ports. The
> > primary goal is to provide users with clear visibility into which USB4
> > port is connected via a specific Type-C port. This provides the same
> > functionality that is already present in Chromebooks.
> > 
> > Alan Borzeszkowski (3):
> >   thunderbolt: Expose usb4_port_index() to other modules
> >   thunderbolt: Add Thunderbolt/USB4 <-> USB3 match function
> >   usb: typec: Connect Type-C port with associated USB4 port
> > 
> >  drivers/thunderbolt/tb.h        |  1 +
> >  drivers/thunderbolt/usb4.c      | 14 +++++++--
> >  drivers/thunderbolt/usb4_port.c | 56 ++++++++++++++++++++++++++++-----
> >  drivers/usb/typec/port-mapper.c | 23 ++++++++++++--
> >  include/linux/thunderbolt.h     | 18 +++++++++++
> >  5 files changed, 99 insertions(+), 13 deletions(-)
> > 
> > 
> > base-commit: 306a14d03f47fa152c7e47be544d8d582d387a20
> > -- 
> > 2.43.0
> > 
> > 
> 
> I'm guessing that these will come through the thunderbolt tree to me?

Yes, I will pick them up and send to you with the rest of the v6.16 stuff.
Mika Westerberg April 17, 2025, 9:27 a.m. UTC | #4
On Mon, Apr 14, 2025 at 07:55:51PM +0200, Alan Borzeszkowski wrote:
> Hello everyone,
> 
> This patch series introduces the creation of symlinks between
> Thunderbolt/USB4 ports and their corresponding USB Type-C ports. The
> primary goal is to provide users with clear visibility into which USB4
> port is connected via a specific Type-C port. This provides the same
> functionality that is already present in Chromebooks.
> 
> Alan Borzeszkowski (3):
>   thunderbolt: Expose usb4_port_index() to other modules
>   thunderbolt: Add Thunderbolt/USB4 <-> USB3 match function
>   usb: typec: Connect Type-C port with associated USB4 port

All applied to thunderbolt.git/next, thanks!