DisplayLink / evdi

Extensible Virtual Display Interface
MIT License
689 stars 179 forks source link

sc8280xp: Can't find more than one screen at a time #379

Open theironrobin opened 1 year ago

theironrobin commented 1 year ago

Hardware is Lenovo Thinkpad X13s (sc8280xp SoC)

Before connecting, xrandr output:

> $ xrandr --listproviders                                                     
Providers: number : 1
Provider 0: id: 0x44 cap: 0x2, Sink Output crtcs: 3 outputs: 3 associated providers: 0 name:modesetting

alex@naga ~                                                          [13:33:48]
> $ xrandr --current                                                           
Screen 0: minimum 320 x 200, current 1920 x 1200, maximum 5120 x 4096
eDP-1 connected primary 1920x1200+0+0 (normal left inverted right x axis y axis) 286mm x 179mm
   1920x1200     60.00*+
Unknown20-1 disconnected (normal left inverted right x axis y axis)
Unknown20-2 disconnected (normal left inverted right x axis y axis)

After connecting to DisplayLink dock with two external monitors, dmesg output:

[  154.023785] usb 3-1: new high-speed USB device number 2 using xhci-hcd
[  154.179170] usb 3-1: New USB device found, idVendor=047d, idProduct=8074, bcdDevice=93.05
[  154.179218] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  154.179235] usb 3-1: Product: USB2.1 Hub
[  154.179248] usb 3-1: Manufacturer: GenesysLogic
[  154.233435] hub 3-1:1.0: USB hub found
[  154.234175] hub 3-1:1.0: 4 ports detected
[  154.628147] usb 3-1.1: new high-speed USB device number 3 using xhci-hcd
[  154.765820] usb 3-1.1: New USB device found, idVendor=17e9, idProduct=6000, bcdDevice=32.01
[  154.765842] usb 3-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  154.765849] usb 3-1.1: Product: USB-C Dual-4K Dock
[  154.765853] usb 3-1.1: Manufacturer: DisplayLink
[  154.765858] usb 3-1.1: SerialNumber: DGWC00120695073
[  154.884174] mc: Linux media interface: v0.10
[  154.885078] usbcore: registered new interface driver cdc_ether
[  154.907875] cdc_ncm 3-1.1:1.5: MAC-Address: 80:6d:97:1f:d3:6a
[  154.907887] cdc_ncm 3-1.1:1.5: setting rx_max = 16384
[  154.907976] cdc_ncm 3-1.1:1.5: setting tx_max = 16384
[  154.908192] cdc_ncm 3-1.1:1.5 eth0: register 'cdc_ncm' at usb-xhci-hcd.1.auto-1.1, CDC NCM (SEND ZLP), 80:6d:97:1f:d3:6a
[  154.908294] usbcore: registered new interface driver cdc_ncm
[  154.910620] usbcore: registered new interface driver cdc_wdm
[  154.959130] usb 3-1.2: new high-speed USB device number 4 using xhci-hcd
[  155.100239] usb 3-1.1: Warning! Unlikely big volume range (=767), cval->res is probably wrong.
[  155.100253] usb 3-1.1: [4] FU [Mic Capture Volume] ch = 2, val = -4592/7680/16
[  155.106563] usb 3-1.1: Warning! Unlikely big volume range (=672), cval->res is probably wrong.
[  155.106578] usb 3-1.1: [7] FU [USB Audio Playback Volume] ch = 6, val = -10752/0/16
[  155.107295] usbcore: registered new interface driver snd-usb-audio
[  155.107360] usbcore: registered new interface driver cdc_mbim
[  155.244935] usb 3-1.2: New USB device found, idVendor=047d, idProduct=8076, bcdDevice= 6.60
[  155.244948] usb 3-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  155.244951] usb 3-1.2: Product: USB2.0 Hub
[  155.244954] usb 3-1.2: Manufacturer: VIA Labs, Inc.
[  155.321313] hub 3-1.2:1.0: USB hub found
[  155.321733] hub 3-1.2:1.0: 4 ports detected
[  155.779223] usb 3-1.4: new high-speed USB device number 5 using xhci-hcd
[  155.951972] usb 3-1.4: New USB device found, idVendor=047d, idProduct=8074, bcdDevice=93.05
[  155.951982] usb 3-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  155.951984] usb 3-1.4: Product: USB2.1 Hub
[  155.951986] usb 3-1.4: Manufacturer: GenesysLogic
[  156.025330] hub 3-1.4:1.0: USB hub found
[  156.025893] hub 3-1.4:1.0: 4 ports detected
[  156.060455] evdi: [I] (card1) Opened by Task 485 (DesktopManagerE) of process 473 (DisplayLinkMana)
[  156.060479] evdi evdi.0: [drm] Cannot find any crtc or sizes
[  156.060500] evdi: [W] evdi_painter_send_update_ready_if_needed:693 Painter does not exist!
[  156.060727] [drm] Initialized evdi 1.12.0 20220713 for evdi.0 on minor 1
[  156.060747] evdi: [I] Evdi platform_device create
[  156.060750] evdi: [I] Attaching to usb:3-1.1
[  156.078061] evdi: [I] (card1) Opened by Task 444 (systemd-logind) of process 444 (systemd-logind)
[  156.206055] evdi: [I] (card1) Opened by Task 485 (DesktopManagerE) of process 473 (DisplayLinkMana)
[  156.209741] evdi: [I] (card1) Added i2c adapter bus number 5
[  156.209747] evdi: [I] (card1) Connected with Task 485 (DesktopManagerE) of process 473 (DisplayLinkMana)
[  156.209755] evdi: [I] (card1) Connector state: connected
[  156.212010] evdi: [I] (card2) Opened by Task 485 (DesktopManagerE) of process 473 (DisplayLinkMana)
[  156.212029] evdi evdi.1: [drm] Cannot find any crtc or sizes
[  156.212050] evdi: [W] evdi_painter_send_update_ready_if_needed:693 Painter does not exist!
[  156.212263] [drm] Initialized evdi 1.12.0 20220713 for evdi.1 on minor 2
[  156.212278] evdi: [I] Evdi platform_device create
[  156.212280] evdi: [I] Attaching to usb:3-1.1
[  156.218905] evdi: [I] (card1) Connector state: connected
[  156.219125] evdi: [I] (card1) Edid property set
[  156.219407] evdi: [I] (card1) Connector state: connected
[  156.219582] evdi: [I] (card1) Edid property set
[  156.225660] evdi: [I] (card1) Connector state: connected
[  156.225906] evdi: [I] (card1) Edid property set
[  156.226202] evdi: [I] (card1) Connector state: connected
[  156.226406] evdi: [I] (card1) Edid property set
[  156.227636] evdi: [I] (card2) Opened by Task 444 (systemd-logind) of process 444 (systemd-logind)
[  156.235285] usb 3-1.2.3: new full-speed USB device number 6 using xhci-hcd
[  156.238681] evdi: [I] (card1) Connector state: connected
[  156.238857] evdi: [I] (card1) Edid property set
[  156.239061] evdi: [I] (card1) Connector state: connected
[  156.239200] evdi: [I] (card1) Edid property set
[  156.342906] evdi: [I] (card2) Opened by Task 485 (DesktopManagerE) of process 473 (DisplayLinkMana)
[  156.346373] evdi: [I] (card2) Added i2c adapter bus number 6
[  156.346377] evdi: [I] (card2) Connected with Task 485 (DesktopManagerE) of process 473 (DisplayLinkMana)
[  156.346383] evdi: [I] (card2) Connector state: connected
[  156.380946] usb 3-1.2.3: New USB device found, idVendor=065f, idProduct=f60f, bcdDevice= 1.00
[  156.380956] usb 3-1.2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  156.380959] usb 3-1.2.3: Product: SD4750P USB-C & USB 3.0 Dual 4K Docking Station
[  156.380960] usb 3-1.2.3: Manufacturer: Good way
[  156.380962] usb 3-1.2.3: SerialNumber: 0123456789ABC
[  156.383884] evdi: [I] (card2) Connector state: connected
[  156.384080] evdi: [I] (card2) Edid property set
[  156.384412] evdi: [I] (card2) Connector state: connected
[  156.384570] evdi: [I] (card2) Edid property set
[  156.385153] evdi: [I] (card1) Connector state: connected
[  156.385304] evdi: [I] (card1) Edid property set
[  156.385509] evdi: [I] (card1) Connector state: connected
[  156.385650] evdi: [I] (card1) Edid property set
[  156.506474] hid-generic 0003:065F:F60F.0003: hiddev0,hidraw2: USB HID v1.11 Device [Good way SD4750P USB-C & USB 3.0 Dual 4K Docking Station] on usb-xhci-hcd.1.auto-1.2.3/input0
[  157.119617] evdi: [I] (card2) Connector state: connected
[  157.119918] evdi: [I] (card2) Edid property set
[  157.120451] evdi: [I] (card2) Connector state: connected
[  157.120691] evdi: [I] (card2) Edid property set
[  157.121347] evdi: [I] (card1) Connector state: connected
[  157.121575] evdi: [I] (card1) Edid property set
[  157.121886] evdi: [I] (card1) Connector state: connected
[  157.122104] evdi: [I] (card1) Edid property set
[  157.230602] evdi: [I] (card2) Connector state: connected
[  157.230892] evdi: [I] (card2) Edid property set
[  157.231462] evdi: [I] (card2) Connector state: connected
[  157.232126] evdi: [I] (card2) Edid property set
[  157.235453] evdi: [I] (card1) Connector state: connected
[  157.236636] evdi: [I] (card1) Edid property set
[  157.238205] evdi: [I] (card1) Connector state: connected

After connecting behavior: No change, but if I log out of gnome session and go back to gdm, the screen will change to ONE of my externally connected monitors.

If I try to log in again, though, all screens are black and unresponsive until a reboot.

If I have one external display connected to the dock, things work better.

> $ xrandr --current                                                           
Screen 0: minimum 320 x 200, current 2560 x 1440, maximum 7680 x 4320
DVI-I-1 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
   2560x1440     59.95*+
   1920x1440     60.00  
   2560x1080     60.00    59.94    50.00    30.00    29.97    24.00    23.98    25.00  
   1856x1392     60.00  
   1792x1344     60.00  
   2048x1152     60.00  
   1920x1200     74.93    59.88  
   1920x1080     60.00    50.00    59.94    30.00    25.00    24.00    29.97    23.98  
   1600x1200     75.00    70.00    65.00    60.00  
   1680x1050     74.89    59.95  
   1680x945      60.02  
   1400x1050     74.87    59.98  
   1600x900      60.00  
   1280x1024     75.02    60.02  
   1440x900      74.98    59.89  
   1280x960      60.00  
   1366x768      59.79  
   1360x768      60.02  
   1280x800      74.93    59.81  
   1152x864      75.00  
   1280x768      74.89    59.87  
   1280x720      60.00    50.00    59.94  
   1440x576      50.00  
   1024x768      75.03    70.07    60.00  
   1440x480      60.00    59.94  
   1024x576      59.97  
   832x624       74.55  
   800x600       72.19    75.00    60.32    56.25  
   720x576       50.00  
   848x480       60.00  
   720x480       60.00    59.94  
   640x480       75.00    72.81    66.67    60.00    59.94  
   720x400       70.08  

alex@naga ~                                                          [13:43:59]
> $ xrandr --listproviders                                                     
Providers: number : 2
Provider 0: id: 0x40 cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 0 name:modesetting
Provider 1: id: 0xab cap: 0x2, Sink Output crtcs: 3 outputs: 3 associated providers: 0 name:modesetting

But as you can see, it forgets about my internal display completely. It is like it can't support finding more than one screen at a time.

BrainWart commented 10 months ago

I am using a Lenovo x13s. I am able to run the internal display and a single display over USB C using the Lenovo Universal USB C Dock V2. A second display appears to mirror with no options to extend to the display.

Linux Distribution: NixOS Unstable
Kernel: 6.5 - https://github.com/jhovold/linux/tree/wip/sc8280xp-v6.5
XOrg Version: X.Org X Server 1.21.1.8
Desktop Environment: GNOME 44.3
[root@x13s:/etc/nixos]# xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x44 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 3 associated providers: 0 name:modesetting

[root@x13s:/etc/nixos]# xrandr --current
Screen 0: minimum 320 x 200, current 3840 x 1200, maximum 5120 x 4096
eDP-1 connected primary 1920x1200+1920+0 (normal left inverted right x axis y axis) 286mm x 178mm
   1920x1200     60.03*+
   1600x1200     60.00
Unknown20-1 disconnected (normal left inverted right x axis y axis)
Unknown20-2 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 521mm x 293mm
   1920x1080     60.00*+  50.00    59.94
   1680x1050     59.88
   1600x900      60.00
   1280x1024     60.02
   1440x900      59.90
   1280x800      59.91
   1280x720      60.00    50.00    59.94
   1024x768      70.07    60.00
   800x600       72.19    60.32    56.25
   720x576       50.00
   720x480       60.00    59.94
   640x480       72.81    66.67    60.00    59.94
   720x400       70.08