xref: /linux/Documentation/ABI/testing/configfs-thunderbolt_stream (revision 364f4a55c661641c02c86a849f0608d8fc3c0006)
1*6db21d81SMika WesterbergWhat:		/sys/kernel/config/thunderbolt/stream/<xdomain>.<service>
2*6db21d81SMika WesterbergDate:		Sep 2026
3*6db21d81SMika WesterbergKernelVersion:	v7.2
4*6db21d81SMika WesterbergContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
5*6db21d81SMika WesterbergDescription:
6*6db21d81SMika Westerberg		Configuration group for a stream Thunderbolt/USB4
7*6db21d81SMika Westerberg		service. It is possible to create groups even if there
8*6db21d81SMika Westerberg		is no connection yet to the other host. Once a
9*6db21d81SMika Westerberg		connection established and there is stream service on
10*6db21d81SMika Westerberg		the remote side that matches, this configuration is
11*6db21d81SMika Westerberg		applied to it.
12*6db21d81SMika Westerberg
13*6db21d81SMika Westerberg		To find the service name you can run tblist from tbtools [1]:
14*6db21d81SMika Westerberg
15*6db21d81SMika Westerberg		  # tblist -A
16*6db21d81SMika Westerberg		  ...
17*6db21d81SMika Westerberg		  Domain 0 Route 3 Index 0: stream
18*6db21d81SMika Westerberg
19*6db21d81SMika Westerberg		[1] https://github.com/intel/tbtools
20*6db21d81SMika Westerberg
21*6db21d81SMika WesterbergWhat:		/sys/kernel/config/thunderbolt/stream/<xdomain>.<service>/$name
22*6db21d81SMika WesterbergDate:		Sep 2026
23*6db21d81SMika WesterbergKernelVersion:	v7.2
24*6db21d81SMika WesterbergContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
25*6db21d81SMika WesterbergDescription:
26*6db21d81SMika Westerberg		Creates new stream with $name and fills it with the
27*6db21d81SMika Westerberg		default values. If there is an advertised remote stream
28*6db21d81SMika Westerberg		with the same name, uses its values as the default.
29*6db21d81SMika Westerberg
30*6db21d81SMika WesterbergWhat:		/sys/kernel/config/thunderbolt/stream/<xdomain>.<service>/$name/index
31*6db21d81SMika WesterbergDate:		Sep 2026
32*6db21d81SMika WesterbergKernelVersion:	v7.2
33*6db21d81SMika WesterbergContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
34*6db21d81SMika WesterbergDescription:
35*6db21d81SMika Westerberg		This matches the X in /dev/tbstreamX and allows userspace
36*6db21d81SMika Westerberg		to map the configfs directory to the corresponding character
37*6db21d81SMika Westerberg		device.
38*6db21d81SMika Westerberg
39*6db21d81SMika WesterbergWhat:		/sys/kernel/config/thunderbolt/stream/<xdomain>.<service>/$name/in_hopid
40*6db21d81SMika WesterbergDate:		Sep 2026
41*6db21d81SMika WesterbergKernelVersion:	v7.2
42*6db21d81SMika WesterbergContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
43*6db21d81SMika WesterbergDescription:
44*6db21d81SMika Westerberg		In HopID used with the read path of the tunnel. Available HopIDs
45*6db21d81SMika Westerberg		for tunneling start from 8. You can pass also -1 for automatic
46*6db21d81SMika Westerberg		allocation. The allocated value can be read here. Writing 0 will
47*6db21d81SMika Westerberg		de-allocate if the stream is not in use.
48*6db21d81SMika Westerberg
49*6db21d81SMika Westerberg		To figure out the maximum HopID you can run tbget from
50*6db21d81SMika Westerberg		tbtools for the lane adapter. For example below we check
51*6db21d81SMika Westerberg		for lane adapter number 1 (first USB4 port):
52*6db21d81SMika Westerberg
53*6db21d81SMika Westerberg		  # tbget -r 0 -a 1 -D ADP_CS_5.Max\ Input\ HopID
54*6db21d81SMika Westerberg		  19
55*6db21d81SMika Westerberg
56*6db21d81SMika Westerberg		This allows to use anything between 8 and 19 inclusive.
57*6db21d81SMika Westerberg
58*6db21d81SMika WesterbergWhat:		/sys/kernel/config/thunderbolt/stream/<xdomain>.<service>/$name/out_hopid
59*6db21d81SMika WesterbergDate:		Sep 2026
60*6db21d81SMika WesterbergKernelVersion:	v7.2
61*6db21d81SMika WesterbergContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
62*6db21d81SMika WesterbergDescription:
63*6db21d81SMika Westerberg		Out HopID used with the write path of the tunnel. Available HopIDs
64*6db21d81SMika Westerberg		for tunneling start from 8. You can pass also -1 for automatic
65*6db21d81SMika Westerberg		allocation. The allocated value can be read here. Writing 0 will
66*6db21d81SMika Westerberg		de-allocate if the stream is not in use. See @in_hopid
67*6db21d81SMika Westerberg		for how to figure out the maximum HopID.
68*6db21d81SMika Westerberg
69*6db21d81SMika WesterbergWhat:		/sys/kernel/config/thunderbolt/stream/<xdomain>.<service>/$name/ring_size
70*6db21d81SMika WesterbergDate:		Sep 2026
71*6db21d81SMika WesterbergKernelVersion:	v7.2
72*6db21d81SMika WesterbergContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
73*6db21d81SMika WesterbergDescription:
74*6db21d81SMika Westerberg		Size of the TX/RX rings. Can be adjusted between 32 and
75*6db21d81SMika Westerberg		4096. The default is 256.
76*6db21d81SMika Westerberg
77*6db21d81SMika WesterbergWhat:		/sys/kernel/config/thunderbolt/stream/<xdomain>.<service>/$name/throttling
78*6db21d81SMika WesterbergDate:		Sep 2026
79*6db21d81SMika WesterbergKernelVersion:	v7.2
80*6db21d81SMika WesterbergContact:	Mika Westerberg <mika.westerberg@linux.intel.com>
81*6db21d81SMika WesterbergDescription:
82*6db21d81SMika Westerberg		Interrupt throttling rate in ns. Lower values can give
83*6db21d81SMika Westerberg		better latency. The default is 8192 ns.
84