Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DDC communication failed (docking station + HDMI) #383

Open
lameventanas opened this issue Feb 25, 2024 · 5 comments
Open

DDC communication failed (docking station + HDMI) #383

lameventanas opened this issue Feb 25, 2024 · 5 comments
Labels
i915 open source i915 driver phantom displays

Comments

@lameventanas
Copy link

lameventanas commented Feb 25, 2024

Hello,
I have a pair of Philips PHL24E1N5500 monitors.
I was using them with a Thinkpad X270 and docking station before, connected via HDMI and DP respectively, and ddcutil worked great.
But now I have migrated to a Thinkpad T14 gen 2, and Lenovo Universal Thunderbolt 4 (40b0). One monitor via HDMI, the other with DP.
Now ddcutil can't communicate with the HDMI one.
And I also get a weird message about a "phantom display":

$ ddcutil detect --verbose
Invalid display
   I2C bus:  /dev/i2c-9
      DRM connector:                         card1-eDP-1
      /sys/class/drm/card1-eDP-1/dpms        Off
      /sys/class/drm/card1-eDP-1/enabled     disabled
      /sys/class/drm/card1-eDP-1/status      connected
      Driver:                                i915
      I2C address 0x50 (EDID) responsive:    true 
      I2C address 0x37 (DDC)  responsive:    false
      Is LVDS or EDP display:                true 
      Is laptop display by EDID:             false
      Is laptop display:                     true 
      /sys/bus/i2c/devices/i2c-9/name        AUX A/DDI A/PHY A
      PCI device path:                       /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-eDP-1/i2c-9
   EDID synopsis:
      Mfg id:               BOE - BOE
      Model:                
      Product code:         2526  (0x09de)
      Serial number:        
      Binary serial number: 0 (0x00000000)
      Manufacture year:     2020,  Week: 32
      EDID version:         1.4
      Extra descriptor:        NV140FHM-N4V
      Video input definition:    0xa5 - Digital Input (DisplayPort), Bit depth: 8
      Supported features:
         Digital display type: RGB 4:4:4
         Standard sRGB color space: False
      White x,y:        0.313, 0.329
      Red   x,y:        0.587, 0.364
      Green x,y:        0.335, 0.573
      Blue  x,y:        0.163, 0.116
      Extension blocks: 0
   EDID source: I2C
   EDID hex dump:
              +0          +4          +8          +c            0   4   8   c   
      +0000   00 ff ff ff ff ff ff 00 09 e5 de 09 00 00 00 00   ................
      +0010   20 1e 01 04 a5 1f 11 78 03 5f f5 96 5d 55 92 29    ......x._..]U.)
      +0020   1d 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01   .PT.............
      +0030   01 01 01 01 01 01 85 40 80 2c 71 38 a0 40 30 20   .......@.,q8.@0 
      +0040   36 00 35 ae 10 00 00 1a 00 00 00 fd 00 28 3c 4a   6.5..........(<J
      +0050   4a 11 01 0a 20 20 20 20 20 20 00 00 00 fe 00 42   J...      .....B
      +0060   4f 45 20 43 51 0a 20 20 20 20 20 20 00 00 00 fe   OE CQ.      ....
      +0070   00 4e 56 31 34 30 46 48 4d 2d 4e 34 56 0a 00 a5   .NV140FHM-N4V...
   This is a laptop display.  Laptop displays do not support DDC/CI

Phantom display
   Associated non-phantom display: bus /dev/i2c-16
   I2C bus:  /dev/i2c-12
      DRM connector:                         card1-DP-3
      /sys/class/drm/card1-DP-3/dpms         Off
      /sys/class/drm/card1-DP-3/enabled      disabled
      /sys/class/drm/card1-DP-3/status       disconnected
      Driver:                                i915
      I2C address 0x50 (EDID) responsive:    true 
      I2C address 0x37 (DDC)  responsive:    false
      Is LVDS or EDP display:                false
      Is laptop display by EDID:             false
      Is laptop display:                     false
      /sys/bus/i2c/devices/i2c-12/name       AUX USBC3/DDI TC3/PHY TC3
      PCI device path:                       /sys/devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-3/i2c-12
   EDID synopsis:
      Mfg id:               PHL - Philips Consumer Electronics Company
      Model:                PHL24E1N5500
      Product code:         49772  (0xc26c)
      Serial number:        UK02348024114
      Binary serial number: 24114 (0x00005e32)
      Manufacture year:     2023,  Week: 48
      EDID version:         1.4
      Extra descriptor:        
      Video input definition:    0xa5 - Digital Input (DisplayPort), Bit depth: 8
      Supported features:
         DPMS active-off
         Digital display type: RGB 4:4:4 + YCrCb 4:4:4 + YCrCb 4:2:2
         Standard sRGB color space: True
      White x,y:        0.313, 0.329
      Red   x,y:        0.655, 0.311
      Green x,y:        0.286, 0.650
      Blue  x,y:        0.151, 0.061
      Extension blocks: 1
   EDID source: I2C
   EDID hex dump:
              +0          +4          +8          +c            0   4   8   c   
      +0000   00 ff ff ff ff ff ff 00 41 0c 6c c2 32 5e 00 00   ........A.l.2^..
      +0010   30 21 01 04 a5 35 1e 78 3b e6 e5 a7 4f 49 a6 26   0!...5.x;...OI.&
      +0020   0f 50 54 bf ef 00 d1 c0 b3 00 95 00 81 80 81 40   .PT............@
      +0030   81 c0 01 01 01 01 56 5e 00 a0 a0 a0 29 50 30 20   ......V^....)P0 
      +0040   35 00 0f 28 21 00 00 1e 00 00 00 ff 00 55 4b 30   5..(!........UK0
      +0050   32 33 34 38 30 32 34 31 31 34 00 00 00 fc 00 50   2348024114.....P
      +0060   48 4c 32 34 45 31 4e 35 35 30 30 0a 00 00 00 fd   HL24E1N5500.....
      +0070   00 30 4b 72 72 21 01 0a 20 20 20 20 20 20 01 e8   .0Krr!..      ..
   DDC communication failed
   Use non-phantom device bus /dev/i2c-16

Display 1
   I2C bus:  /dev/i2c-16
      DRM connector:                         card1-DP-8
      /sys/class/drm/card1-DP-8/dpms         On
      /sys/class/drm/card1-DP-8/enabled      enabled
      /sys/class/drm/card1-DP-8/status       connected
      Driver:                                i915
      I2C address 0x50 (EDID) responsive:    true 
      I2C address 0x37 (DDC)  responsive:    true 
      Is LVDS or EDP display:                false
      Is laptop display by EDID:             false
      Is laptop display:                     false
      /sys/bus/i2c/devices/i2c-16/name       DPMST
      PCI device path:                       /sys/devices/pci0000:00/0000:00:02.0/i2c-16
   EDID synopsis:
      Mfg id:               PHL - Philips Consumer Electronics Company
      Model:                PHL24E1N5500
      Product code:         49772  (0xc26c)
      Serial number:        UK02348024114
      Binary serial number: 24114 (0x00005e32)
      Manufacture year:     2023,  Week: 48
      EDID version:         1.4
      Extra descriptor:        
      Video input definition:    0xa5 - Digital Input (DisplayPort), Bit depth: 8
      Supported features:
         DPMS active-off
         Digital display type: RGB 4:4:4 + YCrCb 4:4:4 + YCrCb 4:2:2
         Standard sRGB color space: True
      White x,y:        0.313, 0.329
      Red   x,y:        0.655, 0.311
      Green x,y:        0.286, 0.650
      Blue  x,y:        0.151, 0.061
      Extension blocks: 1
   EDID source: I2C
   EDID hex dump:
              +0          +4          +8          +c            0   4   8   c   
      +0000   00 ff ff ff ff ff ff 00 41 0c 6c c2 32 5e 00 00   ........A.l.2^..
      +0010   30 21 01 04 a5 35 1e 78 3b e6 e5 a7 4f 49 a6 26   0!...5.x;...OI.&
      +0020   0f 50 54 bf ef 00 d1 c0 b3 00 95 00 81 80 81 40   .PT............@
      +0030   81 c0 01 01 01 01 56 5e 00 a0 a0 a0 29 50 30 20   ......V^....)P0 
      +0040   35 00 0f 28 21 00 00 1e 00 00 00 ff 00 55 4b 30   5..(!........UK0
      +0050   32 33 34 38 30 32 34 31 31 34 00 00 00 fc 00 50   2348024114.....P
      +0060   48 4c 32 34 45 31 4e 35 35 30 30 0a 00 00 00 fd   HL24E1N5500.....
      +0070   00 30 4b 72 72 21 01 0a 20 20 20 20 20 20 01 e8   .0Krr!..      ..
   VCP version:         2.2
   Controller mfg:      RealTek
   Firmware version:    0.1
   Monitor uses invalid feature flag in DDC reply packet to indicate unsupported feature.
   Current dynamic sleep adjustment multiplier:  0.00
@rockowitz
Copy link
Owner

I'm pretty sure that what has changed is that the video connection for the X270 dock is standard DisplayPort, whereas the new T14/Lenovo dock combination uses USB-C alt mode to transmit the DisplayPort signal, and the I2C signalling is being lost.

Note that when a docking station is used the connection to the dock is always DP Multi-Stream Transport (MST). If there is a HDMI connector on the dock the DP signal is converted to HDMI.

"Phantom display" is a way of describing the phenomenon of a display appearing at two different /dev/i2c devices. Typically only one actually supports DDC. ddcutil reports the invalid /dev/i2c device as "phantom".

See Docking Connected Displays, The same DisplayPort connected monitor appears twice in the output of ddcutil detect. and also this extensive freedesktop.org bug report thread.

This warrants a [i915 bug report] ( https://drm.pages.freedesktop.org/intel-docs/how-to-file-i915-bugs.html). Let me know when you've filed it and I'll add myself to the CC list. But I wouldn't expect a fix any time soon.

@rockowitz rockowitz added i915 open source i915 driver phantom displays labels Feb 29, 2024
@lameventanas
Copy link
Author

This warrants a [i915 bug report] ( https://drm.pages.freedesktop.org/intel-docs/how-to-file-i915-bugs.html). Let me know when you've filed it and I'll add myself to the CC list. But I wouldn't expect a fix any time soon.

I don't get it, what is the i915 bug that I should file? Is the communication between ddcutil and the HDMI monitor failing due to a bug in the i915 driver?

@rockowitz
Copy link
Owner

In your new setup, the T14 <-> Docking Station communication is by a USB Type-C connector, operating in display port alt mode. I2C signalling is handled over the DP Aux channel. The dock is a DP Multi-Stream Transport device. The single DP stream from laptop to dock actually carries several DP streams, which are split out at the dock. For the HDMI connector on the dock, the dock converts DP signalling to HDMI signalling. In particular, the I2C signal that is "multiplexed" over the the DP Aux channel becomes simple I2C signalling on the appropriate pins of the HDMI connector. Somewhere along this chain the I2C signal is being lost.

@lameventanas
Copy link
Author

Thanks for the explanation, but I still don't know what would I file in such a bug report to the i915 driver developers.
And they will just brush it off and say that the dock is defective or that the dock doesn't implement that function.

@lameventanas
Copy link
Author

The docking station model is a Lenovo Universal Thunderbolt 4 (40b0) (I just updated the issue to reflect this).
I tried updating the firmware to the latest version, it didn't help.
I also tried connecting both monitors via DP, but still only one of them is detected.
I'm about to buy a 3rd monitor, but I'm wondering if I should get one that supports USB TB instead of just DP or HDMI.
My aim is to be able to control 3 monitors, so I can easily change the brightness in a script, instead of using their menu system one by one, with the controls in the back. Is there any hope for this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
i915 open source i915 driver phantom displays
Projects
None yet
Development

No branches or pull requests

2 participants