newAM / monitorcontrol

Python monitor controls using DDC-CI.
https://newam.github.io/monitorcontrol/
MIT License
177 stars 27 forks source link

Checking input works for one monitor but not the other (both same model) #130

Open brilthor opened 3 years ago

brilthor commented 3 years ago

Steps to Reproduce

Iterate through monitors checking which input is selected:

#!/bin/env python
import monitorcontrol

for monitor in monitorcontrol.get_monitors():
    with monitor:
        print(monitor.get_input_source())
InputSource.DP1
Traceback (most recent call last):
  File "switch_monitor_input.py", line 8, in <module>
    print(monitor.get_input_source())
  File "venv/lib/python3.9/site-packages/monitorcontrol/monitorcontrol.py", line 389, in get_input_source
    value = self._get_vcp_feature(code) & 0xFF
  File "venv/lib/python3.9/site-packages/monitorcontrol/monitorcontrol.py", line 175, in _get_vcp_feature
    current, maximum = self.vcp.get_vcp_feature(code.value)
  File "venv/lib/python3.9/site-packages/monitorcontrol/vcp/vcp_linux.py", line 180, in get_vcp_feature
    ) = struct.unpack(">BBBBHH", payload)
struct.error: unpack requires a buffer of 8 bytes

display info from ddcutil:

Display 1
   I2C bus:  /dev/i2c-11
   EDID synopsis:
      Mfg id:               ACR
      Model:                CB282K
      Product code:         1887
      Serial number:        
      Binary serial number: 1898...
      Manufacture year:     2020,  Week: 12
   VCP version:         2.1

Display 2 <-- this one
   I2C bus:  /dev/i2c-12
   EDID synopsis:
      Mfg id:               ACR
      Model:                CB282K
      Product code:         1887
      Serial number:        
      Binary serial number: 1898...
      Manufacture year:     2020,  Week: 12
   VCP version:         2.1

Display 3
   I2C bus:  /dev/i2c-13
   EDID synopsis:
      Mfg id:               ACR
      Model:                CB282K
      Product code:         1887
      Serial number:        
      Binary serial number: 18983...
      Manufacture year:     2020,  Week: 12
   VCP version:         2.1
newAM commented 3 years ago

What monitorcontrol version?

Can you re-run with debug logging on, like this?

import logging
import monitorcontrol

logging.basicConfig(level=logging.DEBUG)

for monitor in monitorcontrol.get_monitors():
    with monitor:
        print(monitor.get_input_source())

This it what it shows on my triple-monitor system:

DEBUG:monitorcontrol.vcp.vcp_linux:data=bytearray(b'P\x82\x01`\xe3')
DEBUG:monitorcontrol.vcp.vcp_linux:header=b'n\x88'
DEBUG:monitorcontrol.vcp.vcp_linux:payload=b'\x02\x00`\x00\x00\x03\x00\x0f\xd8'
InputSource.DP1
DEBUG:monitorcontrol.vcp.vcp_linux:data=bytearray(b'P\x82\x01`\xe3')
DEBUG:monitorcontrol.vcp.vcp_linux:header=b'n\x88'
DEBUG:monitorcontrol.vcp.vcp_linux:payload=b'\x02\x00`\x00\x00\x03\x00\x0f\xd8'
InputSource.DP1
DEBUG:monitorcontrol.vcp.vcp_linux:data=bytearray(b'P\x82\x01`\xe3')
DEBUG:monitorcontrol.vcp.vcp_linux:header=b'n\x88'
DEBUG:monitorcontrol.vcp.vcp_linux:payload=b'\x02\x00`\x00\x00\x03\x00\x0f\xd8'
InputSource.DP1
brilthor commented 2 years ago
ls -al venv/lib/python3.9/site-packages/ | grep mon
drwxr-xr-x  4    4096 Oct 22 16:18 monitorcontrol
drwxr-xr-x  2    4096 Oct 22 16:18 monitorcontrol-2.5.1.dist-info
>>> import logging
>>> import monitorcontrol
>>> 
>>> logging.basicConfig(level=logging.DEBUG)
>>> 
>>> for monitor in monitorcontrol.get_monitors():
...     with monitor:
...         print(monitor.get_input_source())
... 
DEBUG:monitorcontrol.vcp.vcp_linux:data=bytearray(b'P\x82\x01`\xe3')
DEBUG:monitorcontrol.vcp.vcp_linux:header=b'n\x88'
DEBUG:monitorcontrol.vcp.vcp_linux:payload=b'\x02\x00`\x00\x00\x01\x00\x0f\xda'
InputSource.DP1
DEBUG:monitorcontrol.vcp.vcp_linux:data=bytearray(b'P\x82\x01`\xe3')
DEBUG:monitorcontrol.vcp.vcp_linux:header=b'\xbe\x00'
DEBUG:monitorcontrol.vcp.vcp_linux:payload=b'\xdf'
Traceback (most recent call last):
  File "<stdin>", line 3, in <module>
  File "venv/lib/python3.9/site-packages/monitorcontrol/monitorcontrol.py", line 389, in get_input_source
    value = self._get_vcp_feature(code) & 0xFF
  File "venv/lib/python3.9/site-packages/monitorcontrol/monitorcontrol.py", line 175, in _get_vcp_feature
    current, maximum = self.vcp.get_vcp_feature(code.value)
  File "venv/lib/python3.9/site-packages/monitorcontrol/vcp/vcp_linux.py", line 180, in get_vcp_feature
    ) = struct.unpack(">BBBBHH", payload)
struct.error: unpack requires a buffer of 8 bytes
newAM commented 2 years ago

In the header the first byte is the source address, so that's 0x6E in the working monitor, and 0xBE in the non-working monitor. The second byte is the payload length, which is where things get weird. For your first monitor it is 0x88, 0x08 with the protocol flag cleared, which is valid. In the second monitor it is just zero, which I think isn't valid according to DDC-CI spec (though it has been a while since I read the spec).

Can you run another test like this? This will increase the time given to the monitor to decode and send a reply.

import logging
import monitorcontrol

logging.basicConfig(level=logging.DEBUG)

for monitor in monitorcontrol.get_monitors():
    with monitor:
        monitor.vcp.GET_VCP_TIMEOUT *= 4
        print(monitor.get_input_source())
brilthor commented 2 years ago

timeout doesn't appear to have improved things:

Python 3.9.7 (default, Oct 10 2021, 15:13:22) 
[GCC 11.1.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import logging
>>> import monitorcontrol
>>> 
>>> logging.basicConfig(level=logging.DEBUG)
>>> 
>>> for monitor in monitorcontrol.get_monitors():
...     with monitor:
...         monitor.vcp.GET_VCP_TIMEOUT *= 4
...         print(monitor.get_input_source())
... 
DEBUG:monitorcontrol.vcp.vcp_linux:data=bytearray(b'P\x82\x01`\xe3')
DEBUG:monitorcontrol.vcp.vcp_linux:header=b'n\x88'
DEBUG:monitorcontrol.vcp.vcp_linux:payload=b'\x02\x00`\x00\x00\x01\x00\x0f\xda'
InputSource.DP1
DEBUG:monitorcontrol.vcp.vcp_linux:data=bytearray(b'P\x82\x01`\xe3')
DEBUG:monitorcontrol.vcp.vcp_linux:header=b'\xbe\x00'
DEBUG:monitorcontrol.vcp.vcp_linux:payload=b'\xdf'
Traceback (most recent call last):
  File "<stdin>", line 4, in <module>
  File "venv/lib/python3.9/site-packages/monitorcontrol/monitorcontrol.py", line 389, in get_input_source
    value = self._get_vcp_feature(code) & 0xFF
  File "venv/lib/python3.9/site-packages/monitorcontrol/monitorcontrol.py", line 175, in _get_vcp_feature
    current, maximum = self.vcp.get_vcp_feature(code.value)
  File "venv/lib/python3.9/site-packages/monitorcontrol/vcp/vcp_linux.py", line 180, in get_vcp_feature
    ) = struct.unpack(">BBBBHH", payload)
struct.error: unpack requires a buffer of 8 bytes
brilthor commented 2 years ago

Here is a fully verbose trace from ddcutil in case it's helpful

the full dump:

``` ddcutil detect --ddc -vv --trace=all (main ) Starting ddcutil execution, Fri Oct 29 15:28:23 2021 ddcutil version: 1.1.0 Output level: Verbose Reporting DDC data errors: true Trace groups active: BASE, I2C, DDC, USB, TOP, ENV, API, UDF, VCP, DDCIO, SLEEP, RETRY Traced functions: none Traced files: none Force I2C slave address: false User defined features: disabled Performance and Retry Options: Deferred sleep enabled: false Sleep suppression (reduced sleeps) enabled: true Dynamic sleep adjustment enabled: false Configuration file: (none) (main ) Initialization complete, process commands (main ) Detecting displays... (i2c_detect_buses ) Starting. i2c_buses = (nil) (i2c_check_bus ) Starting. busno=3, buf_info=0x5593ec781dd0 (i2c_open_bus ) Starting. busno=3, callopts=0x80 (i2c_open_bus ) Done. busno=3, Returning file descriptor: 3 (i2c_get_parsed_edid_by_fd ) Starting. fd=3, filename=/dev/i2c-3 (i2c_get_raw_edid_by_fd ) Getting EDID. File descriptor = 3, filename=/dev/i2c-3 (i2c_set_addr ) fd=3, addr=0x50, filename=/dev/i2c-3, i2c_force_slave_addr_flag=false, callopts=CALLOPT_ERR_MSG (i2c_set_addr ) addr = 0x50. filename = /dev/i2c-3, Returning OK(0): success (i2c_set_addr ) Done. Returning: OK(0): success (i2c_get_raw_edid_by_fd ) EDID_Read_Size=0, max_tries=-334945776 (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=0, max_tries=4, edid_read_size=128, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-3, edid_read_size=128, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=1, max_tries=4, edid_read_size=128, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-3, edid_read_size=128, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=2, max_tries=4, edid_read_size=256, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-3, edid_read_size=256, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=3, max_tries=4, edid_read_size=256, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-3, edid_read_size=256, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) tries=4, Returning EIO(-5): Input/output error (i2c_get_parsed_edid_by_fd ) Returning: EIO(-5): Input/output error (i2c_close_bus ) Starting. fd=3 - /dev/i2c-3, callopts=CALLOPT_ERR_MSG (i2c_close_bus ) Done. fd=3, filename=(null), Returning: OK(0): success (i2c_check_bus ) Done. flags=0x0cc1, bus info: Bus /dev/i2c-3 found: true Bus /dev/i2c-3 probed: true Bus accessible: true Bus is eDP: false Bus is LVDS: false Valid bus name checked: true I2C bus has valid name: true Address 0x37 present: false Address 0x50 present: false (i2c_check_bus ) Starting. busno=4, buf_info=0x5593ec75d520 (i2c_open_bus ) Starting. busno=4, callopts=0x80 (i2c_open_bus ) Done. busno=4, Returning file descriptor: 3 (i2c_get_parsed_edid_by_fd ) Starting. fd=3, filename=/dev/i2c-4 (i2c_get_raw_edid_by_fd ) Getting EDID. File descriptor = 3, filename=/dev/i2c-4 (i2c_set_addr ) fd=3, addr=0x50, filename=/dev/i2c-4, i2c_force_slave_addr_flag=false, callopts=CALLOPT_ERR_MSG (i2c_set_addr ) addr = 0x50. filename = /dev/i2c-4, Returning OK(0): success (i2c_set_addr ) Done. Returning: OK(0): success (i2c_get_raw_edid_by_fd ) EDID_Read_Size=0, max_tries=-334945776 (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=0, max_tries=4, edid_read_size=128, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-4, edid_read_size=128, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=1, max_tries=4, edid_read_size=128, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-4, edid_read_size=128, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=2, max_tries=4, edid_read_size=256, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-4, edid_read_size=256, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=3, max_tries=4, edid_read_size=256, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-4, edid_read_size=256, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) tries=4, Returning EIO(-5): Input/output error (i2c_get_parsed_edid_by_fd ) Returning: EIO(-5): Input/output error (i2c_close_bus ) Starting. fd=3 - /dev/i2c-4, callopts=CALLOPT_ERR_MSG (i2c_close_bus ) Done. fd=3, filename=(null), Returning: OK(0): success (i2c_check_bus ) Done. flags=0x0cc1, bus info: Bus /dev/i2c-4 found: true Bus /dev/i2c-4 probed: true Bus accessible: true Bus is eDP: false Bus is LVDS: false Valid bus name checked: true I2C bus has valid name: true Address 0x37 present: false Address 0x50 present: false (i2c_check_bus ) Starting. busno=5, buf_info=0x5593ec792ed0 (i2c_open_bus ) Starting. busno=5, callopts=0x80 (i2c_open_bus ) Done. busno=5, Returning file descriptor: 3 (i2c_get_parsed_edid_by_fd ) Starting. fd=3, filename=/dev/i2c-5 (i2c_get_raw_edid_by_fd ) Getting EDID. File descriptor = 3, filename=/dev/i2c-5 (i2c_set_addr ) fd=3, addr=0x50, filename=/dev/i2c-5, i2c_force_slave_addr_flag=false, callopts=CALLOPT_ERR_MSG (i2c_set_addr ) addr = 0x50. filename = /dev/i2c-5, Returning OK(0): success (i2c_set_addr ) Done. Returning: OK(0): success (i2c_get_raw_edid_by_fd ) EDID_Read_Size=0, max_tries=-334945776 (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=0, max_tries=4, edid_read_size=128, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-5, edid_read_size=128, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=1, max_tries=4, edid_read_size=128, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-5, edid_read_size=128, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=2, max_tries=4, edid_read_size=256, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-5, edid_read_size=256, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=3, max_tries=4, edid_read_size=256, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-5, edid_read_size=256, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) tries=4, Returning EIO(-5): Input/output error (i2c_get_parsed_edid_by_fd ) Returning: EIO(-5): Input/output error (i2c_close_bus ) Starting. fd=3 - /dev/i2c-5, callopts=CALLOPT_ERR_MSG (i2c_close_bus ) Done. fd=3, filename=(null), Returning: OK(0): success (i2c_check_bus ) Done. flags=0x0cc1, bus info: Bus /dev/i2c-5 found: true Bus /dev/i2c-5 probed: true Bus accessible: true Bus is eDP: false Bus is LVDS: false Valid bus name checked: true I2C bus has valid name: true Address 0x37 present: false Address 0x50 present: false (i2c_check_bus ) Starting. busno=6, buf_info=0x5593ec793cc0 (i2c_open_bus ) Starting. busno=6, callopts=0x80 (i2c_open_bus ) Done. busno=6, Returning file descriptor: 3 (i2c_get_parsed_edid_by_fd ) Starting. fd=3, filename=/dev/i2c-6 (i2c_get_raw_edid_by_fd ) Getting EDID. File descriptor = 3, filename=/dev/i2c-6 (i2c_set_addr ) fd=3, addr=0x50, filename=/dev/i2c-6, i2c_force_slave_addr_flag=false, callopts=CALLOPT_ERR_MSG (i2c_set_addr ) addr = 0x50. filename = /dev/i2c-6, Returning OK(0): success (i2c_set_addr ) Done. Returning: OK(0): success (i2c_get_raw_edid_by_fd ) EDID_Read_Size=0, max_tries=-334945776 (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=0, max_tries=4, edid_read_size=128, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-6, edid_read_size=128, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=1, max_tries=4, edid_read_size=128, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-6, edid_read_size=128, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=2, max_tries=4, edid_read_size=256, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-6, edid_read_size=256, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=3, max_tries=4, edid_read_size=256, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-6, edid_read_size=256, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) tries=4, Returning EIO(-5): Input/output error (i2c_get_parsed_edid_by_fd ) Returning: EIO(-5): Input/output error (i2c_close_bus ) Starting. fd=3 - /dev/i2c-6, callopts=CALLOPT_ERR_MSG (i2c_close_bus ) Done. fd=3, filename=(null), Returning: OK(0): success (i2c_check_bus ) Done. flags=0x0cc1, bus info: Bus /dev/i2c-6 found: true Bus /dev/i2c-6 probed: true Bus accessible: true Bus is eDP: false Bus is LVDS: false Valid bus name checked: true I2C bus has valid name: true Address 0x37 present: false Address 0x50 present: false (i2c_check_bus ) Starting. busno=7, buf_info=0x5593ec7820a0 (i2c_open_bus ) Starting. busno=7, callopts=0x80 (i2c_open_bus ) Done. busno=7, Returning file descriptor: 3 (i2c_get_parsed_edid_by_fd ) Starting. fd=3, filename=/dev/i2c-7 (i2c_get_raw_edid_by_fd ) Getting EDID. File descriptor = 3, filename=/dev/i2c-7 (i2c_set_addr ) fd=3, addr=0x50, filename=/dev/i2c-7, i2c_force_slave_addr_flag=false, callopts=CALLOPT_ERR_MSG (i2c_set_addr ) addr = 0x50. filename = /dev/i2c-7, Returning OK(0): success (i2c_set_addr ) Done. Returning: OK(0): success (i2c_get_raw_edid_by_fd ) EDID_Read_Size=0, max_tries=-334945776 (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=0, max_tries=4, edid_read_size=128, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-7, edid_read_size=128, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=1, max_tries=4, edid_read_size=128, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-7, edid_read_size=128, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=2, max_tries=4, edid_read_size=256, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-7, edid_read_size=256, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=3, max_tries=4, edid_read_size=256, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-7, edid_read_size=256, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) tries=4, Returning EIO(-5): Input/output error (i2c_get_parsed_edid_by_fd ) Returning: EIO(-5): Input/output error (i2c_close_bus ) Starting. fd=3 - /dev/i2c-7, callopts=CALLOPT_ERR_MSG (i2c_close_bus ) Done. fd=3, filename=(null), Returning: OK(0): success (i2c_check_bus ) Done. flags=0x0cc1, bus info: Bus /dev/i2c-7 found: true Bus /dev/i2c-7 probed: true Bus accessible: true Bus is eDP: false Bus is LVDS: false Valid bus name checked: true I2C bus has valid name: true Address 0x37 present: false Address 0x50 present: false (i2c_check_bus ) Starting. busno=8, buf_info=0x5593ec790c00 (i2c_open_bus ) Starting. busno=8, callopts=0x80 (i2c_open_bus ) Done. busno=8, Returning file descriptor: 3 (i2c_get_parsed_edid_by_fd ) Starting. fd=3, filename=/dev/i2c-8 (i2c_get_raw_edid_by_fd ) Getting EDID. File descriptor = 3, filename=/dev/i2c-8 (i2c_set_addr ) fd=3, addr=0x50, filename=/dev/i2c-8, i2c_force_slave_addr_flag=false, callopts=CALLOPT_ERR_MSG (i2c_set_addr ) addr = 0x50. filename = /dev/i2c-8, Returning OK(0): success (i2c_set_addr ) Done. Returning: OK(0): success (i2c_get_raw_edid_by_fd ) EDID_Read_Size=0, max_tries=-334945776 (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=0, max_tries=4, edid_read_size=128, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-8, edid_read_size=128, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=1, max_tries=4, edid_read_size=128, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-8, edid_read_size=128, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=2, max_tries=4, edid_read_size=256, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-8, edid_read_size=256, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=3, max_tries=4, edid_read_size=256, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-8, edid_read_size=256, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) tries=4, Returning EIO(-5): Input/output error (i2c_get_parsed_edid_by_fd ) Returning: EIO(-5): Input/output error (i2c_close_bus ) Starting. fd=3 - /dev/i2c-8, callopts=CALLOPT_ERR_MSG (i2c_close_bus ) Done. fd=3, filename=(null), Returning: OK(0): success (i2c_check_bus ) Done. flags=0x0cc1, bus info: Bus /dev/i2c-8 found: true Bus /dev/i2c-8 probed: true Bus accessible: true Bus is eDP: false Bus is LVDS: false Valid bus name checked: true I2C bus has valid name: true Address 0x37 present: false Address 0x50 present: false (i2c_check_bus ) Starting. busno=9, buf_info=0x5593ec75d810 (i2c_open_bus ) Starting. busno=9, callopts=0x80 (i2c_open_bus ) Done. busno=9, Returning file descriptor: 3 (i2c_get_parsed_edid_by_fd ) Starting. fd=3, filename=/dev/i2c-9 (i2c_get_raw_edid_by_fd ) Getting EDID. File descriptor = 3, filename=/dev/i2c-9 (i2c_set_addr ) fd=3, addr=0x50, filename=/dev/i2c-9, i2c_force_slave_addr_flag=false, callopts=CALLOPT_ERR_MSG (i2c_set_addr ) addr = 0x50. filename = /dev/i2c-9, Returning OK(0): success (i2c_set_addr ) Done. Returning: OK(0): success (i2c_get_raw_edid_by_fd ) EDID_Read_Size=0, max_tries=-334945776 (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=0, max_tries=4, edid_read_size=128, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-9, edid_read_size=128, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=1, max_tries=4, edid_read_size=128, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-9, edid_read_size=128, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=2, max_tries=4, edid_read_size=256, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-9, edid_read_size=256, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=3, max_tries=4, edid_read_size=256, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-9, edid_read_size=256, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) Returning: EIO(-5): Input/output error (i2c_get_raw_edid_by_fd ) tries=4, Returning EIO(-5): Input/output error (i2c_get_parsed_edid_by_fd ) Returning: EIO(-5): Input/output error (i2c_close_bus ) Starting. fd=3 - /dev/i2c-9, callopts=CALLOPT_ERR_MSG (i2c_close_bus ) Done. fd=3, filename=(null), Returning: OK(0): success (i2c_check_bus ) Done. flags=0x0cc1, bus info: Bus /dev/i2c-9 found: true Bus /dev/i2c-9 probed: true Bus accessible: true Bus is eDP: false Bus is LVDS: false Valid bus name checked: true I2C bus has valid name: true Address 0x37 present: false Address 0x50 present: false (i2c_check_bus ) Starting. busno=10, buf_info=0x5593ec794050 (i2c_open_bus ) Starting. busno=10, callopts=0x80 (i2c_open_bus ) Done. busno=10, Returning file descriptor: 3 (i2c_get_parsed_edid_by_fd ) Starting. fd=3, filename=/dev/i2c-10 (i2c_get_raw_edid_by_fd ) Getting EDID. File descriptor = 3, filename=/dev/i2c-10 (i2c_set_addr ) fd=3, addr=0x50, filename=/dev/i2c-10, i2c_force_slave_addr_flag=false, callopts=CALLOPT_ERR_MSG (i2c_set_addr ) addr = 0x50. filename = /dev/i2c-10, Returning OK(0): success (i2c_set_addr ) Done. Returning: OK(0): success (i2c_get_raw_edid_by_fd ) EDID_Read_Size=0, max_tries=-334945776 (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=0, max_tries=4, edid_read_size=128, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-10, edid_read_size=128, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) write() succeeded (i2c_get_edid_bytes_directly ) Returning buffer: +0 +4 +8 +c 0 4 8 c +0000 00 ff ff ff ff ff ff 00 04 72 5f 07 fd a9 21 01 .........r_...!. +0010 0c 1e 01 03 80 3e 22 78 2a ad 65 ad 50 45 9f 25 .....>"x*.e.PE.% +0020 0e 50 54 bf ef 80 71 4f 81 40 81 80 81 c0 81 00 .PT...qO.@...... +0030 95 00 b3 00 d1 c0 56 5e 00 a0 a0 a0 29 50 30 20 ......V^....)P0 +0040 35 00 6d 55 21 00 00 1e 56 5e 00 a0 a0 a0 29 50 5.mU!...V^....)P +0050 30 20 35 00 6d 55 21 00 00 1e 00 00 00 fd 00 28 0 5.mU!........( +0060 3c 1e a0 3c 00 0a 20 20 20 20 20 20 00 00 00 fc <..<.. .... +0070 00 43 42 32 38 32 4b 0a 20 20 20 20 20 20 01 1f .CB282K. .. (i2c_get_edid_bytes_directly ) Returning: OK(0): success (i2c_get_raw_edid_by_fd ) tries=1, Returning OK(0): success (i2c_get_parsed_edid_by_fd ) Returning OK(0): success, *edid_ptr_loc = 0x5593ec781ed0 -> ...2020011f (is_laptop_drm_connector ) busno=10, drm_name_fragment |-eDP-|, Returning: false (is_laptop_drm_connector ) busno=10, drm_name_fragment |-LVDS-|, Returning: false (i2c_set_addr ) fd=3, addr=0x37, filename=/dev/i2c-10, i2c_force_slave_addr_flag=false, callopts=CALLOPT_NONE (i2c_set_addr ) addr = 0x37. filename = /dev/i2c-10, Returning OK(0): success (i2c_set_addr ) Done. Returning: OK(0): success (i2c_detect_x37 ) write() for slave address x37 returned EPERM(-1): Operation not permitted (i2c_detect_x37 ) read() for slave address x37 returned EPERM(-1): Operation not permitted (i2c_close_bus ) Starting. fd=3 - /dev/i2c-10, callopts=CALLOPT_ERR_MSG (i2c_close_bus ) Done. fd=3, filename=(null), Returning: OK(0): success (i2c_check_bus ) Done. flags=0x0ce1, bus info: Bus /dev/i2c-10 found: true Bus /dev/i2c-10 probed: true Bus accessible: true Bus is eDP: false Bus is LVDS: false Valid bus name checked: true I2C bus has valid name: true Address 0x37 present: false Address 0x50 present: true EDID synopsis: Mfg id: ACR Model: CB282K Product code: 1887 Serial number: Binary serial number: 18983421 (0x0121a9fd) Manufacture year: 2020, Week: 12 Extra descriptor: Video input definition: 0x80 - Digital Input Supported features: DPMS active-off Digital display type: RGB 4:4:4 Standard sRGB color space: False White x,y: 0.313, 0.329 Red x,y: 0.678, 0.314 Green x,y: 0.272, 0.622 Blue x,y: 0.146, 0.057 Extension blocks: 1 EDID source: EDID hex dump: +0 +4 +8 +c 0 4 8 c +0000 00 ff ff ff ff ff ff 00 04 72 5f 07 fd a9 21 01 .........r_...!. +0010 0c 1e 01 03 80 3e 22 78 2a ad 65 ad 50 45 9f 25 .....>"x*.e.PE.% +0020 0e 50 54 bf ef 80 71 4f 81 40 81 80 81 c0 81 00 .PT...qO.@...... +0030 95 00 b3 00 d1 c0 56 5e 00 a0 a0 a0 29 50 30 20 ......V^....)P0 +0040 35 00 6d 55 21 00 00 1e 56 5e 00 a0 a0 a0 29 50 5.mU!...V^....)P +0050 30 20 35 00 6d 55 21 00 00 1e 00 00 00 fd 00 28 0 5.mU!........( +0060 3c 1e a0 3c 00 0a 20 20 20 20 20 20 00 00 00 fc <..<.. .... +0070 00 43 42 32 38 32 4b 0a 20 20 20 20 20 20 01 1f .CB282K. .. (i2c_check_bus ) Starting. busno=11, buf_info=0x5593ec75d4e0 (i2c_open_bus ) Starting. busno=11, callopts=0x80 (i2c_open_bus ) Done. busno=11, Returning file descriptor: 3 (i2c_get_parsed_edid_by_fd ) Starting. fd=3, filename=/dev/i2c-11 (i2c_get_raw_edid_by_fd ) Getting EDID. File descriptor = 3, filename=/dev/i2c-11 (i2c_set_addr ) fd=3, addr=0x50, filename=/dev/i2c-11, i2c_force_slave_addr_flag=false, callopts=CALLOPT_ERR_MSG (i2c_set_addr ) addr = 0x50. filename = /dev/i2c-11, Returning OK(0): success (i2c_set_addr ) Done. Returning: OK(0): success (i2c_get_raw_edid_by_fd ) EDID_Read_Size=0, max_tries=-334945776 (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=0, max_tries=4, edid_read_size=128, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-11, edid_read_size=128, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) write() succeeded (i2c_get_edid_bytes_directly ) Returning buffer: +0 +4 +8 +c 0 4 8 c +0000 02 03 37 f1 4e 01 03 04 12 13 05 14 1f 90 07 02 ..7.N........... +0010 5d 5e 5f 23 09 07 07 83 01 00 00 e2 00 d5 6d 03 ]^_#..........m. +0020 0c 00 10 00 18 78 20 00 60 01 02 03 e3 05 e3 01 .....x .`....... +0030 e6 06 07 01 60 60 45 02 3a 80 18 71 38 2d 40 58 ....``E.:..q8-@X +0040 2c 45 00 6d 55 21 00 00 1e 01 1d 00 72 51 d0 1e ,E.mU!......rQ.. +0050 20 6e 28 55 00 6d 55 21 00 00 1e 8c 0a d0 8a 20 n(U.mU!....... +0060 e0 2d 10 10 3e 96 00 6d 55 21 00 00 18 00 00 00 .-..>..mU!...... +0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f6 ................ (i2c_get_edid_bytes_directly ) Returning: OK(0): success (i2c_get_raw_edid_by_fd ) Invalid EDID (i2c_get_raw_edid_by_fd ) EDID appears to start with a CEA 861 extension block (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=1, max_tries=4, edid_read_size=128, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-11, edid_read_size=128, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) write() succeeded (i2c_get_edid_bytes_directly ) Returning buffer: +0 +4 +8 +c 0 4 8 c +0000 00 ff ff ff ff ff ff 00 04 72 5f 07 f5 a9 21 01 .........r_...!. +0010 0c 1e 01 04 b5 3e 22 78 3b ad 65 ad 50 45 9f 25 .....>"x;.e.PE.% +0020 0e 50 54 23 08 00 81 40 81 80 81 c0 81 00 95 00 .PT#...@........ +0030 b3 00 d1 c0 01 01 22 cc 00 50 f0 70 3e 80 18 10 ......"..P.p>... +0040 35 00 6d 55 21 00 00 1a 56 5e 00 a0 a0 a0 29 50 5.mU!...V^....)P +0050 30 20 35 00 6d 55 21 00 00 1e 00 00 00 fd 00 28 0 5.mU!........( +0060 3c a0 a0 3c 01 0a 20 20 20 20 20 20 00 00 00 fc <..<.. .... +0070 00 43 42 32 38 32 4b 0a 20 20 20 20 20 20 01 fb .CB282K. .. (i2c_get_edid_bytes_directly ) Returning: OK(0): success (i2c_get_raw_edid_by_fd ) tries=2, Returning OK(0): success (i2c_get_parsed_edid_by_fd ) Returning OK(0): success, *edid_ptr_loc = 0x5593ec780d80 -> ...202001fb (is_laptop_drm_connector ) busno=11, drm_name_fragment |-eDP-|, Returning: false (is_laptop_drm_connector ) busno=11, drm_name_fragment |-LVDS-|, Returning: false (i2c_set_addr ) fd=3, addr=0x37, filename=/dev/i2c-11, i2c_force_slave_addr_flag=false, callopts=CALLOPT_NONE (i2c_set_addr ) addr = 0x37. filename = /dev/i2c-11, Returning OK(0): success (i2c_set_addr ) Done. Returning: OK(0): success (i2c_detect_x37 ) write() for slave address x37 returned 1 (i2c_detect_x37 ) read() for slave address x37 returned 4 (i2c_close_bus ) Starting. fd=3 - /dev/i2c-11, callopts=CALLOPT_ERR_MSG (i2c_close_bus ) Done. fd=3, filename=(null), Returning: OK(0): success (i2c_check_bus ) Done. flags=0x0cf1, bus info: Bus /dev/i2c-11 found: true Bus /dev/i2c-11 probed: true Bus accessible: true Bus is eDP: false Bus is LVDS: false Valid bus name checked: true I2C bus has valid name: true Address 0x37 present: true Address 0x50 present: true EDID synopsis: Mfg id: ACR Model: CB282K Product code: 1887 Serial number: Binary serial number: 18983413 (0x0121a9f5) Manufacture year: 2020, Week: 12 Extra descriptor: Video input definition: 0xb5 - Digital Input (DisplayPort) Supported features: DPMS active-off Digital display type: RGB 4:4:4 + YCrCb 4:2:2 Standard sRGB color space: True White x,y: 0.313, 0.329 Red x,y: 0.678, 0.314 Green x,y: 0.272, 0.622 Blue x,y: 0.146, 0.057 Extension blocks: 1 EDID source: EDID hex dump: +0 +4 +8 +c 0 4 8 c +0000 00 ff ff ff ff ff ff 00 04 72 5f 07 f5 a9 21 01 .........r_...!. +0010 0c 1e 01 04 b5 3e 22 78 3b ad 65 ad 50 45 9f 25 .....>"x;.e.PE.% +0020 0e 50 54 23 08 00 81 40 81 80 81 c0 81 00 95 00 .PT#...@........ +0030 b3 00 d1 c0 01 01 22 cc 00 50 f0 70 3e 80 18 10 ......"..P.p>... +0040 35 00 6d 55 21 00 00 1a 56 5e 00 a0 a0 a0 29 50 5.mU!...V^....)P +0050 30 20 35 00 6d 55 21 00 00 1e 00 00 00 fd 00 28 0 5.mU!........( +0060 3c a0 a0 3c 01 0a 20 20 20 20 20 20 00 00 00 fc <..<.. .... +0070 00 43 42 32 38 32 4b 0a 20 20 20 20 20 20 01 fb .CB282K. .. (i2c_check_bus ) Starting. busno=12, buf_info=0x5593ec780e60 (i2c_open_bus ) Starting. busno=12, callopts=0x80 (i2c_open_bus ) Done. busno=12, Returning file descriptor: 3 (i2c_get_parsed_edid_by_fd ) Starting. fd=3, filename=/dev/i2c-12 (i2c_get_raw_edid_by_fd ) Getting EDID. File descriptor = 3, filename=/dev/i2c-12 (i2c_set_addr ) fd=3, addr=0x50, filename=/dev/i2c-12, i2c_force_slave_addr_flag=false, callopts=CALLOPT_ERR_MSG (i2c_set_addr ) addr = 0x50. filename = /dev/i2c-12, Returning OK(0): success (i2c_set_addr ) Done. Returning: OK(0): success (i2c_get_raw_edid_by_fd ) EDID_Read_Size=0, max_tries=-334945776 (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=0, max_tries=4, edid_read_size=128, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-12, edid_read_size=128, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) write() succeeded (i2c_get_edid_bytes_directly ) Returning buffer: +0 +4 +8 +c 0 4 8 c +0000 02 03 4d f1 51 01 03 04 12 13 05 14 1f 10 07 06 ..M.Q........... +0010 02 5d 5e 5f 60 61 23 09 07 07 83 01 00 00 6d 03 .]^_`a#.......m. +0020 0c 00 10 00 18 3c 20 00 60 01 02 03 67 d8 5d c4 .....< .`...g.]. +0030 01 78 80 01 68 1a 00 00 01 01 28 3c e6 e3 05 e3 .x..h.....(<.... +0040 01 e4 0f 00 80 01 e6 06 07 01 60 60 45 02 3a 80 ..........``E.:. +0050 18 71 38 2d 40 58 2c 45 00 6d 55 21 00 00 1e 8c .q8-@X,E.mU!.... +0060 0a d0 8a 20 e0 2d 10 10 3e 96 00 6d 55 21 00 00 ... .-..>..mU!.. +0070 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c8 ................ (i2c_get_edid_bytes_directly ) Returning: OK(0): success (i2c_get_raw_edid_by_fd ) Invalid EDID (i2c_get_raw_edid_by_fd ) EDID appears to start with a CEA 861 extension block (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=1, max_tries=4, edid_read_size=128, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-12, edid_read_size=128, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) write() succeeded (i2c_get_edid_bytes_directly ) Returning buffer: +0 +4 +8 +c 0 4 8 c +0000 00 ff ff ff ff ff ff 00 04 72 5f 07 fd a9 21 01 .........r_...!. +0010 0c 1e 01 03 80 3e 22 78 2a ad 65 ad 50 45 9f 25 .....>"x*.e.PE.% +0020 0e 50 54 bf ef 80 71 4f 81 40 81 80 81 c0 81 00 .PT...qO.@...... +0030 95 00 b3 00 d1 c0 56 5e 00 a0 a0 a0 29 50 30 20 ......V^....)P0 +0040 35 00 6d 55 21 00 00 1e 56 5e 00 a0 a0 a0 29 50 5.mU!...V^....)P +0050 30 20 35 00 6d 55 21 00 00 1e 00 00 00 fd 00 28 0 5.mU!........( +0060 3c 1e a0 3c 00 0a 20 20 20 20 20 20 00 00 00 fc <..<.. .... +0070 00 43 42 32 38 32 4b 0a 20 20 20 20 20 20 01 1f .CB282K. .. (i2c_get_edid_bytes_directly ) Returning: OK(0): success (i2c_get_raw_edid_by_fd ) tries=2, Returning OK(0): success (i2c_get_parsed_edid_by_fd ) Returning OK(0): success, *edid_ptr_loc = 0x5593ec7806a0 -> ...2020011f (is_laptop_drm_connector ) busno=12, drm_name_fragment |-eDP-|, Returning: false (is_laptop_drm_connector ) busno=12, drm_name_fragment |-LVDS-|, Returning: false (i2c_set_addr ) fd=3, addr=0x37, filename=/dev/i2c-12, i2c_force_slave_addr_flag=false, callopts=CALLOPT_NONE (i2c_set_addr ) addr = 0x37. filename = /dev/i2c-12, Returning OK(0): success (i2c_set_addr ) Done. Returning: OK(0): success (i2c_detect_x37 ) write() for slave address x37 returned 1 (i2c_detect_x37 ) read() for slave address x37 returned 4 (i2c_close_bus ) Starting. fd=3 - /dev/i2c-12, callopts=CALLOPT_ERR_MSG (i2c_close_bus ) Done. fd=3, filename=(null), Returning: OK(0): success (i2c_check_bus ) Done. flags=0x0cf1, bus info: Bus /dev/i2c-12 found: true Bus /dev/i2c-12 probed: true Bus accessible: true Bus is eDP: false Bus is LVDS: false Valid bus name checked: true I2C bus has valid name: true Address 0x37 present: true Address 0x50 present: true EDID synopsis: Mfg id: ACR Model: CB282K Product code: 1887 Serial number: Binary serial number: 18983421 (0x0121a9fd) Manufacture year: 2020, Week: 12 Extra descriptor: Video input definition: 0x80 - Digital Input Supported features: DPMS active-off Digital display type: RGB 4:4:4 Standard sRGB color space: False White x,y: 0.313, 0.329 Red x,y: 0.678, 0.314 Green x,y: 0.272, 0.622 Blue x,y: 0.146, 0.057 Extension blocks: 1 EDID source: EDID hex dump: +0 +4 +8 +c 0 4 8 c +0000 00 ff ff ff ff ff ff 00 04 72 5f 07 fd a9 21 01 .........r_...!. +0010 0c 1e 01 03 80 3e 22 78 2a ad 65 ad 50 45 9f 25 .....>"x*.e.PE.% +0020 0e 50 54 bf ef 80 71 4f 81 40 81 80 81 c0 81 00 .PT...qO.@...... +0030 95 00 b3 00 d1 c0 56 5e 00 a0 a0 a0 29 50 30 20 ......V^....)P0 +0040 35 00 6d 55 21 00 00 1e 56 5e 00 a0 a0 a0 29 50 5.mU!...V^....)P +0050 30 20 35 00 6d 55 21 00 00 1e 00 00 00 fd 00 28 0 5.mU!........( +0060 3c 1e a0 3c 00 0a 20 20 20 20 20 20 00 00 00 fc <..<.. .... +0070 00 43 42 32 38 32 4b 0a 20 20 20 20 20 20 01 1f .CB282K. .. (i2c_check_bus ) Starting. busno=13, buf_info=0x5593ec780f50 (i2c_open_bus ) Starting. busno=13, callopts=0x80 (i2c_open_bus ) Done. busno=13, Returning file descriptor: 3 (i2c_get_parsed_edid_by_fd ) Starting. fd=3, filename=/dev/i2c-13 (i2c_get_raw_edid_by_fd ) Getting EDID. File descriptor = 3, filename=/dev/i2c-13 (i2c_set_addr ) fd=3, addr=0x50, filename=/dev/i2c-13, i2c_force_slave_addr_flag=false, callopts=CALLOPT_ERR_MSG (i2c_set_addr ) addr = 0x50. filename = /dev/i2c-13, Returning OK(0): success (i2c_set_addr ) Done. Returning: OK(0): success (i2c_get_raw_edid_by_fd ) EDID_Read_Size=0, max_tries=-334945776 (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=0, max_tries=4, edid_read_size=128, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-13, edid_read_size=128, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) write() succeeded (i2c_get_edid_bytes_directly ) Returning buffer: +0 +4 +8 +c 0 4 8 c +0000 02 03 37 f1 4e 01 03 04 12 13 05 14 1f 90 07 02 ..7.N........... +0010 5d 5e 5f 23 09 07 07 83 01 00 00 e2 00 d5 6d 03 ]^_#..........m. +0020 0c 00 10 00 18 78 20 00 60 01 02 03 e3 05 e3 01 .....x .`....... +0030 e6 06 07 01 60 60 45 02 3a 80 18 71 38 2d 40 58 ....``E.:..q8-@X +0040 2c 45 00 6d 55 21 00 00 1e 01 1d 00 72 51 d0 1e ,E.mU!......rQ.. +0050 20 6e 28 55 00 6d 55 21 00 00 1e 8c 0a d0 8a 20 n(U.mU!....... +0060 e0 2d 10 10 3e 96 00 6d 55 21 00 00 18 00 00 00 .-..>..mU!...... +0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f6 ................ (i2c_get_edid_bytes_directly ) Returning: OK(0): success (i2c_get_raw_edid_by_fd ) Invalid EDID (i2c_get_raw_edid_by_fd ) EDID appears to start with a CEA 861 extension block (i2c_get_raw_edid_by_fd ) Trying EDID read. tryctr=1, max_tries=4, edid_read_size=128, read_bytewise=false, using local io (i2c_get_edid_bytes_directly ) Getting EDID. File descriptor = 3, filename=/dev/i2c-13, edid_read_size=128, read_bytewise=false (i2c_get_edid_bytes_directly ) write_before_read = true (i2c_get_edid_bytes_directly ) write() succeeded (i2c_get_edid_bytes_directly ) Returning buffer: +0 +4 +8 +c 0 4 8 c +0000 00 ff ff ff ff ff ff 00 04 72 5f 07 03 aa 21 01 .........r_...!. +0010 0c 1e 01 04 b5 3e 22 78 3b ad 65 ad 50 45 9f 25 .....>"x;.e.PE.% +0020 0e 50 54 23 08 00 81 40 81 80 81 c0 81 00 95 00 .PT#...@........ +0030 b3 00 d1 c0 01 01 e2 ca 00 38 f0 70 3e 80 18 10 .........8.p>... +0040 35 00 6d 55 21 00 00 1a 56 5e 00 a0 a0 a0 29 50 5.mU!...V^....)P +0050 30 20 35 00 6d 55 21 00 00 1e 00 00 00 fd 00 28 0 5.mU!........( +0060 3c a0 a0 3c 01 0a 20 20 20 20 20 20 00 00 00 fc <..<.. .... +0070 00 43 42 32 38 32 4b 0a 20 20 20 20 20 20 01 46 .CB282K. .F (i2c_get_edid_bytes_directly ) Returning: OK(0): success (i2c_get_raw_edid_by_fd ) tries=2, Returning OK(0): success (i2c_get_parsed_edid_by_fd ) Returning OK(0): success, *edid_ptr_loc = 0x5593ec791270 -> ...20200146 (is_laptop_drm_connector ) busno=13, drm_name_fragment |-eDP-|, Returning: false (is_laptop_drm_connector ) busno=13, drm_name_fragment |-LVDS-|, Returning: false (i2c_set_addr ) fd=3, addr=0x37, filename=/dev/i2c-13, i2c_force_slave_addr_flag=false, callopts=CALLOPT_NONE (i2c_set_addr ) addr = 0x37. filename = /dev/i2c-13, Returning OK(0): success (i2c_set_addr ) Done. Returning: OK(0): success (i2c_detect_x37 ) write() for slave address x37 returned 1 (i2c_detect_x37 ) read() for slave address x37 returned 4 (i2c_close_bus ) Starting. fd=3 - /dev/i2c-13, callopts=CALLOPT_ERR_MSG (i2c_close_bus ) Done. fd=3, filename=(null), Returning: OK(0): success (i2c_check_bus ) Done. flags=0x0cf1, bus info: Bus /dev/i2c-13 found: true Bus /dev/i2c-13 probed: true Bus accessible: true Bus is eDP: false Bus is LVDS: false Valid bus name checked: true I2C bus has valid name: true Address 0x37 present: true Address 0x50 present: true EDID synopsis: Mfg id: ACR Model: CB282K Product code: 1887 Serial number: Binary serial number: 18983427 (0x0121aa03) Manufacture year: 2020, Week: 12 Extra descriptor: Video input definition: 0xb5 - Digital Input (DisplayPort) Supported features: DPMS active-off Digital display type: RGB 4:4:4 + YCrCb 4:2:2 Standard sRGB color space: True White x,y: 0.313, 0.329 Red x,y: 0.678, 0.314 Green x,y: 0.272, 0.622 Blue x,y: 0.146, 0.057 Extension blocks: 1 EDID source: EDID hex dump: +0 +4 +8 +c 0 4 8 c +0000 00 ff ff ff ff ff ff 00 04 72 5f 07 03 aa 21 01 .........r_...!. +0010 0c 1e 01 04 b5 3e 22 78 3b ad 65 ad 50 45 9f 25 .....>"x;.e.PE.% +0020 0e 50 54 23 08 00 81 40 81 80 81 c0 81 00 95 00 .PT#...@........ +0030 b3 00 d1 c0 01 01 e2 ca 00 38 f0 70 3e 80 18 10 .........8.p>... +0040 35 00 6d 55 21 00 00 1a 56 5e 00 a0 a0 a0 29 50 5.mU!...V^....)P +0050 30 20 35 00 6d 55 21 00 00 1e 00 00 00 fd 00 28 0 5.mU!........( +0060 3c a0 a0 3c 01 0a 20 20 20 20 20 20 00 00 00 fc <..<.. .... +0070 00 43 42 32 38 32 4b 0a 20 20 20 20 20 20 01 46 .CB282K. .F (i2c_detect_buses ) Returning: 11 (ddc_detect_all_displays ) Starting (i2c_detect_buses ) Starting. i2c_buses = 0x5593ec7581a0 (i2c_detect_buses ) Returning: 11 (non_async_scan ) Starting. checking 4 displays (ddc_initial_checks_by_dref ) Starting. dref=Display_Ref[bus /dev/i2c-10], communication flags: DREF_DDC_IS_MONITOR_CHECKED, DREF_DDC_IS_MONITOR (ddc_open_display ) Opening display Display_Ref[bus /dev/i2c-10], callopts=CALLOPT_ERR_MSG (i2c_open_bus ) Starting. busno=10, callopts=0x80 (i2c_open_bus ) Done. busno=10, Returning file descriptor: 3 (i2c_set_addr ) fd=3, addr=0x37, filename=/dev/i2c-10, i2c_force_slave_addr_flag=false, callopts=CALLOPT_ERR_MSG (i2c_set_addr ) addr = 0x37. filename = /dev/i2c-10, Returning OK(0): success (i2c_set_addr ) Done. Returning: OK(0): success (ddc_open_display ) Done. Returning: OK(0): success, *dh_loc=Display_Handle[i2c: fd=3, busno=10] (ddc_initial_checks_by_dh ) Starting. dh=Display_Handle[i2c: fd=3, busno=10] (ddc_initial_checks_by_dh ) Starting. communication flags: DREF_DDC_IS_MONITOR_CHECKED, DREF_DDC_IS_MONITOR, DREF_OPEN (ddc_get_vcp_value ) Starting. Reading feature 0x00, dh=Display_Handle[i2c: fd=3, busno=10], dh->fd=3 (ddc_get_nontable_vcp_value ) Starting. dh=Display_Handle[i2c: fd=3, busno=10], Reading feature 0x00 (ddc_write_read_with_retry ) Starting. dh=Display_Handle[i2c: fd=3, busno=10], all_zero_response_ok=false (ddc_write_read ) Starting. dh=Display_Handle[i2c: fd=3, busno=10] (ddc_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=10], readbuf=0x5593ec75d880, max_read_bytes=11 (ddc_i2c_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=10], readbuf=0x5593ec75d880 (ddc_i2c_write_read_raw ) request_packet_ptr->raw_bytes: 6e 51 82 01 00 bc (check_deferred_sleep ) Sleeping for 49 milliseconds. deferred (invoke_i2c_writer ) fd=3, filename=/dev/i2c-10, slave_address=0x37, bytect=5, bytes_to_write=0x5593ec7930b1 -> 51 82 01 00 bc (i2c_fileio_writer ) Starting. fh=3, filename=/dev/i2c-10, slave_address=0x37, bytect=5, pbytes=0x5593ec7930b1 -> 51 82 01 00 bc (i2c_fileio_writer ) Done. Returning: EREMOTEIO(-121): Remote I/O error (invoke_i2c_writer ) Returning rc=EREMOTEIO(-121): Remote I/O error (ddc_i2c_write_read_raw ) Done. psc=EREMOTEIO(-121): Remote I/O error (ddc_write_read_raw ) Done. Returning: EREMOTEIO(-121): Remote I/O error (ddc_write_read ) Done. Returning: Error_Info[EREMOTEIO in ddc_write_read] (ddc_write_read ) Starting. dh=Display_Handle[i2c: fd=3, busno=10] (ddc_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=10], readbuf=0x5593ec780b20, max_read_bytes=11 (ddc_i2c_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=10], readbuf=0x5593ec780b20 (ddc_i2c_write_read_raw ) request_packet_ptr->raw_bytes: 6e 51 82 01 00 bc (check_deferred_sleep ) Sleeping for 0 milliseconds. deferred (invoke_i2c_writer ) fd=3, filename=/dev/i2c-10, slave_address=0x37, bytect=5, bytes_to_write=0x5593ec7930b1 -> 51 82 01 00 bc (i2c_fileio_writer ) Starting. fh=3, filename=/dev/i2c-10, slave_address=0x37, bytect=5, pbytes=0x5593ec7930b1 -> 51 82 01 00 bc (i2c_fileio_writer ) Done. Returning: EREMOTEIO(-121): Remote I/O error (invoke_i2c_writer ) Returning rc=EREMOTEIO(-121): Remote I/O error (ddc_i2c_write_read_raw ) Done. psc=EREMOTEIO(-121): Remote I/O error (ddc_write_read_raw ) Done. Returning: EREMOTEIO(-121): Remote I/O error (ddc_write_read ) Done. Returning: Error_Info[EREMOTEIO in ddc_write_read] (ddc_write_read ) Starting. dh=Display_Handle[i2c: fd=3, busno=10] (ddc_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=10], readbuf=0x5593ec780b20, max_read_bytes=11 (ddc_i2c_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=10], readbuf=0x5593ec780b20 (ddc_i2c_write_read_raw ) request_packet_ptr->raw_bytes: 6e 51 82 01 00 bc (invoke_i2c_writer ) fd=3, filename=/dev/i2c-10, slave_address=0x37, bytect=5, bytes_to_write=0x5593ec7930b1 -> 51 82 01 00 bc (i2c_fileio_writer ) Starting. fh=3, filename=/dev/i2c-10, slave_address=0x37, bytect=5, pbytes=0x5593ec7930b1 -> 51 82 01 00 bc (i2c_fileio_writer ) Done. Returning: EREMOTEIO(-121): Remote I/O error (invoke_i2c_writer ) Returning rc=EREMOTEIO(-121): Remote I/O error (ddc_i2c_write_read_raw ) Done. psc=EREMOTEIO(-121): Remote I/O error (ddc_write_read_raw ) Done. Returning: EREMOTEIO(-121): Remote I/O error (ddc_write_read ) Done. Returning: Error_Info[EREMOTEIO in ddc_write_read] (ddc_write_read ) Starting. dh=Display_Handle[i2c: fd=3, busno=10] (ddc_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=10], readbuf=0x5593ec780b20, max_read_bytes=11 (ddc_i2c_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=10], readbuf=0x5593ec780b20 (ddc_i2c_write_read_raw ) request_packet_ptr->raw_bytes: 6e 51 82 01 00 bc (invoke_i2c_writer ) fd=3, filename=/dev/i2c-10, slave_address=0x37, bytect=5, bytes_to_write=0x5593ec7930b1 -> 51 82 01 00 bc (i2c_fileio_writer ) Starting. fh=3, filename=/dev/i2c-10, slave_address=0x37, bytect=5, pbytes=0x5593ec7930b1 -> 51 82 01 00 bc (i2c_fileio_writer ) Done. Returning: EREMOTEIO(-121): Remote I/O error (invoke_i2c_writer ) Returning rc=EREMOTEIO(-121): Remote I/O error (ddc_i2c_write_read_raw ) Done. psc=EREMOTEIO(-121): Remote I/O error (ddc_write_read_raw ) Done. Returning: EREMOTEIO(-121): Remote I/O error (ddc_write_read ) Done. Returning: Error_Info[EREMOTEIO in ddc_write_read] (ddc_write_read ) Starting. dh=Display_Handle[i2c: fd=3, busno=10] (ddc_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=10], readbuf=0x5593ec780b20, max_read_bytes=11 (ddc_i2c_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=10], readbuf=0x5593ec780b20 (ddc_i2c_write_read_raw ) request_packet_ptr->raw_bytes: 6e 51 82 01 00 bc (invoke_i2c_writer ) fd=3, filename=/dev/i2c-10, slave_address=0x37, bytect=5, bytes_to_write=0x5593ec7930b1 -> 51 82 01 00 bc (i2c_fileio_writer ) Starting. fh=3, filename=/dev/i2c-10, slave_address=0x37, bytect=5, pbytes=0x5593ec7930b1 -> 51 82 01 00 bc (i2c_fileio_writer ) Done. Returning: EREMOTEIO(-121): Remote I/O error (invoke_i2c_writer ) Returning rc=EREMOTEIO(-121): Remote I/O error (ddc_i2c_write_read_raw ) Done. psc=EREMOTEIO(-121): Remote I/O error (ddc_write_read_raw ) Done. Returning: EREMOTEIO(-121): Remote I/O error (ddc_write_read ) Done. Returning: Error_Info[EREMOTEIO in ddc_write_read] (ddc_write_read ) Starting. dh=Display_Handle[i2c: fd=3, busno=10] (ddc_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=10], readbuf=0x5593ec780b20, max_read_bytes=11 (ddc_i2c_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=10], readbuf=0x5593ec780b20 (ddc_i2c_write_read_raw ) request_packet_ptr->raw_bytes: 6e 51 82 01 00 bc (invoke_i2c_writer ) fd=3, filename=/dev/i2c-10, slave_address=0x37, bytect=5, bytes_to_write=0x5593ec7930b1 -> 51 82 01 00 bc (i2c_fileio_writer ) Starting. fh=3, filename=/dev/i2c-10, slave_address=0x37, bytect=5, pbytes=0x5593ec7930b1 -> 51 82 01 00 bc (i2c_fileio_writer ) Done. Returning: EREMOTEIO(-121): Remote I/O error (invoke_i2c_writer ) Returning rc=EREMOTEIO(-121): Remote I/O error (ddc_i2c_write_read_raw ) Done. psc=EREMOTEIO(-121): Remote I/O error (ddc_write_read_raw ) Done. Returning: EREMOTEIO(-121): Remote I/O error (ddc_write_read ) Done. Returning: Error_Info[EREMOTEIO in ddc_write_read] (ddc_write_read ) Starting. dh=Display_Handle[i2c: fd=3, busno=10] (ddc_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=10], readbuf=0x5593ec780b20, max_read_bytes=11 (ddc_i2c_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=10], readbuf=0x5593ec780b20 (ddc_i2c_write_read_raw ) request_packet_ptr->raw_bytes: 6e 51 82 01 00 bc (invoke_i2c_writer ) fd=3, filename=/dev/i2c-10, slave_address=0x37, bytect=5, bytes_to_write=0x5593ec7930b1 -> 51 82 01 00 bc (i2c_fileio_writer ) Starting. fh=3, filename=/dev/i2c-10, slave_address=0x37, bytect=5, pbytes=0x5593ec7930b1 -> 51 82 01 00 bc (i2c_fileio_writer ) Done. Returning: EREMOTEIO(-121): Remote I/O error (invoke_i2c_writer ) Returning rc=EREMOTEIO(-121): Remote I/O error (ddc_i2c_write_read_raw ) Done. psc=EREMOTEIO(-121): Remote I/O error (ddc_write_read_raw ) Done. Returning: EREMOTEIO(-121): Remote I/O error (ddc_write_read ) Done. Returning: Error_Info[EREMOTEIO in ddc_write_read] (ddc_write_read ) Starting. dh=Display_Handle[i2c: fd=3, busno=10] (ddc_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=10], readbuf=0x5593ec780b20, max_read_bytes=11 (ddc_i2c_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=10], readbuf=0x5593ec780b20 (ddc_i2c_write_read_raw ) request_packet_ptr->raw_bytes: 6e 51 82 01 00 bc (invoke_i2c_writer ) fd=3, filename=/dev/i2c-10, slave_address=0x37, bytect=5, bytes_to_write=0x5593ec7930b1 -> 51 82 01 00 bc (i2c_fileio_writer ) Starting. fh=3, filename=/dev/i2c-10, slave_address=0x37, bytect=5, pbytes=0x5593ec7930b1 -> 51 82 01 00 bc (i2c_fileio_writer ) Done. Returning: EREMOTEIO(-121): Remote I/O error (invoke_i2c_writer ) Returning rc=EREMOTEIO(-121): Remote I/O error (ddc_i2c_write_read_raw ) Done. psc=EREMOTEIO(-121): Remote I/O error (ddc_write_read_raw ) Done. Returning: EREMOTEIO(-121): Remote I/O error (ddc_write_read ) Done. Returning: Error_Info[EREMOTEIO in ddc_write_read] (ddc_write_read ) Starting. dh=Display_Handle[i2c: fd=3, busno=10] (ddc_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=10], readbuf=0x5593ec780b20, max_read_bytes=11 (ddc_i2c_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=10], readbuf=0x5593ec780b20 (ddc_i2c_write_read_raw ) request_packet_ptr->raw_bytes: 6e 51 82 01 00 bc (invoke_i2c_writer ) fd=3, filename=/dev/i2c-10, slave_address=0x37, bytect=5, bytes_to_write=0x5593ec7930b1 -> 51 82 01 00 bc (i2c_fileio_writer ) Starting. fh=3, filename=/dev/i2c-10, slave_address=0x37, bytect=5, pbytes=0x5593ec7930b1 -> 51 82 01 00 bc (i2c_fileio_writer ) Done. Returning: EREMOTEIO(-121): Remote I/O error (invoke_i2c_writer ) Returning rc=EREMOTEIO(-121): Remote I/O error (ddc_i2c_write_read_raw ) Done. psc=EREMOTEIO(-121): Remote I/O error (ddc_write_read_raw ) Done. Returning: EREMOTEIO(-121): Remote I/O error (ddc_write_read ) Done. Returning: Error_Info[EREMOTEIO in ddc_write_read] (ddc_write_read ) Starting. dh=Display_Handle[i2c: fd=3, busno=10] (ddc_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=10], readbuf=0x5593ec780b20, max_read_bytes=11 (ddc_i2c_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=10], readbuf=0x5593ec780b20 (ddc_i2c_write_read_raw ) request_packet_ptr->raw_bytes: 6e 51 82 01 00 bc (invoke_i2c_writer ) fd=3, filename=/dev/i2c-10, slave_address=0x37, bytect=5, bytes_to_write=0x5593ec7930b1 -> 51 82 01 00 bc (i2c_fileio_writer ) Starting. fh=3, filename=/dev/i2c-10, slave_address=0x37, bytect=5, pbytes=0x5593ec7930b1 -> 51 82 01 00 bc (i2c_fileio_writer ) Done. Returning: EREMOTEIO(-121): Remote I/O error (invoke_i2c_writer ) Returning rc=EREMOTEIO(-121): Remote I/O error (ddc_i2c_write_read_raw ) Done. psc=EREMOTEIO(-121): Remote I/O error (ddc_write_read_raw ) Done. Returning: EREMOTEIO(-121): Remote I/O error (ddc_write_read ) Done. Returning: Error_Info[EREMOTEIO in ddc_write_read] (ddc_write_read_with_retry ) Failed after 10 errors: EREMOTEIO(10) (ddc_write_read_with_retry ) After try loop. tryctr=10, retryable=true (ddc_write_read_with_retry ) Done. Total Tries (tryctr): 10. Returning: Error_Info[DDCRC_RETRIES in ddc_write_read_with_retry, causes: EREMOTEIO(10)] (ddc_get_nontable_vcp_value ) ddc_write_read_with_retry() returned DDCRC_RETRIES(-3007): maximum retries exceeded, reponse_packet_ptr=(nil) (ddc_get_nontable_vcp_value ) Done. Error reading feature x00. Returning exception: Error_Info[DDCRC_RETRIES in ddc_write_read_with_retry, causes: EREMOTEIO(10)] (ddc_get_vcp_value ) Done. Returning: Error_Info[DDCRC_RETRIES in ddc_write_read_with_retry, causes: EREMOTEIO(10)] (ddc_initial_checks_by_dh ) ddc_get_vcp_value() for feature 0x00 returned: Error_Info[DDCRC_RETRIES in ddc_write_read_with_retry, causes: EREMOTEIO(10)], pvalrec=(nil) (ddc_initial_checks_by_dh ) Done. dh=Display_Handle[i2c: fd=3, busno=10], Returning: false (ddc_initial_checks_by_dh ) Done. communication flags: DREF_DDC_COMMUNICATION_CHECKED, DREF_DDC_IS_MONITOR_CHECKED, DREF_DDC_IS_MONITOR, DREF_OPEN (ddc_close_display ) Starting. dh=Display_Handle[i2c: fd=3, busno=10], dref=Display_Ref[bus /dev/i2c-10], fd=3, dpath=bus /dev/i2c-10 (i2c_close_bus ) Starting. fd=3 - /dev/i2c-10, callopts=CALLOPT_NONE (i2c_close_bus ) Done. fd=3, filename=(null), Returning: OK(0): success (ddc_close_display ) Done. dref=Display_Ref[bus /dev/i2c-10] Returning: OK(0): success (ddc_initial_checks_by_dref ) Done. dref = Display_Ref[bus /dev/i2c-10], returning false (ddc_initial_checks_by_dref ) Done. communication flags: DREF_DDC_COMMUNICATION_CHECKED, DREF_DDC_IS_MONITOR_CHECKED, DREF_DDC_IS_MONITOR (ddc_initial_checks_by_dref ) Starting. dref=Display_Ref[bus /dev/i2c-11], communication flags: DREF_DDC_IS_MONITOR_CHECKED, DREF_DDC_IS_MONITOR (ddc_open_display ) Opening display Display_Ref[bus /dev/i2c-11], callopts=CALLOPT_ERR_MSG (i2c_open_bus ) Starting. busno=11, callopts=0x80 (i2c_open_bus ) Done. busno=11, Returning file descriptor: 3 (i2c_set_addr ) fd=3, addr=0x37, filename=/dev/i2c-11, i2c_force_slave_addr_flag=false, callopts=CALLOPT_ERR_MSG (i2c_set_addr ) addr = 0x37. filename = /dev/i2c-11, Returning OK(0): success (i2c_set_addr ) Done. Returning: OK(0): success (ddc_open_display ) Done. Returning: OK(0): success, *dh_loc=Display_Handle[i2c: fd=3, busno=11] (ddc_initial_checks_by_dh ) Starting. dh=Display_Handle[i2c: fd=3, busno=11] (ddc_initial_checks_by_dh ) Starting. communication flags: DREF_DDC_IS_MONITOR_CHECKED, DREF_DDC_IS_MONITOR, DREF_OPEN (ddc_get_vcp_value ) Starting. Reading feature 0x00, dh=Display_Handle[i2c: fd=3, busno=11], dh->fd=3 (ddc_get_nontable_vcp_value ) Starting. dh=Display_Handle[i2c: fd=3, busno=11], Reading feature 0x00 (ddc_write_read_with_retry ) Starting. dh=Display_Handle[i2c: fd=3, busno=11], all_zero_response_ok=false (ddc_write_read ) Starting. dh=Display_Handle[i2c: fd=3, busno=11] (ddc_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=11], readbuf=0x5593ec781d70, max_read_bytes=11 (ddc_i2c_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=11], readbuf=0x5593ec781d70 (ddc_i2c_write_read_raw ) request_packet_ptr->raw_bytes: 6e 51 82 01 00 bc (check_deferred_sleep ) Sleeping for 49 milliseconds. deferred (invoke_i2c_writer ) fd=3, filename=/dev/i2c-11, slave_address=0x37, bytect=5, bytes_to_write=0x5593ec781d01 -> 51 82 01 00 bc (i2c_fileio_writer ) Starting. fh=3, filename=/dev/i2c-11, slave_address=0x37, bytect=5, pbytes=0x5593ec781d01 -> 51 82 01 00 bc (i2c_fileio_writer ) Done. Returning: OK(0): success (invoke_i2c_writer ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Sleeping for 50 milliseconds. Event_type: SE_WRITE_TO_READ (invoke_i2c_reader ) fd=3, filename=/dev/i2c-11, slave_address=0x37, bytect=11, read_bytewise=false, readbuf=0x5593ec781d70 (i2c_fileio_reader ) Starting. fd=3, fn=/dev/i2c-11, bytect=11, slave_address=0x37, single_byte_reads=false (i2c_fileio_reader ) Returning: OK(0): success, readbuf: 6e 88 02 01 00 01 ff ff 00 00 b4 (invoke_i2c_reader ) Bytes read: 6e 88 02 01 00 01 ff ff 00 00 b4 (invoke_i2c_reader ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Response bytes: 6e 88 02 01 00 01 ff ff 00 00 b4 (ddc_i2c_write_read_raw ) Done. psc=OK(0): success (ddc_write_read_raw ) Done. Returning: OK(0): success (ddc_write_read_raw ) readbuf: 6e880201 0001ffff 0000b4 (create_ddc_typed_response_packet) Starting. i2c_response_bytes=6e 88 02 01 00 01 ff ff 00 00 b4 00 00 00 00 00 00 00 00 00 (create_ddc_response_packet ) Starting. i2c_response_bytes=6e 88 02 01 00 01 ff ff 00 00 b4 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Starting. i2c_response_bytes=6e 88 02 01 00 01 ff ff 00 00 b4 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec781220 (create_ddc_response_packet ) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec781220 (create_ddc_typed_response_packet) Create_ddc_response_packet() returned OK(0): success, *packet_ptr_addr=0x5593ec781220 (interpret_vcp_feature_response_std) Starting. requested_vcp_code: 0x00, vcp_data_bytes: 02010001 ffff0000 (interpret_vcp_feature_response_std) Unsupported VCP Code: 0x00 (interpret_vcp_feature_response_std) Returning OK(0): success (create_ddc_typed_response_packet) Returning DDCRC_OK(0): success, *packet_ptr=0x5593ec781220 DDC_Packet dump. Addr: 0x5593ec781220, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec793360, parsed: 0x5593ec781480 Buffer at 0x5593ec793360, bytes addr=0x5593ec7814a0, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 01 00 01 ff ff 00 00 b4 on.......... VCP code: 0x00 valid_response: 1 supported_opcode: 0 max_value: 0 cur_value: 0 mh: 0x00 ml: 0x00 sh: 0x00 sl: 0x00 (ddc_write_read ) create_ddc_typed_response_packet() returned DDCRC_OK(0): success, *response_packet_ptr_loc=0x5593ec781220 (ddc_write_read ) Done. Returning: NULL, *response_packet_ptr_loc -> DDC_Packet dump. Addr: 0x5593ec781220, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec793360, parsed: 0x5593ec781480 Buffer at 0x5593ec793360, bytes addr=0x5593ec7814a0, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 01 00 01 ff ff 00 00 b4 on.......... VCP code: 0x00 valid_response: 1 supported_opcode: 0 max_value: 0 cur_value: 0 mh: 0x00 ml: 0x00 sh: 0x00 sl: 0x00 (ddc_write_read_with_retry ) Done. Total Tries (tryctr): 1. Returning: NULL (ddc_get_nontable_vcp_value ) Done. Error reading feature x00. Returning exception: Error_Info[DDCRC_REPORTED_UNSUPPORTED in ddc_get_nontable_vcp_value] (ddc_get_vcp_value ) Done. Returning: Error_Info[DDCRC_REPORTED_UNSUPPORTED in ddc_get_nontable_vcp_value] (ddc_initial_checks_by_dh ) ddc_get_vcp_value() for feature 0x00 returned: Error_Info[DDCRC_REPORTED_UNSUPPORTED in ddc_get_nontable_vcp_value], pvalrec=(nil) (ddc_get_vcp_value ) Starting. Reading feature 0xdf, dh=Display_Handle[i2c: fd=3, busno=11], dh->fd=3 (ddc_get_nontable_vcp_value ) Starting. dh=Display_Handle[i2c: fd=3, busno=11], Reading feature 0xdf (ddc_write_read_with_retry ) Starting. dh=Display_Handle[i2c: fd=3, busno=11], all_zero_response_ok=false (ddc_write_read ) Starting. dh=Display_Handle[i2c: fd=3, busno=11] (ddc_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=11], readbuf=0x5593ec781750, max_read_bytes=11 (ddc_i2c_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=11], readbuf=0x5593ec781750 (ddc_i2c_write_read_raw ) request_packet_ptr->raw_bytes: 6e 51 82 01 df 63 (invoke_i2c_writer ) fd=3, filename=/dev/i2c-11, slave_address=0x37, bytect=5, bytes_to_write=0x5593ec7817c1 -> 51 82 01 df 63 (i2c_fileio_writer ) Starting. fh=3, filename=/dev/i2c-11, slave_address=0x37, bytect=5, pbytes=0x5593ec7817c1 -> 51 82 01 df 63 (i2c_fileio_writer ) Done. Returning: OK(0): success (invoke_i2c_writer ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Sleeping for 50 milliseconds. Event_type: SE_WRITE_TO_READ (invoke_i2c_reader ) fd=3, filename=/dev/i2c-11, slave_address=0x37, bytect=11, read_bytewise=false, readbuf=0x5593ec781750 (i2c_fileio_reader ) Starting. fd=3, fn=/dev/i2c-11, bytect=11, slave_address=0x37, single_byte_reads=false (i2c_fileio_reader ) Returning: OK(0): success, readbuf: 6e 88 02 00 df 01 00 ff 02 01 96 (invoke_i2c_reader ) Bytes read: 6e 88 02 00 df 01 00 ff 02 01 96 (invoke_i2c_reader ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Response bytes: 6e 88 02 00 df 01 00 ff 02 01 96 (ddc_i2c_write_read_raw ) Done. psc=OK(0): success (ddc_write_read_raw ) Done. Returning: OK(0): success (ddc_write_read_raw ) readbuf: 6e880200 df0100ff 020196 (create_ddc_typed_response_packet) Starting. i2c_response_bytes=6e 88 02 00 df 01 00 ff 02 01 96 00 00 00 00 00 00 00 00 00 (create_ddc_response_packet ) Starting. i2c_response_bytes=6e 88 02 00 df 01 00 ff 02 01 96 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Starting. i2c_response_bytes=6e 88 02 00 df 01 00 ff 02 01 96 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec781920 (create_ddc_response_packet ) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec781920 (create_ddc_typed_response_packet) Create_ddc_response_packet() returned OK(0): success, *packet_ptr_addr=0x5593ec781920 (interpret_vcp_feature_response_std) Starting. requested_vcp_code: 0xdf, vcp_data_bytes: 0200df01 00ff0201 (interpret_vcp_feature_response_std) vcp_opcode = 0xdf, vcp_type_code=0x01, max_val=255 (0x00ff), cur_val=513 (0x0201) (interpret_vcp_feature_response_std) valid_response=true (interpret_vcp_feature_response_std) Returning OK(0): success (create_ddc_typed_response_packet) Returning DDCRC_OK(0): success, *packet_ptr=0x5593ec781920 DDC_Packet dump. Addr: 0x5593ec781920, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec757d80, parsed: 0x5593ec781270 Buffer at 0x5593ec757d80, bytes addr=0x5593ec781290, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 00 df 01 00 ff 02 01 96 on.......... VCP code: 0xdf valid_response: 1 supported_opcode: 1 max_value: 255 cur_value: 513 mh: 0x00 ml: 0xff sh: 0x02 sl: 0x01 (ddc_write_read ) create_ddc_typed_response_packet() returned DDCRC_OK(0): success, *response_packet_ptr_loc=0x5593ec781920 (ddc_write_read ) Done. Returning: NULL, *response_packet_ptr_loc -> DDC_Packet dump. Addr: 0x5593ec781920, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec757d80, parsed: 0x5593ec781270 Buffer at 0x5593ec757d80, bytes addr=0x5593ec781290, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 00 df 01 00 ff 02 01 96 on.......... VCP code: 0xdf valid_response: 1 supported_opcode: 1 max_value: 255 cur_value: 513 mh: 0x00 ml: 0xff sh: 0x02 sl: 0x01 (ddc_write_read_with_retry ) Done. Total Tries (tryctr): 1. Returning: NULL (ddc_get_nontable_vcp_value ) Done. Success reading feature xdf. *ppinterpreted_code=0x5593ec781380 (ddc_get_nontable_vcp_value ) mh=0x00, ml=0xff, sh=0x02, sl=0x01, max value=255, cur value=513 (ddc_get_vcp_value ) Done. Returning: NULL, *valrec -> Single_Vcp_Value at 0x5593ec781270: Opcode: 0xdf Value type: DDCA_NON_TABLE_VCP_VALUE (0x01) max_val: 255 - 0x00ff cur_val: 513 - 0x0201 mh: 0x00 ml: 0xff sh: 0x02 sl: 0x01 (ddc_initial_checks_by_dh ) Done. dh=Display_Handle[i2c: fd=3, busno=11], Returning: true (ddc_initial_checks_by_dh ) Done. communication flags: DREF_DDC_COMMUNICATION_CHECKED, DREF_DDC_COMMUNICATION_WORKING, DREF_DDC_IS_MONITOR_CHECKED, DREF_DDC_IS_MONITOR, DREF_OPEN (ddc_close_display ) Starting. dh=Display_Handle[i2c: fd=3, busno=11], dref=Display_Ref[bus /dev/i2c-11], fd=3, dpath=bus /dev/i2c-11 (i2c_close_bus ) Starting. fd=3 - /dev/i2c-11, callopts=CALLOPT_NONE (i2c_close_bus ) Done. fd=3, filename=(null), Returning: OK(0): success (ddc_close_display ) Done. dref=Display_Ref[bus /dev/i2c-11] Returning: OK(0): success (ddc_initial_checks_by_dref ) Done. dref = Display_Ref[bus /dev/i2c-11], returning true (ddc_initial_checks_by_dref ) Done. communication flags: DREF_DDC_COMMUNICATION_CHECKED, DREF_DDC_COMMUNICATION_WORKING, DREF_DDC_IS_MONITOR_CHECKED, DREF_DDC_IS_MONITOR (ddc_initial_checks_by_dref ) Starting. dref=Display_Ref[bus /dev/i2c-12], communication flags: DREF_DDC_IS_MONITOR_CHECKED, DREF_DDC_IS_MONITOR (ddc_open_display ) Opening display Display_Ref[bus /dev/i2c-12], callopts=CALLOPT_ERR_MSG (i2c_open_bus ) Starting. busno=12, callopts=0x80 (i2c_open_bus ) Done. busno=12, Returning file descriptor: 3 (i2c_set_addr ) fd=3, addr=0x37, filename=/dev/i2c-12, i2c_force_slave_addr_flag=false, callopts=CALLOPT_ERR_MSG (i2c_set_addr ) addr = 0x37. filename = /dev/i2c-12, Returning OK(0): success (i2c_set_addr ) Done. Returning: OK(0): success (ddc_open_display ) Done. Returning: OK(0): success, *dh_loc=Display_Handle[i2c: fd=3, busno=12] (ddc_initial_checks_by_dh ) Starting. dh=Display_Handle[i2c: fd=3, busno=12] (ddc_initial_checks_by_dh ) Starting. communication flags: DREF_DDC_IS_MONITOR_CHECKED, DREF_DDC_IS_MONITOR, DREF_OPEN (ddc_get_vcp_value ) Starting. Reading feature 0x00, dh=Display_Handle[i2c: fd=3, busno=12], dh->fd=3 (ddc_get_nontable_vcp_value ) Starting. dh=Display_Handle[i2c: fd=3, busno=12], Reading feature 0x00 (ddc_write_read_with_retry ) Starting. dh=Display_Handle[i2c: fd=3, busno=12], all_zero_response_ok=false (ddc_write_read ) Starting. dh=Display_Handle[i2c: fd=3, busno=12] (ddc_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=12], readbuf=0x5593ec781c70, max_read_bytes=11 (ddc_i2c_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=12], readbuf=0x5593ec781c70 (ddc_i2c_write_read_raw ) request_packet_ptr->raw_bytes: 6e 51 82 01 00 bc (check_deferred_sleep ) Sleeping for 49 milliseconds. deferred (invoke_i2c_writer ) fd=3, filename=/dev/i2c-12, slave_address=0x37, bytect=5, bytes_to_write=0x5593ec781971 -> 51 82 01 00 bc (i2c_fileio_writer ) Starting. fh=3, filename=/dev/i2c-12, slave_address=0x37, bytect=5, pbytes=0x5593ec781971 -> 51 82 01 00 bc (i2c_fileio_writer ) Done. Returning: OK(0): success (invoke_i2c_writer ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Sleeping for 50 milliseconds. Event_type: SE_WRITE_TO_READ (invoke_i2c_reader ) fd=3, filename=/dev/i2c-12, slave_address=0x37, bytect=11, read_bytewise=false, readbuf=0x5593ec781c70 (i2c_fileio_reader ) Starting. fd=3, fn=/dev/i2c-12, bytect=11, slave_address=0x37, single_byte_reads=false (i2c_fileio_reader ) Returning: OK(0): success, readbuf: 6e 88 02 01 00 01 ff ff 00 00 b4 (invoke_i2c_reader ) Bytes read: 6e 88 02 01 00 01 ff ff 00 00 b4 (invoke_i2c_reader ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Response bytes: 6e 88 02 01 00 01 ff ff 00 00 b4 (ddc_i2c_write_read_raw ) Done. psc=OK(0): success (ddc_write_read_raw ) Done. Returning: OK(0): success (ddc_write_read_raw ) readbuf: 6e880201 0001ffff 0000b4 (create_ddc_typed_response_packet) Starting. i2c_response_bytes=6e 88 02 01 00 01 ff ff 00 00 b4 00 00 00 00 00 00 00 00 00 (create_ddc_response_packet ) Starting. i2c_response_bytes=6e 88 02 01 00 01 ff ff 00 00 b4 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Starting. i2c_response_bytes=6e 88 02 01 00 01 ff ff 00 00 b4 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec781cb0 (create_ddc_response_packet ) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec781cb0 (create_ddc_typed_response_packet) Create_ddc_response_packet() returned OK(0): success, *packet_ptr_addr=0x5593ec781cb0 (interpret_vcp_feature_response_std) Starting. requested_vcp_code: 0x00, vcp_data_bytes: 02010001 ffff0000 (interpret_vcp_feature_response_std) Unsupported VCP Code: 0x00 (interpret_vcp_feature_response_std) Returning OK(0): success (create_ddc_typed_response_packet) Returning DDCRC_OK(0): success, *packet_ptr=0x5593ec781cb0 DDC_Packet dump. Addr: 0x5593ec781cb0, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec7934a0, parsed: 0x5593ec781b90 Buffer at 0x5593ec7934a0, bytes addr=0x5593ec781050, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 01 00 01 ff ff 00 00 b4 on.......... VCP code: 0x00 valid_response: 1 supported_opcode: 0 max_value: 0 cur_value: 0 mh: 0x00 ml: 0x00 sh: 0x00 sl: 0x00 (ddc_write_read ) create_ddc_typed_response_packet() returned DDCRC_OK(0): success, *response_packet_ptr_loc=0x5593ec781cb0 (ddc_write_read ) Done. Returning: NULL, *response_packet_ptr_loc -> DDC_Packet dump. Addr: 0x5593ec781cb0, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec7934a0, parsed: 0x5593ec781b90 Buffer at 0x5593ec7934a0, bytes addr=0x5593ec781050, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 01 00 01 ff ff 00 00 b4 on.......... VCP code: 0x00 valid_response: 1 supported_opcode: 0 max_value: 0 cur_value: 0 mh: 0x00 ml: 0x00 sh: 0x00 sl: 0x00 (ddc_write_read_with_retry ) Done. Total Tries (tryctr): 1. Returning: NULL (ddc_get_nontable_vcp_value ) Done. Error reading feature x00. Returning exception: Error_Info[DDCRC_REPORTED_UNSUPPORTED in ddc_get_nontable_vcp_value] (ddc_get_vcp_value ) Done. Returning: Error_Info[DDCRC_REPORTED_UNSUPPORTED in ddc_get_nontable_vcp_value] (ddc_initial_checks_by_dh ) ddc_get_vcp_value() for feature 0x00 returned: Error_Info[DDCRC_REPORTED_UNSUPPORTED in ddc_get_nontable_vcp_value], pvalrec=(nil) (ddc_get_vcp_value ) Starting. Reading feature 0xdf, dh=Display_Handle[i2c: fd=3, busno=12], dh->fd=3 (ddc_get_nontable_vcp_value ) Starting. dh=Display_Handle[i2c: fd=3, busno=12], Reading feature 0xdf (ddc_write_read_with_retry ) Starting. dh=Display_Handle[i2c: fd=3, busno=12], all_zero_response_ok=false (ddc_write_read ) Starting. dh=Display_Handle[i2c: fd=3, busno=12] (ddc_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=12], readbuf=0x5593ec781270, max_read_bytes=11 (ddc_i2c_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=12], readbuf=0x5593ec781270 (ddc_i2c_write_read_raw ) request_packet_ptr->raw_bytes: 6e 51 82 01 df 63 (invoke_i2c_writer ) fd=3, filename=/dev/i2c-12, slave_address=0x37, bytect=5, bytes_to_write=0x5593ec7926f1 -> 51 82 01 df 63 (i2c_fileio_writer ) Starting. fh=3, filename=/dev/i2c-12, slave_address=0x37, bytect=5, pbytes=0x5593ec7926f1 -> 51 82 01 df 63 (i2c_fileio_writer ) Done. Returning: OK(0): success (invoke_i2c_writer ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Sleeping for 50 milliseconds. Event_type: SE_WRITE_TO_READ (invoke_i2c_reader ) fd=3, filename=/dev/i2c-12, slave_address=0x37, bytect=11, read_bytewise=false, readbuf=0x5593ec781270 (i2c_fileio_reader ) Starting. fd=3, fn=/dev/i2c-12, bytect=11, slave_address=0x37, single_byte_reads=false (i2c_fileio_reader ) Returning: OK(0): success, readbuf: 6e 88 02 00 df 01 00 ff 02 01 96 (invoke_i2c_reader ) Bytes read: 6e 88 02 00 df 01 00 ff 02 01 96 (invoke_i2c_reader ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Response bytes: 6e 88 02 00 df 01 00 ff 02 01 96 (ddc_i2c_write_read_raw ) Done. psc=OK(0): success (ddc_write_read_raw ) Done. Returning: OK(0): success (ddc_write_read_raw ) readbuf: 6e880200 df0100ff 020196 (create_ddc_typed_response_packet) Starting. i2c_response_bytes=6e 88 02 00 df 01 00 ff 02 01 96 00 00 00 00 00 00 00 00 00 (create_ddc_response_packet ) Starting. i2c_response_bytes=6e 88 02 00 df 01 00 ff 02 01 96 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Starting. i2c_response_bytes=6e 88 02 00 df 01 00 ff 02 01 96 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec792710 (create_ddc_response_packet ) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec792710 (create_ddc_typed_response_packet) Create_ddc_response_packet() returned OK(0): success, *packet_ptr_addr=0x5593ec792710 (interpret_vcp_feature_response_std) Starting. requested_vcp_code: 0xdf, vcp_data_bytes: 0200df01 00ff0201 (interpret_vcp_feature_response_std) vcp_opcode = 0xdf, vcp_type_code=0x01, max_val=255 (0x00ff), cur_val=513 (0x0201) (interpret_vcp_feature_response_std) valid_response=true (interpret_vcp_feature_response_std) Returning OK(0): success (create_ddc_typed_response_packet) Returning DDCRC_OK(0): success, *packet_ptr=0x5593ec792710 DDC_Packet dump. Addr: 0x5593ec792710, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec781bf0, parsed: 0x5593ec793810 Buffer at 0x5593ec781bf0, bytes addr=0x5593ec780660, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 00 df 01 00 ff 02 01 96 on.......... VCP code: 0xdf valid_response: 1 supported_opcode: 1 max_value: 255 cur_value: 513 mh: 0x00 ml: 0xff sh: 0x02 sl: 0x01 (ddc_write_read ) create_ddc_typed_response_packet() returned DDCRC_OK(0): success, *response_packet_ptr_loc=0x5593ec792710 (ddc_write_read ) Done. Returning: NULL, *response_packet_ptr_loc -> DDC_Packet dump. Addr: 0x5593ec792710, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec781bf0, parsed: 0x5593ec793810 Buffer at 0x5593ec781bf0, bytes addr=0x5593ec780660, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 00 df 01 00 ff 02 01 96 on.......... VCP code: 0xdf valid_response: 1 supported_opcode: 1 max_value: 255 cur_value: 513 mh: 0x00 ml: 0xff sh: 0x02 sl: 0x01 (ddc_write_read_with_retry ) Done. Total Tries (tryctr): 1. Returning: NULL (ddc_get_nontable_vcp_value ) Done. Success reading feature xdf. *ppinterpreted_code=0x5593ec781d00 (ddc_get_nontable_vcp_value ) mh=0x00, ml=0xff, sh=0x02, sl=0x01, max value=255, cur value=513 (ddc_get_vcp_value ) Done. Returning: NULL, *valrec -> Single_Vcp_Value at 0x5593ec793810: Opcode: 0xdf Value type: DDCA_NON_TABLE_VCP_VALUE (0x01) max_val: 255 - 0x00ff cur_val: 513 - 0x0201 mh: 0x00 ml: 0xff sh: 0x02 sl: 0x01 (ddc_initial_checks_by_dh ) Done. dh=Display_Handle[i2c: fd=3, busno=12], Returning: true (ddc_initial_checks_by_dh ) Done. communication flags: DREF_DDC_COMMUNICATION_CHECKED, DREF_DDC_COMMUNICATION_WORKING, DREF_DDC_IS_MONITOR_CHECKED, DREF_DDC_IS_MONITOR, DREF_OPEN (ddc_close_display ) Starting. dh=Display_Handle[i2c: fd=3, busno=12], dref=Display_Ref[bus /dev/i2c-12], fd=3, dpath=bus /dev/i2c-12 (i2c_close_bus ) Starting. fd=3 - /dev/i2c-12, callopts=CALLOPT_NONE (i2c_close_bus ) Done. fd=3, filename=(null), Returning: OK(0): success (ddc_close_display ) Done. dref=Display_Ref[bus /dev/i2c-12] Returning: OK(0): success (ddc_initial_checks_by_dref ) Done. dref = Display_Ref[bus /dev/i2c-12], returning true (ddc_initial_checks_by_dref ) Done. communication flags: DREF_DDC_COMMUNICATION_CHECKED, DREF_DDC_COMMUNICATION_WORKING, DREF_DDC_IS_MONITOR_CHECKED, DREF_DDC_IS_MONITOR (ddc_initial_checks_by_dref ) Starting. dref=Display_Ref[bus /dev/i2c-13], communication flags: DREF_DDC_IS_MONITOR_CHECKED, DREF_DDC_IS_MONITOR (ddc_open_display ) Opening display Display_Ref[bus /dev/i2c-13], callopts=CALLOPT_ERR_MSG (i2c_open_bus ) Starting. busno=13, callopts=0x80 (i2c_open_bus ) Done. busno=13, Returning file descriptor: 3 (i2c_set_addr ) fd=3, addr=0x37, filename=/dev/i2c-13, i2c_force_slave_addr_flag=false, callopts=CALLOPT_ERR_MSG (i2c_set_addr ) addr = 0x37. filename = /dev/i2c-13, Returning OK(0): success (i2c_set_addr ) Done. Returning: OK(0): success (ddc_open_display ) Done. Returning: OK(0): success, *dh_loc=Display_Handle[i2c: fd=3, busno=13] (ddc_initial_checks_by_dh ) Starting. dh=Display_Handle[i2c: fd=3, busno=13] (ddc_initial_checks_by_dh ) Starting. communication flags: DREF_DDC_IS_MONITOR_CHECKED, DREF_DDC_IS_MONITOR, DREF_OPEN (ddc_get_vcp_value ) Starting. Reading feature 0x00, dh=Display_Handle[i2c: fd=3, busno=13], dh->fd=3 (ddc_get_nontable_vcp_value ) Starting. dh=Display_Handle[i2c: fd=3, busno=13], Reading feature 0x00 (ddc_write_read_with_retry ) Starting. dh=Display_Handle[i2c: fd=3, busno=13], all_zero_response_ok=false (ddc_write_read ) Starting. dh=Display_Handle[i2c: fd=3, busno=13] (ddc_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=13], readbuf=0x5593ec781270, max_read_bytes=11 (ddc_i2c_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=13], readbuf=0x5593ec781270 (ddc_i2c_write_read_raw ) request_packet_ptr->raw_bytes: 6e 51 82 01 00 bc (check_deferred_sleep ) Sleeping for 49 milliseconds. deferred (invoke_i2c_writer ) fd=3, filename=/dev/i2c-13, slave_address=0x37, bytect=5, bytes_to_write=0x5593ec7817c1 -> 51 82 01 00 bc (i2c_fileio_writer ) Starting. fh=3, filename=/dev/i2c-13, slave_address=0x37, bytect=5, pbytes=0x5593ec7817c1 -> 51 82 01 00 bc (i2c_fileio_writer ) Done. Returning: OK(0): success (invoke_i2c_writer ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Sleeping for 50 milliseconds. Event_type: SE_WRITE_TO_READ (invoke_i2c_reader ) fd=3, filename=/dev/i2c-13, slave_address=0x37, bytect=11, read_bytewise=false, readbuf=0x5593ec781270 (i2c_fileio_reader ) Starting. fd=3, fn=/dev/i2c-13, bytect=11, slave_address=0x37, single_byte_reads=false (i2c_fileio_reader ) Returning: OK(0): success, readbuf: 6e 88 02 01 00 01 ff ff 00 00 b4 (invoke_i2c_reader ) Bytes read: 6e 88 02 01 00 01 ff ff 00 00 b4 (invoke_i2c_reader ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Response bytes: 6e 88 02 01 00 01 ff ff 00 00 b4 (ddc_i2c_write_read_raw ) Done. psc=OK(0): success (ddc_write_read_raw ) Done. Returning: OK(0): success (ddc_write_read_raw ) readbuf: 6e880201 0001ffff 0000b4 (create_ddc_typed_response_packet) Starting. i2c_response_bytes=6e 88 02 01 00 01 ff ff 00 00 b4 00 00 00 00 00 00 00 00 00 (create_ddc_response_packet ) Starting. i2c_response_bytes=6e 88 02 01 00 01 ff ff 00 00 b4 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Starting. i2c_response_bytes=6e 88 02 01 00 01 ff ff 00 00 b4 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec781920 (create_ddc_response_packet ) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec781920 (create_ddc_typed_response_packet) Create_ddc_response_packet() returned OK(0): success, *packet_ptr_addr=0x5593ec781920 (interpret_vcp_feature_response_std) Starting. requested_vcp_code: 0x00, vcp_data_bytes: 02010001 ffff0000 (interpret_vcp_feature_response_std) Unsupported VCP Code: 0x00 (interpret_vcp_feature_response_std) Returning OK(0): success (create_ddc_typed_response_packet) Returning DDCRC_OK(0): success, *packet_ptr=0x5593ec781920 DDC_Packet dump. Addr: 0x5593ec781920, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec7934a0, parsed: 0x5593ec7932f0 Buffer at 0x5593ec7934a0, bytes addr=0x5593ec793310, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 01 00 01 ff ff 00 00 b4 on.......... VCP code: 0x00 valid_response: 1 supported_opcode: 0 max_value: 0 cur_value: 0 mh: 0x00 ml: 0x00 sh: 0x00 sl: 0x00 (ddc_write_read ) create_ddc_typed_response_packet() returned DDCRC_OK(0): success, *response_packet_ptr_loc=0x5593ec781920 (ddc_write_read ) Done. Returning: NULL, *response_packet_ptr_loc -> DDC_Packet dump. Addr: 0x5593ec781920, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec7934a0, parsed: 0x5593ec7932f0 Buffer at 0x5593ec7934a0, bytes addr=0x5593ec793310, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 01 00 01 ff ff 00 00 b4 on.......... VCP code: 0x00 valid_response: 1 supported_opcode: 0 max_value: 0 cur_value: 0 mh: 0x00 ml: 0x00 sh: 0x00 sl: 0x00 (ddc_write_read_with_retry ) Done. Total Tries (tryctr): 1. Returning: NULL (ddc_get_nontable_vcp_value ) Done. Error reading feature x00. Returning exception: Error_Info[DDCRC_REPORTED_UNSUPPORTED in ddc_get_nontable_vcp_value] (ddc_get_vcp_value ) Done. Returning: Error_Info[DDCRC_REPORTED_UNSUPPORTED in ddc_get_nontable_vcp_value] (ddc_initial_checks_by_dh ) ddc_get_vcp_value() for feature 0x00 returned: Error_Info[DDCRC_REPORTED_UNSUPPORTED in ddc_get_nontable_vcp_value], pvalrec=(nil) (ddc_get_vcp_value ) Starting. Reading feature 0xdf, dh=Display_Handle[i2c: fd=3, busno=13], dh->fd=3 (ddc_get_nontable_vcp_value ) Starting. dh=Display_Handle[i2c: fd=3, busno=13], Reading feature 0xdf (ddc_write_read_with_retry ) Starting. dh=Display_Handle[i2c: fd=3, busno=13], all_zero_response_ok=false (ddc_write_read ) Starting. dh=Display_Handle[i2c: fd=3, busno=13] (ddc_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=13], readbuf=0x5593ec7935d0, max_read_bytes=11 (ddc_i2c_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=13], readbuf=0x5593ec7935d0 (ddc_i2c_write_read_raw ) request_packet_ptr->raw_bytes: 6e 51 82 01 df 63 (invoke_i2c_writer ) fd=3, filename=/dev/i2c-13, slave_address=0x37, bytect=5, bytes_to_write=0x5593ec781b21 -> 51 82 01 df 63 (i2c_fileio_writer ) Starting. fh=3, filename=/dev/i2c-13, slave_address=0x37, bytect=5, pbytes=0x5593ec781b21 -> 51 82 01 df 63 (i2c_fileio_writer ) Done. Returning: OK(0): success (invoke_i2c_writer ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Sleeping for 50 milliseconds. Event_type: SE_WRITE_TO_READ (invoke_i2c_reader ) fd=3, filename=/dev/i2c-13, slave_address=0x37, bytect=11, read_bytewise=false, readbuf=0x5593ec7935d0 (i2c_fileio_reader ) Starting. fd=3, fn=/dev/i2c-13, bytect=11, slave_address=0x37, single_byte_reads=false (i2c_fileio_reader ) Returning: OK(0): success, readbuf: 6e 88 02 00 df 01 00 ff 02 01 96 (invoke_i2c_reader ) Bytes read: 6e 88 02 00 df 01 00 ff 02 01 96 (invoke_i2c_reader ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Response bytes: 6e 88 02 00 df 01 00 ff 02 01 96 (ddc_i2c_write_read_raw ) Done. psc=OK(0): success (ddc_write_read_raw ) Done. Returning: OK(0): success (ddc_write_read_raw ) readbuf: 6e880200 df0100ff 020196 (create_ddc_typed_response_packet) Starting. i2c_response_bytes=6e 88 02 00 df 01 00 ff 02 01 96 00 00 00 00 00 00 00 00 00 (create_ddc_response_packet ) Starting. i2c_response_bytes=6e 88 02 00 df 01 00 ff 02 01 96 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Starting. i2c_response_bytes=6e 88 02 00 df 01 00 ff 02 01 96 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec792b60 (create_ddc_response_packet ) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec792b60 (create_ddc_typed_response_packet) Create_ddc_response_packet() returned OK(0): success, *packet_ptr_addr=0x5593ec792b60 (interpret_vcp_feature_response_std) Starting. requested_vcp_code: 0xdf, vcp_data_bytes: 0200df01 00ff0201 (interpret_vcp_feature_response_std) vcp_opcode = 0xdf, vcp_type_code=0x01, max_val=255 (0x00ff), cur_val=513 (0x0201) (interpret_vcp_feature_response_std) valid_response=true (interpret_vcp_feature_response_std) Returning OK(0): success (create_ddc_typed_response_packet) Returning DDCRC_OK(0): success, *packet_ptr=0x5593ec792b60 DDC_Packet dump. Addr: 0x5593ec792b60, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec781740, parsed: 0x5593ec7816e0 Buffer at 0x5593ec781740, bytes addr=0x5593ec7810d0, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 00 df 01 00 ff 02 01 96 on.......... VCP code: 0xdf valid_response: 1 supported_opcode: 1 max_value: 255 cur_value: 513 mh: 0x00 ml: 0xff sh: 0x02 sl: 0x01 (ddc_write_read ) create_ddc_typed_response_packet() returned DDCRC_OK(0): success, *response_packet_ptr_loc=0x5593ec792b60 (ddc_write_read ) Done. Returning: NULL, *response_packet_ptr_loc -> DDC_Packet dump. Addr: 0x5593ec792b60, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec781740, parsed: 0x5593ec7816e0 Buffer at 0x5593ec781740, bytes addr=0x5593ec7810d0, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 00 df 01 00 ff 02 01 96 on.......... VCP code: 0xdf valid_response: 1 supported_opcode: 1 max_value: 255 cur_value: 513 mh: 0x00 ml: 0xff sh: 0x02 sl: 0x01 (ddc_write_read_with_retry ) Done. Total Tries (tryctr): 1. Returning: NULL (ddc_get_nontable_vcp_value ) Done. Success reading feature xdf. *ppinterpreted_code=0x5593ec7937a0 (ddc_get_nontable_vcp_value ) mh=0x00, ml=0xff, sh=0x02, sl=0x01, max value=255, cur value=513 (ddc_get_vcp_value ) Done. Returning: NULL, *valrec -> Single_Vcp_Value at 0x5593ec7816e0: Opcode: 0xdf Value type: DDCA_NON_TABLE_VCP_VALUE (0x01) max_val: 255 - 0x00ff cur_val: 513 - 0x0201 mh: 0x00 ml: 0xff sh: 0x02 sl: 0x01 (ddc_initial_checks_by_dh ) Done. dh=Display_Handle[i2c: fd=3, busno=13], Returning: true (ddc_initial_checks_by_dh ) Done. communication flags: DREF_DDC_COMMUNICATION_CHECKED, DREF_DDC_COMMUNICATION_WORKING, DREF_DDC_IS_MONITOR_CHECKED, DREF_DDC_IS_MONITOR, DREF_OPEN (ddc_close_display ) Starting. dh=Display_Handle[i2c: fd=3, busno=13], dref=Display_Ref[bus /dev/i2c-13], fd=3, dpath=bus /dev/i2c-13 (i2c_close_bus ) Starting. fd=3 - /dev/i2c-13, callopts=CALLOPT_NONE (i2c_close_bus ) Done. fd=3, filename=(null), Returning: OK(0): success (ddc_close_display ) Done. dref=Display_Ref[bus /dev/i2c-13] Returning: OK(0): success (ddc_initial_checks_by_dref ) Done. dref = Display_Ref[bus /dev/i2c-13], returning true (ddc_initial_checks_by_dref ) Done. communication flags: DREF_DDC_COMMUNICATION_CHECKED, DREF_DDC_COMMUNICATION_WORKING, DREF_DDC_IS_MONITOR_CHECKED, DREF_DDC_IS_MONITOR (non_async_scan ) Done (ddc_detect_all_displays ) -- check_phantom_displays=true (filter_phantom_displays ) Starting. all_displays->len = 4 (filter_phantom_displays ) 3 valid displays, 1 invalid displays (is_phantom_display ) Starting. invalid_dref=Display_Ref[bus /dev/i2c-10], valid_dref=Display_Ref[bus /dev/i2c-11] (is_phantom_display ) Done. Returning: false (is_phantom_display ) Starting. invalid_dref=Display_Ref[bus /dev/i2c-10], valid_dref=Display_Ref[bus /dev/i2c-12] (is_phantom_display ) EDIDs match /sys/bus/i2c/devices/i2c-10/device/ -> /sys/devices/pci0000:00/0000:00:01.2/0000:20:00.0/0000:21:01.0/0000:23:00.0/drm/card0/card0-DP-3 /sys/devices/pci0000:00/0000:00:01.2/0000:20:00.0/0000:21:01.0/0000:23:00.0/drm/card0/card0-DP-3/status/: Not Found /sys/devices/pci0000:00/0000:00:01.2/0000:20:00.0/0000:21:01.0/0000:23:00.0/drm/card0/card0-DP-3/enabled/: Not Found Error opening "/sys/devices/pci0000:00/0000:00:01.2/0000:20:00.0/0000:21:01.0/0000:23:00.0/drm/card0/card0-DP-3/edid/", Not a directory /sys/devices/pci0000:00/0000:00:01.2/0000:20:00.0/0000:21:01.0/0000:23:00.0/drm/card0/card0-DP-3/edid/: Not Found (is_phantom_display ) Done. Returning: false (is_phantom_display ) Starting. invalid_dref=Display_Ref[bus /dev/i2c-10], valid_dref=Display_Ref[bus /dev/i2c-13] (is_phantom_display ) Done. Returning: false (filter_phantom_displays ) Done (ddc_detect_all_displays ) Done. Detected 3 valid displays (ddc_report_display_by_dref ) Starting. dref=Display_Ref[bus /dev/i2c-10], communication flags: DREF_DDC_COMMUNICATION_CHECKED, DREF_DDC_IS_MONITOR_CHECKED, DREF_DDC_IS_MONITOR Invalid display I2C bus: /dev/i2c-10 I2C address 0x50 (EDID) responsive: true Is eDP device: false Is LVDS device: false /sys/bus/i2c/devices/i2c-10/name: AMDGPU DM aux hw bus 2 EDID synopsis: Mfg id: ACR Model: CB282K Product code: 1887 Serial number: Binary serial number: 18983421 (0x0121a9fd) Manufacture year: 2020, Week: 12 DDC communication failed Is DDC/CI enabled in the monitor's on-screen display? (ddc_report_display_by_dref ) Done (ddc_report_display_by_dref ) Starting. dref=Display_Ref[bus /dev/i2c-11], communication flags: DREF_DDC_COMMUNICATION_CHECKED, DREF_DDC_COMMUNICATION_WORKING, DREF_DDC_IS_MONITOR_CHECKED, DREF_DDC_IS_MONITOR Display 1 I2C bus: /dev/i2c-11 I2C address 0x50 (EDID) responsive: true Is eDP device: false Is LVDS device: false /sys/bus/i2c/devices/i2c-11/name: DPMST EDID synopsis: Mfg id: ACR Model: CB282K Product code: 1887 Serial number: Binary serial number: 18983413 (0x0121a9f5) Manufacture year: 2020, Week: 12 VCP version: 2.1 (ddc_open_display ) Opening display Display_Ref[bus /dev/i2c-11], callopts=CALLOPT_ERR_MSG (i2c_open_bus ) Starting. busno=11, callopts=0x80 (i2c_open_bus ) Done. busno=11, Returning file descriptor: 3 (i2c_set_addr ) fd=3, addr=0x37, filename=/dev/i2c-11, i2c_force_slave_addr_flag=false, callopts=CALLOPT_ERR_MSG (i2c_set_addr ) addr = 0x37. filename = /dev/i2c-11, Returning OK(0): success (i2c_set_addr ) Done. Returning: OK(0): success (ddc_open_display ) Done. Returning: OK(0): success, *dh_loc=Display_Handle[i2c: fd=3, busno=11] (ddc_get_vcp_value ) Starting. Reading feature 0xc8, dh=Display_Handle[i2c: fd=3, busno=11], dh->fd=3 (ddc_get_nontable_vcp_value ) Starting. dh=Display_Handle[i2c: fd=3, busno=11], Reading feature 0xc8 (ddc_write_read_with_retry ) Starting. dh=Display_Handle[i2c: fd=3, busno=11], all_zero_response_ok=false (ddc_write_read ) Starting. dh=Display_Handle[i2c: fd=3, busno=11] (ddc_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=11], readbuf=0x5593ec781600, max_read_bytes=11 (ddc_i2c_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=11], readbuf=0x5593ec781600 (ddc_i2c_write_read_raw ) request_packet_ptr->raw_bytes: 6e 51 82 01 c8 74 (check_deferred_sleep ) Sleeping for 49 milliseconds. deferred (invoke_i2c_writer ) fd=3, filename=/dev/i2c-11, slave_address=0x37, bytect=5, bytes_to_write=0x5593ec781971 -> 51 82 01 c8 74 (i2c_fileio_writer ) Starting. fh=3, filename=/dev/i2c-11, slave_address=0x37, bytect=5, pbytes=0x5593ec781971 -> 51 82 01 c8 74 (i2c_fileio_writer ) Done. Returning: OK(0): success (invoke_i2c_writer ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Sleeping for 50 milliseconds. Event_type: SE_WRITE_TO_READ (invoke_i2c_reader ) fd=3, filename=/dev/i2c-11, slave_address=0x37, bytect=11, read_bytewise=false, readbuf=0x5593ec781600 (i2c_fileio_reader ) Starting. fd=3, fn=/dev/i2c-11, bytect=11, slave_address=0x37, single_byte_reads=false (i2c_fileio_reader ) Returning: OK(0): success, readbuf: 6e 88 02 00 c8 01 ff 16 00 05 91 (invoke_i2c_reader ) Bytes read: 6e 88 02 00 c8 01 ff 16 00 05 91 (invoke_i2c_reader ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Response bytes: 6e 88 02 00 c8 01 ff 16 00 05 91 (ddc_i2c_write_read_raw ) Done. psc=OK(0): success (ddc_write_read_raw ) Done. Returning: OK(0): success (ddc_write_read_raw ) readbuf: 6e880200 c801ff16 000591 (create_ddc_typed_response_packet) Starting. i2c_response_bytes=6e 88 02 00 c8 01 ff 16 00 05 91 00 00 00 00 00 00 00 00 00 (create_ddc_response_packet ) Starting. i2c_response_bytes=6e 88 02 00 c8 01 ff 16 00 05 91 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Starting. i2c_response_bytes=6e 88 02 00 c8 01 ff 16 00 05 91 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec793580 (create_ddc_response_packet ) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec793580 (create_ddc_typed_response_packet) Create_ddc_response_packet() returned OK(0): success, *packet_ptr_addr=0x5593ec793580 (interpret_vcp_feature_response_std) Starting. requested_vcp_code: 0xc8, vcp_data_bytes: 0200c801 ff160005 (interpret_vcp_feature_response_std) vcp_opcode = 0xc8, vcp_type_code=0x01, max_val=65302 (0xff16), cur_val=5 (0x0005) (interpret_vcp_feature_response_std) valid_response=true (interpret_vcp_feature_response_std) Returning OK(0): success (create_ddc_typed_response_packet) Returning DDCRC_OK(0): success, *packet_ptr=0x5593ec793580 DDC_Packet dump. Addr: 0x5593ec793580, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec7934a0, parsed: 0x5593ec7946b0 Buffer at 0x5593ec7934a0, bytes addr=0x5593ec7946d0, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 00 c8 01 ff 16 00 05 91 on.......... VCP code: 0xc8 valid_response: 1 supported_opcode: 1 max_value: 65302 cur_value: 5 mh: 0xff ml: 0x16 sh: 0x00 sl: 0x05 (ddc_write_read ) create_ddc_typed_response_packet() returned DDCRC_OK(0): success, *response_packet_ptr_loc=0x5593ec793580 (ddc_write_read ) Done. Returning: NULL, *response_packet_ptr_loc -> DDC_Packet dump. Addr: 0x5593ec793580, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec7934a0, parsed: 0x5593ec7946b0 Buffer at 0x5593ec7934a0, bytes addr=0x5593ec7946d0, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 00 c8 01 ff 16 00 05 91 on.......... VCP code: 0xc8 valid_response: 1 supported_opcode: 1 max_value: 65302 cur_value: 5 mh: 0xff ml: 0x16 sh: 0x00 sl: 0x05 (ddc_write_read_with_retry ) Done. Total Tries (tryctr): 1. Returning: NULL (ddc_get_nontable_vcp_value ) Done. Success reading feature xc8. *ppinterpreted_code=0x5593ec7947c0 (ddc_get_nontable_vcp_value ) mh=0xff, ml=0x16, sh=0x00, sl=0x05, max value=65302, cur value=5 (ddc_get_vcp_value ) Done. Returning: NULL, *valrec -> Single_Vcp_Value at 0x5593ec7946b0: Opcode: 0xc8 Value type: DDCA_NON_TABLE_VCP_VALUE (0x01) max_val: 65302 - 0xff16 cur_val: 5 - 0x0005 mh: 0xff ml: 0x16 sh: 0x00 sl: 0x05 Controller mfg: Mstar (ddc_get_vcp_value ) Starting. Reading feature 0xc9, dh=Display_Handle[i2c: fd=3, busno=11], dh->fd=3 (ddc_get_nontable_vcp_value ) Starting. dh=Display_Handle[i2c: fd=3, busno=11], Reading feature 0xc9 (ddc_write_read_with_retry ) Starting. dh=Display_Handle[i2c: fd=3, busno=11], all_zero_response_ok=false (ddc_write_read ) Starting. dh=Display_Handle[i2c: fd=3, busno=11] (ddc_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=11], readbuf=0x5593ec794980, max_read_bytes=11 (ddc_i2c_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=11], readbuf=0x5593ec794980 (ddc_i2c_write_read_raw ) request_packet_ptr->raw_bytes: 6e 51 82 01 c9 75 (invoke_i2c_writer ) fd=3, filename=/dev/i2c-11, slave_address=0x37, bytect=5, bytes_to_write=0x5593ec7946b1 -> 51 82 01 c9 75 (i2c_fileio_writer ) Starting. fh=3, filename=/dev/i2c-11, slave_address=0x37, bytect=5, pbytes=0x5593ec7946b1 -> 51 82 01 c9 75 (i2c_fileio_writer ) Done. Returning: OK(0): success (invoke_i2c_writer ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Sleeping for 50 milliseconds. Event_type: SE_WRITE_TO_READ (invoke_i2c_reader ) fd=3, filename=/dev/i2c-11, slave_address=0x37, bytect=11, read_bytewise=false, readbuf=0x5593ec794980 (i2c_fileio_reader ) Starting. fd=3, fn=/dev/i2c-11, bytect=11, slave_address=0x37, single_byte_reads=false (i2c_fileio_reader ) Returning: OK(0): success, readbuf: 6e 88 02 00 c9 01 ff ff 00 00 7c (invoke_i2c_reader ) Bytes read: 6e 88 02 00 c9 01 ff ff 00 00 7c (invoke_i2c_reader ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Response bytes: 6e 88 02 00 c9 01 ff ff 00 00 7c (ddc_i2c_write_read_raw ) Done. psc=OK(0): success (ddc_write_read_raw ) Done. Returning: OK(0): success (ddc_write_read_raw ) readbuf: 6e880200 c901ffff 00007c (create_ddc_typed_response_packet) Starting. i2c_response_bytes=6e 88 02 00 c9 01 ff ff 00 00 7c 00 00 00 00 00 00 00 00 00 (create_ddc_response_packet ) Starting. i2c_response_bytes=6e 88 02 00 c9 01 ff ff 00 00 7c 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Starting. i2c_response_bytes=6e 88 02 00 c9 01 ff ff 00 00 7c 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec794a10 (create_ddc_response_packet ) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec794a10 (create_ddc_typed_response_packet) Create_ddc_response_packet() returned OK(0): success, *packet_ptr_addr=0x5593ec794a10 (interpret_vcp_feature_response_std) Starting. requested_vcp_code: 0xc9, vcp_data_bytes: 0200c901 ffff0000 (interpret_vcp_feature_response_std) vcp_opcode = 0xc9, vcp_type_code=0x01, max_val=65535 (0xffff), cur_val=0 (0x0000) (interpret_vcp_feature_response_std) valid_response=true (interpret_vcp_feature_response_std) Returning OK(0): success (create_ddc_typed_response_packet) Returning DDCRC_OK(0): success, *packet_ptr=0x5593ec794a10 DDC_Packet dump. Addr: 0x5593ec794a10, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec75d850, parsed: 0x5593ec7937a0 Buffer at 0x5593ec75d850, bytes addr=0x5593ec780660, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 00 c9 01 ff ff 00 00 7c on.........| VCP code: 0xc9 valid_response: 1 supported_opcode: 1 max_value: 65535 cur_value: 0 mh: 0xff ml: 0xff sh: 0x00 sl: 0x00 (ddc_write_read ) create_ddc_typed_response_packet() returned DDCRC_OK(0): success, *response_packet_ptr_loc=0x5593ec794a10 (ddc_write_read ) Done. Returning: NULL, *response_packet_ptr_loc -> DDC_Packet dump. Addr: 0x5593ec794a10, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec75d850, parsed: 0x5593ec7937a0 Buffer at 0x5593ec75d850, bytes addr=0x5593ec780660, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 00 c9 01 ff ff 00 00 7c on.........| VCP code: 0xc9 valid_response: 1 supported_opcode: 1 max_value: 65535 cur_value: 0 mh: 0xff ml: 0xff sh: 0x00 sl: 0x00 (ddc_write_read_with_retry ) Done. Total Tries (tryctr): 1. Returning: NULL (ddc_get_nontable_vcp_value ) Done. Success reading feature xc9. *ppinterpreted_code=0x5593ec781d00 (ddc_get_nontable_vcp_value ) mh=0xff, ml=0xff, sh=0x00, sl=0x00, max value=65535, cur value=0 (ddc_get_vcp_value ) Done. Returning: NULL, *valrec -> Single_Vcp_Value at 0x5593ec7937a0: Opcode: 0xc9 Value type: DDCA_NON_TABLE_VCP_VALUE (0x01) max_val: 65535 - 0xffff cur_val: 0 - 0x0000 mh: 0xff ml: 0xff sh: 0x00 sl: 0x00 Firmware version: 0.0 (ddc_close_display ) Starting. dh=Display_Handle[i2c: fd=3, busno=11], dref=Display_Ref[bus /dev/i2c-11], fd=3, dpath=bus /dev/i2c-11 (i2c_close_bus ) Starting. fd=3 - /dev/i2c-11, callopts=CALLOPT_NONE (i2c_close_bus ) Done. fd=3, filename=(null), Returning: OK(0): success (ddc_close_display ) Done. dref=Display_Ref[bus /dev/i2c-11] Returning: OK(0): success Monitor returns DDC Null Response for unsupported features: false (ddc_report_display_by_dref ) Done (ddc_report_display_by_dref ) Starting. dref=Display_Ref[bus /dev/i2c-12], communication flags: DREF_DDC_COMMUNICATION_CHECKED, DREF_DDC_COMMUNICATION_WORKING, DREF_DDC_IS_MONITOR_CHECKED, DREF_DDC_IS_MONITOR Display 2 I2C bus: /dev/i2c-12 I2C address 0x50 (EDID) responsive: true Is eDP device: false Is LVDS device: false /sys/bus/i2c/devices/i2c-12/name: DPMST EDID synopsis: Mfg id: ACR Model: CB282K Product code: 1887 Serial number: Binary serial number: 18983421 (0x0121a9fd) Manufacture year: 2020, Week: 12 VCP version: 2.1 (ddc_open_display ) Opening display Display_Ref[bus /dev/i2c-12], callopts=CALLOPT_ERR_MSG (i2c_open_bus ) Starting. busno=12, callopts=0x80 (i2c_open_bus ) Done. busno=12, Returning file descriptor: 3 (i2c_set_addr ) fd=3, addr=0x37, filename=/dev/i2c-12, i2c_force_slave_addr_flag=false, callopts=CALLOPT_ERR_MSG (i2c_set_addr ) addr = 0x37. filename = /dev/i2c-12, Returning OK(0): success (i2c_set_addr ) Done. Returning: OK(0): success (ddc_open_display ) Done. Returning: OK(0): success, *dh_loc=Display_Handle[i2c: fd=3, busno=12] (ddc_get_vcp_value ) Starting. Reading feature 0xc8, dh=Display_Handle[i2c: fd=3, busno=12], dh->fd=3 (ddc_get_nontable_vcp_value ) Starting. dh=Display_Handle[i2c: fd=3, busno=12], Reading feature 0xc8 (ddc_write_read_with_retry ) Starting. dh=Display_Handle[i2c: fd=3, busno=12], all_zero_response_ok=false (ddc_write_read ) Starting. dh=Display_Handle[i2c: fd=3, busno=12] (ddc_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=12], readbuf=0x5593ec792aa0, max_read_bytes=11 (ddc_i2c_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=12], readbuf=0x5593ec792aa0 (ddc_i2c_write_read_raw ) request_packet_ptr->raw_bytes: 6e 51 82 01 c8 74 (check_deferred_sleep ) Sleeping for 49 milliseconds. deferred (invoke_i2c_writer ) fd=3, filename=/dev/i2c-12, slave_address=0x37, bytect=5, bytes_to_write=0x5593ec7918e1 -> 51 82 01 c8 74 (i2c_fileio_writer ) Starting. fh=3, filename=/dev/i2c-12, slave_address=0x37, bytect=5, pbytes=0x5593ec7918e1 -> 51 82 01 c8 74 (i2c_fileio_writer ) Done. Returning: OK(0): success (invoke_i2c_writer ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Sleeping for 50 milliseconds. Event_type: SE_WRITE_TO_READ (invoke_i2c_reader ) fd=3, filename=/dev/i2c-12, slave_address=0x37, bytect=11, read_bytewise=false, readbuf=0x5593ec792aa0 (i2c_fileio_reader ) Starting. fd=3, fn=/dev/i2c-12, bytect=11, slave_address=0x37, single_byte_reads=false (i2c_fileio_reader ) Returning: OK(0): success, readbuf: 6e 88 02 00 c8 01 ff 16 00 05 91 (invoke_i2c_reader ) Bytes read: 6e 88 02 00 c8 01 ff 16 00 05 91 (invoke_i2c_reader ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Response bytes: 6e 88 02 00 c8 01 ff 16 00 05 91 (ddc_i2c_write_read_raw ) Done. psc=OK(0): success (ddc_write_read_raw ) Done. Returning: OK(0): success (ddc_write_read_raw ) readbuf: 6e880200 c801ff16 000591 (create_ddc_typed_response_packet) Starting. i2c_response_bytes=6e 88 02 00 c8 01 ff 16 00 05 91 00 00 00 00 00 00 00 00 00 (create_ddc_response_packet ) Starting. i2c_response_bytes=6e 88 02 00 c8 01 ff 16 00 05 91 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Starting. i2c_response_bytes=6e 88 02 00 c8 01 ff 16 00 05 91 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec7946d0 (create_ddc_response_packet ) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec7946d0 (create_ddc_typed_response_packet) Create_ddc_response_packet() returned OK(0): success, *packet_ptr_addr=0x5593ec7946d0 (interpret_vcp_feature_response_std) Starting. requested_vcp_code: 0xc8, vcp_data_bytes: 0200c801 ff160005 (interpret_vcp_feature_response_std) vcp_opcode = 0xc8, vcp_type_code=0x01, max_val=65302 (0xff16), cur_val=5 (0x0005) (interpret_vcp_feature_response_std) valid_response=true (interpret_vcp_feature_response_std) Returning OK(0): success (create_ddc_typed_response_packet) Returning DDCRC_OK(0): success, *packet_ptr=0x5593ec7946d0 DDC_Packet dump. Addr: 0x5593ec7946d0, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec794780, parsed: 0x5593ec781d70 Buffer at 0x5593ec794780, bytes addr=0x5593ec7810d0, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 00 c8 01 ff 16 00 05 91 on.......... VCP code: 0xc8 valid_response: 1 supported_opcode: 1 max_value: 65302 cur_value: 5 mh: 0xff ml: 0x16 sh: 0x00 sl: 0x05 (ddc_write_read ) create_ddc_typed_response_packet() returned DDCRC_OK(0): success, *response_packet_ptr_loc=0x5593ec7946d0 (ddc_write_read ) Done. Returning: NULL, *response_packet_ptr_loc -> DDC_Packet dump. Addr: 0x5593ec7946d0, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec794780, parsed: 0x5593ec781d70 Buffer at 0x5593ec794780, bytes addr=0x5593ec7810d0, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 00 c8 01 ff 16 00 05 91 on.......... VCP code: 0xc8 valid_response: 1 supported_opcode: 1 max_value: 65302 cur_value: 5 mh: 0xff ml: 0x16 sh: 0x00 sl: 0x05 (ddc_write_read_with_retry ) Done. Total Tries (tryctr): 1. Returning: NULL (ddc_get_nontable_vcp_value ) Done. Success reading feature xc8. *ppinterpreted_code=0x5593ec794870 (ddc_get_nontable_vcp_value ) mh=0xff, ml=0x16, sh=0x00, sl=0x05, max value=65302, cur value=5 (ddc_get_vcp_value ) Done. Returning: NULL, *valrec -> Single_Vcp_Value at 0x5593ec781d70: Opcode: 0xc8 Value type: DDCA_NON_TABLE_VCP_VALUE (0x01) max_val: 65302 - 0xff16 cur_val: 5 - 0x0005 mh: 0xff ml: 0x16 sh: 0x00 sl: 0x05 Controller mfg: Mstar (ddc_get_vcp_value ) Starting. Reading feature 0xc9, dh=Display_Handle[i2c: fd=3, busno=12], dh->fd=3 (ddc_get_nontable_vcp_value ) Starting. dh=Display_Handle[i2c: fd=3, busno=12], Reading feature 0xc9 (ddc_write_read_with_retry ) Starting. dh=Display_Handle[i2c: fd=3, busno=12], all_zero_response_ok=false (ddc_write_read ) Starting. dh=Display_Handle[i2c: fd=3, busno=12] (ddc_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=12], readbuf=0x5593ec781d70, max_read_bytes=11 (ddc_i2c_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=12], readbuf=0x5593ec781d70 (ddc_i2c_write_read_raw ) request_packet_ptr->raw_bytes: 6e 51 82 01 c9 75 (invoke_i2c_writer ) fd=3, filename=/dev/i2c-12, slave_address=0x37, bytect=5, bytes_to_write=0x5593ec794bb1 -> 51 82 01 c9 75 (i2c_fileio_writer ) Starting. fh=3, filename=/dev/i2c-12, slave_address=0x37, bytect=5, pbytes=0x5593ec794bb1 -> 51 82 01 c9 75 (i2c_fileio_writer ) Done. Returning: OK(0): success (invoke_i2c_writer ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Sleeping for 50 milliseconds. Event_type: SE_WRITE_TO_READ (invoke_i2c_reader ) fd=3, filename=/dev/i2c-12, slave_address=0x37, bytect=11, read_bytewise=false, readbuf=0x5593ec781d70 (i2c_fileio_reader ) Starting. fd=3, fn=/dev/i2c-12, bytect=11, slave_address=0x37, single_byte_reads=false (i2c_fileio_reader ) Returning: OK(0): success, readbuf: 6e 88 02 00 c9 01 ff ff 00 00 7c (invoke_i2c_reader ) Bytes read: 6e 88 02 00 c9 01 ff ff 00 00 7c (invoke_i2c_reader ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Response bytes: 6e 88 02 00 c9 01 ff ff 00 00 7c (ddc_i2c_write_read_raw ) Done. psc=OK(0): success (ddc_write_read_raw ) Done. Returning: OK(0): success (ddc_write_read_raw ) readbuf: 6e880200 c901ffff 00007c (create_ddc_typed_response_packet) Starting. i2c_response_bytes=6e 88 02 00 c9 01 ff ff 00 00 7c 00 00 00 00 00 00 00 00 00 (create_ddc_response_packet ) Starting. i2c_response_bytes=6e 88 02 00 c9 01 ff ff 00 00 7c 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Starting. i2c_response_bytes=6e 88 02 00 c9 01 ff ff 00 00 7c 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec794bd0 (create_ddc_response_packet ) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec794bd0 (create_ddc_typed_response_packet) Create_ddc_response_packet() returned OK(0): success, *packet_ptr_addr=0x5593ec794bd0 (interpret_vcp_feature_response_std) Starting. requested_vcp_code: 0xc9, vcp_data_bytes: 0200c901 ffff0000 (interpret_vcp_feature_response_std) vcp_opcode = 0xc9, vcp_type_code=0x01, max_val=65535 (0xffff), cur_val=0 (0x0000) (interpret_vcp_feature_response_std) valid_response=true (interpret_vcp_feature_response_std) Returning OK(0): success (create_ddc_typed_response_packet) Returning DDCRC_OK(0): success, *packet_ptr=0x5593ec794bd0 DDC_Packet dump. Addr: 0x5593ec794bd0, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec794ac0, parsed: 0x5593ec794b40 Buffer at 0x5593ec794ac0, bytes addr=0x5593ec781d90, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 00 c9 01 ff ff 00 00 7c on.........| VCP code: 0xc9 valid_response: 1 supported_opcode: 1 max_value: 65535 cur_value: 0 mh: 0xff ml: 0xff sh: 0x00 sl: 0x00 (ddc_write_read ) create_ddc_typed_response_packet() returned DDCRC_OK(0): success, *response_packet_ptr_loc=0x5593ec794bd0 (ddc_write_read ) Done. Returning: NULL, *response_packet_ptr_loc -> DDC_Packet dump. Addr: 0x5593ec794bd0, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec794ac0, parsed: 0x5593ec794b40 Buffer at 0x5593ec794ac0, bytes addr=0x5593ec781d90, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 00 c9 01 ff ff 00 00 7c on.........| VCP code: 0xc9 valid_response: 1 supported_opcode: 1 max_value: 65535 cur_value: 0 mh: 0xff ml: 0xff sh: 0x00 sl: 0x00 (ddc_write_read_with_retry ) Done. Total Tries (tryctr): 1. Returning: NULL (ddc_get_nontable_vcp_value ) Done. Success reading feature xc9. *ppinterpreted_code=0x5593ec7937a0 (ddc_get_nontable_vcp_value ) mh=0xff, ml=0xff, sh=0x00, sl=0x00, max value=65535, cur value=0 (ddc_get_vcp_value ) Done. Returning: NULL, *valrec -> Single_Vcp_Value at 0x5593ec794b40: Opcode: 0xc9 Value type: DDCA_NON_TABLE_VCP_VALUE (0x01) max_val: 65535 - 0xffff cur_val: 0 - 0x0000 mh: 0xff ml: 0xff sh: 0x00 sl: 0x00 Firmware version: 0.0 (ddc_close_display ) Starting. dh=Display_Handle[i2c: fd=3, busno=12], dref=Display_Ref[bus /dev/i2c-12], fd=3, dpath=bus /dev/i2c-12 (i2c_close_bus ) Starting. fd=3 - /dev/i2c-12, callopts=CALLOPT_NONE (i2c_close_bus ) Done. fd=3, filename=(null), Returning: OK(0): success (ddc_close_display ) Done. dref=Display_Ref[bus /dev/i2c-12] Returning: OK(0): success Monitor returns DDC Null Response for unsupported features: false (ddc_report_display_by_dref ) Done (ddc_report_display_by_dref ) Starting. dref=Display_Ref[bus /dev/i2c-13], communication flags: DREF_DDC_COMMUNICATION_CHECKED, DREF_DDC_COMMUNICATION_WORKING, DREF_DDC_IS_MONITOR_CHECKED, DREF_DDC_IS_MONITOR Display 3 I2C bus: /dev/i2c-13 I2C address 0x50 (EDID) responsive: true Is eDP device: false Is LVDS device: false /sys/bus/i2c/devices/i2c-13/name: DPMST EDID synopsis: Mfg id: ACR Model: CB282K Product code: 1887 Serial number: Binary serial number: 18983427 (0x0121aa03) Manufacture year: 2020, Week: 12 VCP version: 2.1 (ddc_open_display ) Opening display Display_Ref[bus /dev/i2c-13], callopts=CALLOPT_ERR_MSG (i2c_open_bus ) Starting. busno=13, callopts=0x80 (i2c_open_bus ) Done. busno=13, Returning file descriptor: 3 (i2c_set_addr ) fd=3, addr=0x37, filename=/dev/i2c-13, i2c_force_slave_addr_flag=false, callopts=CALLOPT_ERR_MSG (i2c_set_addr ) addr = 0x37. filename = /dev/i2c-13, Returning OK(0): success (i2c_set_addr ) Done. Returning: OK(0): success (ddc_open_display ) Done. Returning: OK(0): success, *dh_loc=Display_Handle[i2c: fd=3, busno=13] (ddc_get_vcp_value ) Starting. Reading feature 0xc8, dh=Display_Handle[i2c: fd=3, busno=13], dh->fd=3 (ddc_get_nontable_vcp_value ) Starting. dh=Display_Handle[i2c: fd=3, busno=13], Reading feature 0xc8 (ddc_write_read_with_retry ) Starting. dh=Display_Handle[i2c: fd=3, busno=13], all_zero_response_ok=false (ddc_write_read ) Starting. dh=Display_Handle[i2c: fd=3, busno=13] (ddc_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=13], readbuf=0x5593ec792aa0, max_read_bytes=11 (ddc_i2c_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=13], readbuf=0x5593ec792aa0 (ddc_i2c_write_read_raw ) request_packet_ptr->raw_bytes: 6e 51 82 01 c8 74 (check_deferred_sleep ) Sleeping for 49 milliseconds. deferred (invoke_i2c_writer ) fd=3, filename=/dev/i2c-13, slave_address=0x37, bytect=5, bytes_to_write=0x5593ec7918e1 -> 51 82 01 c8 74 (i2c_fileio_writer ) Starting. fh=3, filename=/dev/i2c-13, slave_address=0x37, bytect=5, pbytes=0x5593ec7918e1 -> 51 82 01 c8 74 (i2c_fileio_writer ) Done. Returning: OK(0): success (invoke_i2c_writer ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Sleeping for 50 milliseconds. Event_type: SE_WRITE_TO_READ (invoke_i2c_reader ) fd=3, filename=/dev/i2c-13, slave_address=0x37, bytect=11, read_bytewise=false, readbuf=0x5593ec792aa0 (i2c_fileio_reader ) Starting. fd=3, fn=/dev/i2c-13, bytect=11, slave_address=0x37, single_byte_reads=false (i2c_fileio_reader ) Returning: OK(0): success, readbuf: 6e 88 02 00 c8 01 ff 16 00 05 91 (invoke_i2c_reader ) Bytes read: 6e 88 02 00 c8 01 ff 16 00 05 91 (invoke_i2c_reader ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Response bytes: 6e 88 02 00 c8 01 ff 16 00 05 91 (ddc_i2c_write_read_raw ) Done. psc=OK(0): success (ddc_write_read_raw ) Done. Returning: OK(0): success (ddc_write_read_raw ) readbuf: 6e880200 c801ff16 000591 (create_ddc_typed_response_packet) Starting. i2c_response_bytes=6e 88 02 00 c8 01 ff 16 00 05 91 00 00 00 00 00 00 00 00 00 (create_ddc_response_packet ) Starting. i2c_response_bytes=6e 88 02 00 c8 01 ff 16 00 05 91 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Starting. i2c_response_bytes=6e 88 02 00 c8 01 ff 16 00 05 91 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec794bd0 (create_ddc_response_packet ) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec794bd0 (create_ddc_typed_response_packet) Create_ddc_response_packet() returned OK(0): success, *packet_ptr_addr=0x5593ec794bd0 (interpret_vcp_feature_response_std) Starting. requested_vcp_code: 0xc8, vcp_data_bytes: 0200c801 ff160005 (interpret_vcp_feature_response_std) vcp_opcode = 0xc8, vcp_type_code=0x01, max_val=65302 (0xff16), cur_val=5 (0x0005) (interpret_vcp_feature_response_std) valid_response=true (interpret_vcp_feature_response_std) Returning OK(0): success (create_ddc_typed_response_packet) Returning DDCRC_OK(0): success, *packet_ptr=0x5593ec794bd0 DDC_Packet dump. Addr: 0x5593ec794bd0, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec794c60, parsed: 0x5593ec781d00 Buffer at 0x5593ec794c60, bytes addr=0x5593ec781d20, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 00 c8 01 ff 16 00 05 91 on.......... VCP code: 0xc8 valid_response: 1 supported_opcode: 1 max_value: 65302 cur_value: 5 mh: 0xff ml: 0x16 sh: 0x00 sl: 0x05 (ddc_write_read ) create_ddc_typed_response_packet() returned DDCRC_OK(0): success, *response_packet_ptr_loc=0x5593ec794bd0 (ddc_write_read ) Done. Returning: NULL, *response_packet_ptr_loc -> DDC_Packet dump. Addr: 0x5593ec794bd0, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec794c60, parsed: 0x5593ec781d00 Buffer at 0x5593ec794c60, bytes addr=0x5593ec781d20, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 00 c8 01 ff 16 00 05 91 on.......... VCP code: 0xc8 valid_response: 1 supported_opcode: 1 max_value: 65302 cur_value: 5 mh: 0xff ml: 0x16 sh: 0x00 sl: 0x05 (ddc_write_read_with_retry ) Done. Total Tries (tryctr): 1. Returning: NULL (ddc_get_nontable_vcp_value ) Done. Success reading feature xc8. *ppinterpreted_code=0x5593ec794d50 (ddc_get_nontable_vcp_value ) mh=0xff, ml=0x16, sh=0x00, sl=0x05, max value=65302, cur value=5 (ddc_get_vcp_value ) Done. Returning: NULL, *valrec -> Single_Vcp_Value at 0x5593ec781d00: Opcode: 0xc8 Value type: DDCA_NON_TABLE_VCP_VALUE (0x01) max_val: 65302 - 0xff16 cur_val: 5 - 0x0005 mh: 0xff ml: 0x16 sh: 0x00 sl: 0x05 Controller mfg: Mstar (ddc_get_vcp_value ) Starting. Reading feature 0xc9, dh=Display_Handle[i2c: fd=3, busno=13], dh->fd=3 (ddc_get_nontable_vcp_value ) Starting. dh=Display_Handle[i2c: fd=3, busno=13], Reading feature 0xc9 (ddc_write_read_with_retry ) Starting. dh=Display_Handle[i2c: fd=3, busno=13], all_zero_response_ok=false (ddc_write_read ) Starting. dh=Display_Handle[i2c: fd=3, busno=13] (ddc_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=13], readbuf=0x5593ec781d00, max_read_bytes=11 (ddc_i2c_write_read_raw ) Starting. dh=Display_Handle[i2c: fd=3, busno=13], readbuf=0x5593ec781d00 (ddc_i2c_write_read_raw ) request_packet_ptr->raw_bytes: 6e 51 82 01 c9 75 (invoke_i2c_writer ) fd=3, filename=/dev/i2c-13, slave_address=0x37, bytect=5, bytes_to_write=0x5593ec794791 -> 51 82 01 c9 75 (i2c_fileio_writer ) Starting. fh=3, filename=/dev/i2c-13, slave_address=0x37, bytect=5, pbytes=0x5593ec794791 -> 51 82 01 c9 75 (i2c_fileio_writer ) Done. Returning: OK(0): success (invoke_i2c_writer ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Sleeping for 50 milliseconds. Event_type: SE_WRITE_TO_READ (invoke_i2c_reader ) fd=3, filename=/dev/i2c-13, slave_address=0x37, bytect=11, read_bytewise=false, readbuf=0x5593ec781d00 (i2c_fileio_reader ) Starting. fd=3, fn=/dev/i2c-13, bytect=11, slave_address=0x37, single_byte_reads=false (i2c_fileio_reader ) Returning: OK(0): success, readbuf: 6e 88 02 00 c9 01 ff ff 00 00 7c (invoke_i2c_reader ) Bytes read: 6e 88 02 00 c9 01 ff ff 00 00 7c (invoke_i2c_reader ) Returning rc=OK(0): success (ddc_i2c_write_read_raw ) Response bytes: 6e 88 02 00 c9 01 ff ff 00 00 7c (ddc_i2c_write_read_raw ) Done. psc=OK(0): success (ddc_write_read_raw ) Done. Returning: OK(0): success (ddc_write_read_raw ) readbuf: 6e880200 c901ffff 00007c (create_ddc_typed_response_packet) Starting. i2c_response_bytes=6e 88 02 00 c9 01 ff ff 00 00 7c 00 00 00 00 00 00 00 00 00 (create_ddc_response_packet ) Starting. i2c_response_bytes=6e 88 02 00 c9 01 ff ff 00 00 7c 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Starting. i2c_response_bytes=6e 88 02 00 c9 01 ff ff 00 00 7c 00 00 00 00 00 00 00 00 00 (create_ddc_base_response_packet) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec7947b0 (create_ddc_response_packet ) Returning DDCRC_OK(0): success, *packet_ptr_addr=0x5593ec7947b0 (create_ddc_typed_response_packet) Create_ddc_response_packet() returned OK(0): success, *packet_ptr_addr=0x5593ec7947b0 (interpret_vcp_feature_response_std) Starting. requested_vcp_code: 0xc9, vcp_data_bytes: 0200c901 ffff0000 (interpret_vcp_feature_response_std) vcp_opcode = 0xc9, vcp_type_code=0x01, max_val=65535 (0xffff), cur_val=0 (0x0000) (interpret_vcp_feature_response_std) valid_response=true (interpret_vcp_feature_response_std) Returning OK(0): success (create_ddc_typed_response_packet) Returning DDCRC_OK(0): success, *packet_ptr=0x5593ec7947b0 DDC_Packet dump. Addr: 0x5593ec7947b0, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec7946a0, parsed: 0x5593ec781270 Buffer at 0x5593ec7946a0, bytes addr=0x5593ec793360, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 00 c9 01 ff ff 00 00 7c on.........| VCP code: 0xc9 valid_response: 1 supported_opcode: 1 max_value: 65535 cur_value: 0 mh: 0xff ml: 0xff sh: 0x00 sl: 0x00 (ddc_write_read ) create_ddc_typed_response_packet() returned DDCRC_OK(0): success, *response_packet_ptr_loc=0x5593ec7947b0 (ddc_write_read ) Done. Returning: NULL, *response_packet_ptr_loc -> DDC_Packet dump. Addr: 0x5593ec7947b0, Type: 0x02, Tag: |ddc_write_read|, buf: 0x5593ec7946a0, parsed: 0x5593ec781270 Buffer at 0x5593ec7946a0, bytes addr=0x5593ec793360, len=12, max_size=12 +0 +4 +8 +c 0 4 8 c +0000 6f 6e 88 02 00 c9 01 ff ff 00 00 7c on.........| VCP code: 0xc9 valid_response: 1 supported_opcode: 1 max_value: 65535 cur_value: 0 mh: 0xff ml: 0xff sh: 0x00 sl: 0x00 (ddc_write_read_with_retry ) Done. Total Tries (tryctr): 1. Returning: NULL (ddc_get_nontable_vcp_value ) Done. Success reading feature xc9. *ppinterpreted_code=0x5593ec794720 (ddc_get_nontable_vcp_value ) mh=0xff, ml=0xff, sh=0x00, sl=0x00, max value=65535, cur value=0 (ddc_get_vcp_value ) Done. Returning: NULL, *valrec -> Single_Vcp_Value at 0x5593ec781270: Opcode: 0xc9 Value type: DDCA_NON_TABLE_VCP_VALUE (0x01) max_val: 65535 - 0xffff cur_val: 0 - 0x0000 mh: 0xff ml: 0xff sh: 0x00 sl: 0x00 Firmware version: 0.0 (ddc_close_display ) Starting. dh=Display_Handle[i2c: fd=3, busno=13], dref=Display_Ref[bus /dev/i2c-13], fd=3, dpath=bus /dev/i2c-13 (i2c_close_bus ) Starting. fd=3 - /dev/i2c-13, callopts=CALLOPT_NONE (i2c_close_bus ) Done. fd=3, filename=(null), Returning: OK(0): success (ddc_close_display ) Done. dref=Display_Ref[bus /dev/i2c-13] Returning: OK(0): success Monitor returns DDC Null Response for unsupported features: false (ddc_report_display_by_dref ) Done (main ) Display detection complete (main ) Done. main_rc=0 (main ) ddcutil execution complete, Fri Oct 29 15:28:25 2021 \```

newAM commented 2 years ago

I am not seeing any obvious differences between ddcutil and monitorcontrol unfortunately. If you're comfortable with python I would recommend diving in and tinkering around - this is one of those situations that requires lots of trial and error to determine what is going wrong.

brilthor commented 2 years ago

At this point I've scripted something else to attain the goal I was aiming for. I probably won't get digging around to try and solve this personally, however am happy to help with testing or debugging if anyone happens across this and wants to attempt a fix

kernelbin commented 2 years ago

possibly caused by sending two commands too frequently? I encountered a similar problem when sending two commands to a monitor successively, and fixed it by adding time.sleep(0.1)