DDC/CI support on display expansion cards

That’s really good.

I checked my 3rd gen HDMI and USB-C (directly connected to the display) with ddcutil, turns out both of those support DDC/CI.

~$ sudo ddcutil detect --verbose
Invalid display
   I2C bus:  /dev/i2c-11
      DRM connector:                         card1-eDP-1
      /sys/class/drm/card1-eDP-1/dpms        On
      /sys/class/drm/card1-eDP-1/enabled     enabled
      /sys/class/drm/card1-eDP-1/status      connected
      Driver:                                amdgpu
      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-11/name       AMDGPU DM aux hw bus 0
      PCI device path:                       /sys/devices/pci0000:00/0000:00:08.1/0000:c1:00.0/drm/card1/card1-eDP-1/i2c-11
   EDID synopsis:
      Mfg id:               BOE - BOE
      Model:                
      Product code:         3018  (0x0bca)
      Serial number:        
      Binary serial number: 0 (0x00000000)
      Manufacture year:     2022,  Week: 47
      EDID version:         1.4
      Extra descriptor:        NE135FBM-N41
      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.312, 0.328
      Red   x,y:        0.640, 0.329
      Green x,y:        0.300, 0.600
      Blue  x,y:        0.149, 0.060
      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 ca 0b 00 00 00 00   ................
      +0010   2f 20 01 04 a5 1c 13 78 03 de 50 a3 54 4c 99 26   / .....x..P.TL.&
      +0020   0f 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01   .PT.............
      +0030   01 01 01 01 01 01 11 5c d0 18 81 e0 2d 50 30 20   .......\....-P0 
      +0040   36 00 1d be 10 00 00 1a a7 49 d0 18 81 e0 2d 50   6........I....-P
      +0050   30 20 36 00 1d be 10 00 00 1a 00 00 00 fe 00 42   0 6............B
      +0060   4f 45 20 43 51 0a 20 20 20 20 20 20 00 00 00 fe   OE CQ.      ....
      +0070   00 4e 45 31 33 35 46 42 4d 2d 4e 34 31 0a 00 73   .NE135FBM-N41..s
   This is a laptop display.  Laptop displays do not support DDC/CI

Display 1
   I2C bus:  /dev/i2c-13
      DRM connector:                         card1-DP-2
      /sys/class/drm/card1-DP-2/dpms         On
      /sys/class/drm/card1-DP-2/enabled      enabled
      /sys/class/drm/card1-DP-2/status       connected
      Driver:                                amdgpu
      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-13/name       AMDGPU DM aux hw bus 2
      PCI device path:                       /sys/devices/pci0000:00/0000:00:08.1/0000:c1:00.0/drm/card1/card1-DP-2/i2c-13
   EDID synopsis:
      Mfg id:               VSC - ViewSonic Corporation
      Model:                VG2755-2K
      Product code:         20023  (0x4e37)
      Serial number:        <REDACTED>
      Binary serial number: 0xffffffff
      Manufacture year:     2022,  Week: 10
      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.651, 0.332
      Green x,y:        0.303, 0.632
      Blue  x,y:        0.151, 0.058
      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 5a 63 37 4e ff ff ff ff   ........Zc7N....
      +0010   0a 20 01 04 a5 3c 22 78 3b cb f5 a6 55 4d a1 26   . ...<"x;...UM.&
      +0020   0e 50 54 bf ef 80 d1 40 d1 00 d1 c0 b3 00 95 00   .PT....@........
      +0030   90 40 81 80 81 c0 56 5e 00 a0 a0 a0 29 50 30 20   .@....V^....)P0 
      +0040   35 00 55 50 21 00 00 1a 00 00 00 ff 00 56 4b 4c   5.UP!........VKL
      +0050   32 32 31 30 41 30 35 34 34 0a 00 00 00 fd 00 31   2210A0544......1
      +0060   4b 0f 5a 19 00 0a 20 20 20 20 20 20 00 00 00 fc   K.Z...      ....
      +0070   00 56 47 32 37 35 35 2d 32 4b 0a 20 20 20 01 c8   .VG2755-2K.   ..
   VCP version:         2.2
   Controller mfg:      RealTek
   Firmware version:    1.1
   Monitor uses invalid feature flag in DDC reply packet to indicate unsupported feature.
   Current dynamic sleep adjustment multiplier:  0.05

Display 2
   I2C bus:  /dev/i2c-14
      DRM connector:                         card1-DP-3
      /sys/class/drm/card1-DP-3/dpms         On
      /sys/class/drm/card1-DP-3/enabled      enabled
      /sys/class/drm/card1-DP-3/status       connected
      Driver:                                amdgpu
      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-14/name       AMDGPU DM aux hw bus 3
      PCI device path:                       /sys/devices/pci0000:00/0000:00:08.1/0000:c1:00.0/drm/card1/card1-DP-3/i2c-14
   EDID synopsis:
      Mfg id:               GEC - UNK
      Model:                Onlap1102H
      Product code:         25  (0x0019)
      Serial number:        8888
      Binary serial number: 34952 (0x00008888)
      Manufacture year:     2017,  Week: 0
      EDID version:         1.3
      Extra descriptor:        
      Video input definition:    0x80 - Digital Input
      Supported features:
         DPMS standby
         DPMS suspend
         DPMS active-off
         Digital display type: RGB 4:4:4 + YCrCb 4:4:4
         Standard sRGB color space: False
      White x,y:        0.310, 0.330
      Red   x,y:        0.640, 0.330
      Green x,y:        0.300, 0.625
      Blue  x,y:        0.150, 0.060
      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 1c a3 19 00 88 88 00 00   ................
      +0010   00 1b 01 03 80 1a 0e 78 ee ec 96 a3 54 4c a0 26   .......x....TL.&
      +0020   0f 4f 54 21 08 00 81 00 81 80 81 c0 95 00 95 40   .OT!...........@
      +0030   b3 00 a9 c0 d1 c0 02 3a 80 18 71 38 2d 40 58 2c   .......:..q8-@X,
      +0040   45 00 00 90 10 00 00 1e 00 00 00 ff 00 38 38 38   E............888
      +0050   38 0a 20 20 20 20 20 20 20 20 00 00 00 fd 00 30   8.        .....0
      +0060   3e 1e 44 11 00 0a 20 20 20 20 20 20 00 00 00 fc   >.D...      ....
      +0070   00 4f 6e 6c 61 70 31 31 30 32 48 0a 20 20 01 62   .Onlap1102H.  .b
   VCP version:         2.1
   Controller mfg:      Novatek
   Firmware version:    1.0
   Monitor uses invalid feature flag in DDC reply packet to indicate unsupported feature.
   Current dynamic sleep adjustment multiplier:  0.00

I thought GNOME 45 has built-in brightness control with DDC/CI, until I found this GNOME extension and realize how dumb I am for asking this question without checking with ddcutil first.