GDDCcontrol issues with NVIDIA drivers (i2c/monitor/display/DDC) - DP/HDMI failing

I found something that might fix the data corruption on the i2c bus, and some freezes/crashes.
Try to add that to xorg.conf or xorg.conf.d:

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    Option         "RegistryDwords" "RMUseSwI2c=0x01; RMI2cSpeed=100"
EndSection

These 2 “registry keys” come from the binary blob (“strings nvidia.ko | grep -i i2c”), they are part the same list as other documented keys which are used with the “RegistryDwords” option. RMI2cSpeed seems to be in KHz, but that’s just a guess because 100 works very well (DDC/CI standard speed is 100KHz) with the least data corruption (compared to 33, 200, 400 or no value set).
There is also a RMUseHwI2c which adds an i2c-device but makes ddccontrol crash.

I also had to recompile ddccontrol after increasing the value of the DELAY macro from 45000 to 50000 in the file src/lib/ddcci.c because there was some leading zero bytes before the actual DDC response.