Re: Thunderbolt: One missing DisplayPort?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, fascinating, so only one Thunderbolt tunnel is established by the
Thunderbolt connection manager firmware on the Dell Inspiron 7610,
despite two screens being connected via DisplayPort.

On Tue, May 31, 2022 at 11:38 AM Mika Westerberg
<mika.westerberg@xxxxxxxxxxxxxxx> wrote:
>
> > 0x0039    0 0x04 0x00 0xc009048f
> >
> The bits 31:30 tell that this tunnel is active.

> > 0x0039    0 0x04 0x00 0x0009048f
>
> This one is not.

I have a second notebook, a Dell XPS 9360 Kaby Lake generation, and
there the situation (everything else identical) is

[root@desktop-9c4gf7m ~]# dmesg | grep thunderbolt | grep HDMI
[    6.631731] thunderbolt 0000:03:00.0:  Port 9: 8086:1576 (Revision:
4, TB Version: 1, Type: DP/HDMI (0xe0101))
[    6.631989] thunderbolt 0000:03:00.0:  Port 10: 8086:1576
(Revision: 4, TB Version: 1, Type: DP/HDMI (0xe0101))
[    7.046273] thunderbolt 0000:03:00.0:  Port 10: 8086:15ef
(Revision: 6, TB Version: 1, Type: DP/HDMI (0xe0102))
[    7.046769] thunderbolt 0000:03:00.0:  Port 11: 8086:15ef
(Revision: 6, TB Version: 1, Type: DP/HDMI (0xe0102))

cat /sys/kernel/debug/thunderbolt/0-0/port9/regs | grep -E ^0x0039
0x0039    0 0x04 0x00 0xc009044f

cat /sys/kernel/debug/thunderbolt/0-0/port10/regs | grep -E ^0x0039
0x0039    0 0x04 0x00 0xc009044f

This would suggest that, on the XPS 9360, two Thunderbolt tunnels were
established (by the Thunderbolt connection manager firmware), which is
matched with both the 2.5K and the 4K screen working at 60 Hz.

>
> > ********** $ cat /sys/kernel/debug/thunderbolt/0-1/port11/regs
...
> > 0x003d    4 0x04 0x00 0x00c0a234
>
> This is the "local" capability and it tells that this one supports MST
> (bit 15).
>
> I wonder if this dock has the two DP outputs behind a MST "hub" or so?

The content of https://i-tec.pro/en/produkt/tb3cdualdpdockpd-2/
mentions "2x DisplayPort (1x DP++ support)" (where DP++ ==  Dual-mode
== DisplayPort++ - and "active vs passive" whatever that means). There
is no mention of MST anywhere, and my screens are each on their own
port.

For the dock registers, while connected to the XPS 9360, I get

[root@desktop-9c4gf7m ~]# cat
/sys/kernel/debug/thunderbolt/0-1/port10/regs | grep -E ^0x003d
0x003d    4 0x04 0x00 0x00c0a214
[root@desktop-9c4gf7m ~]# cat
/sys/kernel/debug/thunderbolt/0-1/port11/regs | grep -E ^0x003d
0x003d    4 0x04 0x00 0x00c0a214

which would imply MST in both cases?

> I don't remember if you already mentioned but have you tried to connect
> the second monitor to the USB-C downstream ports on that dock? At least
> for some docks this is where the second DP OUT adapter is routed.

I own a USB-C to DisplayPort adapter; trying to go 2.5K screen ->
DisplayPort adapter -> USB-C port on both of the USB-C ports of the
dock did not impress the screen one bit. The specs say "2x USB-C Gen 2
port (10 Gbps, for data only)", so I am not surprised.

> If the second DP tunnel gets activated you should also see bits 31:30 of
> the port6/regs to be set by the connection manager firmware.

That's what I do see for the XPS 9360, but not for the Dell Inspiron 7610.

On the (working) XPS 9360,

boltctl list
● i-tec TB3CDUALDPDOCKPD
  ├─ type:          peripheral
  ├─ name:          TB3CDUALDPDOCKPD
  ├─ vendor:        i-tec
  ├─ uuid:          c0030000-0080-840e-83dc-6b1282b06021
  ├─ generation:    Thunderbolt 3
  ├─ status:        authorized
  │  ├─ domain:     df010000-0062-6508-a2e8-71d78a74c118
  │  ├─ rx speed:   40 Gb/s = 2 lanes * 20 Gb/s
  │  ├─ tx speed:   40 Gb/s = 2 lanes * 20 Gb/s
  │  └─ authflags:  none
  ├─ authorized:    Di 31 Mai 2022 16:38:55
  ├─ connected:     Di 31 Mai 2022 16:38:51
  └─ stored:        Fr 20 Aug 2021 08:52:32
     ├─ policy:     auto
     └─ key:        no

On the (broken) Inspiron 7610,

● i-tec TB3CDUALDPDOCKPD
  ├─ type:          peripheral
  ├─ name:          TB3CDUALDPDOCKPD
  ├─ vendor:        i-tec
  ├─ uuid:          004158c8-bd26-6b01-ffff-ffffffffffff
  ├─ generation:    Thunderbolt 3
  ├─ status:        authorized
  │  ├─ domain:     606de333-0530-8780-ffff-ffffffffffff
  │  ├─ rx speed:   40 Gb/s = 2 lanes * 20 Gb/s
  │  ├─ tx speed:   40 Gb/s = 2 lanes * 20 Gb/s
  │  └─ authflags:  none
  ├─ authorized:    Tue 31 May 2022 05:49:01 PM UTC
  ├─ connected:     Tue 31 May 2022 05:49:01 PM UTC
  └─ stored:        Tue 10 May 2022 06:48:15 PM UTC
     ├─ policy:     iommu
     └─ key:        no

With respect to NVM versions (which, I think, would be the Thunderbolt
connection manager?), I get

* dock == 50.0 (cat /sys/bus/thunderbolt/devices/0-1/nvm_version)
* XPS 9360 == 26.1 (cat /sys/bus/thunderbolt/devices/0-0/nvm_version)
* Inspiron 7610 = ??? - I don't see nvm_version here?

What could be reasons that the second tunnel is not established on the
Dell? I read somewhere that Intel hands off the firmware to vendors
(Dell) who then customize it for their systems? Could the vendor have
made bad customizations / configurations of that package while
integrating it?

I would imagine that plugging in a DisplayPort cable makes the dock
(firmware) signal something to the notebook (TB firmware) and a
negotiation will take place. That negotiation fails, otherwise the
tunnel would be established, and remain established? Is there a means
to trace the negotiation?

FWIW, I have read the phrase "insufficent provision of GPU Interfaces
to the TB port" (sic, on Reddit), and a lengthy related post at
https://www.dell.com/community/XPS/Understanding-Thunderbolt-docks-GPU-bandwidth-and-GPU-interfaces/td-p/7678776
which I will not pretend to understand.

What I wonder about is whether the "GPU interfaces" situation would be
reliably discoverable by inspecting ... something ... anything?

Anyway, my impression, from a layering point of view, is that on the
stack (my imagination!)

* notebook hardware
* firmware (BIOS, Thunderbolt firmware / connection manager, ...)
* Linux thunderbolt driver
* Linux graphics drivers: drm / kms (i915 / nvidia / nouveau)

the graphics drivers are not involved when it comes to building /
maintaining the Thunderbolt(!) tunnel?

I am also reading "Thunderbolt Alternate Mode encapsulates DisplayPort
Alternate Mode". To my ears this sounds like "wrap the raw DisplayPort
Alternate Mode bitstream", just with more bandwidth. Pure "DisplayPort
Alternate Mode" I can force with success by way of disabling
Thunderbolt in the BIOS (at the expense of bandwidth -> bad refresh
rate). And "DisplayPort Alternate Mode" gives me _both_ screens,
apparently very much scraping along at the max protocol bandwidth,
with the 4K screen going black (out of sync?) every once in a while.

Sorry for my rambling, this is an area where I have no expertise.

Anyway, if those graphics drivers are involved for _Thunderbolt_,
please do tell me, and I'll venture over to dri-devel.

And given what I see above, is that still "Thunderbolt 4 Certified"
("Two 4K displays") in the case of the Dell Inspiron 7610?

BR and many thanks for your patience!
Stefan




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux