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

Update from 2014-09-12:

Here’s a solution for this issue (at least it works for me) courtesy of alexisdm (here’s his stack overflow profile). This snippet has to be added to the NVIDIA configuration file in /etc/X11/xorg.conf.d/*.conf:

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

------------------------- The original message -------------------------

sudo ddccontrol -p
ddccontrol version 0.4.2
Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su)
Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch)
This program comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of this program under the terms of the GNU General Public License.

Probing for available monitors.........
Detected monitors :
 - Device: dev:/dev/i2c-0
   DDC/CI supported: No
   Monitor Name: LG (DVI)
   Input type: Digital
No monitor supporting DDC/CI available.
If your graphics card need it, please check all the required kernel modules are loaded (i2c-dev, and your framebuffer driver).

Strangely:

i2cdetect -l
i2c-0   i2c             NVIDIA i2c adapter 0 at 1:00.0          I2C adapter
i2c-1   i2c             NVIDIA i2c adapter 2 at 1:00.0          I2C adapter
i2c-2   i2c             NVIDIA i2c adapter 6 at 1:00.0          I2C adapter
i2c-3   i2c             NVIDIA i2c adapter 7 at 1:00.0          I2C adapter
i2c-4   i2c             NVIDIA i2c adapter 8 at 1:00.0          I2C adapter
i2c-5   i2c             NVIDIA i2c adapter 11 at 1:00.0         I2C adapter

So does gddccontrol work for anyone here?

Edit: post your NVIDIA bug report in this topic.

BTW, this monitor used to work with previous NVIDIA drivers (albeit many years ago).

ddccontrol -p -c -d -v -v
ddccontrol version 0.4.2
Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su)
Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch)
This program comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of this program under the terms of the GNU General Public License.

ddcpci initing...
Starting /usr/bin/ddcpci 2 -318606226 &...
Probing for available monitors...
==>Received!
==>Listing...
==>01:00.0 vendor=10de device=11c0 class=0300 irq=54 base0=f6000000 size0=1000000
==>Supported
==>01:00.0-0
==>01:00.0-1
==>01:00.0-2
==>EOL
Found PCI device (pci:01:00.0-0)
Found PCI device (pci:01:00.0-1)
Found PCI device (pci:01:00.0-2)
Device: pci:01:00.0-0
==>Received!
==>Opening...
==>01:00.0-0
==>01:00.0 vendor=10de device=11c0 class=0300 irq=54 base0=f6000000 size0=1000000
==>Opened (status=0)...
==>Received!
==>Data, mquery->flags = 0
Error while reading write message answer: Bad message
Reading EDID 0x50 failed.
ddcci_open returned -2
Device: pci:01:00.0-1
==>Received!
==>Opening...
==>01:00.0-1
==>01:00.0 vendor=10de device=11c0 class=0300 irq=54 base0=f6000000 size0=1000000
==>Opened (status=0)...
==>Received!
==>Data, mquery->flags = 0
Error while reading write message answer: Bad message
Reading EDID 0x50 failed.
ddcci_open returned -2
Device: pci:01:00.0-2
==>Received!
==>Opening...
==>01:00.0-2
==>01:00.0 vendor=10de device=11c0 class=0300 irq=54 base0=f6000000 size0=1000000
==>Opened (status=0)...
==>Received!
==>Data, mquery->flags = 0
Error while reading write message answer: Bad message
Reading EDID 0x50 failed.
ddcci_open returned -2
Found I2C device (dev:/dev/i2c-5)
ioctl(): Input/output error
ioctl returned -1
Reading EDID 0x50 failed.
ddcci_open returned -2
Found I2C device (dev:/dev/i2c-4)
ioctl(): Input/output error
ioctl returned -1
Reading EDID 0x50 failed.
ddcci_open returned -2
Found I2C device (dev:/dev/i2c-3)
ioctl(): Input/output error
ioctl returned -1
Reading EDID 0x50 failed.
ddcci_open returned -2
Found I2C device (dev:/dev/i2c-2)
ioctl(): Input/output error
ioctl returned -1
Reading EDID 0x50 failed.
ddcci_open returned -2
Found I2C device (dev:/dev/i2c-1)
ioctl(): Input/output error
ioctl returned -1
Reading EDID 0x50 failed.
ddcci_open returned -2
Found I2C device (dev:/dev/i2c-0)
Send: 00                                              | .
Recv: 00                                              | .
ioctl(): Input/output error
ioctl returned -1
ioctl(): Input/output error
ioctl returned -1
ioctl(): Input/output error
ioctl returned -1
Control colortemp has been discarded by the caps string.
Control hpos has been discarded by the caps string.
Control vpos has been discarded by the caps string.
Control hsize has been discarded by the caps string.
Control vsize has been discarded by the caps string.
Control auto has been discarded by the caps string.
Control hpincushion has been discarded by the caps string.
Control hpincushionbalance has been discarded by the caps string.
Control vlinearity has been discarded by the caps string.
Control vlinearitybalance has been discarded by the caps string.
Control hmisconvergence has been discarded by the caps string.
Control vmisconvergence has been discarded by the caps string.
Control keybalance has been discarded by the caps string.
Control key has been discarded by the caps string.
Control tdistortionctrl has been discarded by the caps string.
Control tdistortionbalance has been discarded by the caps string.
Control bdistortionctrl has been discarded by the caps string.
Control bdistortionbalance has been discarded by the caps string.
Control tilt has been discarded by the caps string.
Control hmoire has been discarded by the caps string.
Control vmoire has been discarded by the caps string.
Control focus has been discarded by the caps string.
Control coarse has been discarded by the caps string.
Control fine has been discarded by the caps string.
Control defaultluma has been discarded by the caps string.
Control defaultgeom has been discarded by the caps string.
Control defaultcolor has been discarded by the caps string.
Control settings has been discarded by the caps string.
Control audiospeakervolume has been discarded by the caps string.
Control degauss has been discarded by the caps string.
Control secdegauss has been discarded by the caps string.
Control osdorientation has been discarded by the caps string.
Control inputsource has been discarded by the caps string.
Control dpms has been discarded by the caps string.
Control power has been discarded by the caps string.
ioctl(): Input/output error
ioctl returned -1
ddcci_open returned -1
Detected monitors :
 - Device: dev:/dev/i2c-0
   DDC/CI supported: No
   Monitor Name: LG (DVI)
   Input type: Digital
No monitor supporting DDC/CI available.
If your graphics card need it, please check all the required kernel modules are loaded (i2c-dev, and your framebuffer driver).
ddcpci being released...
==>Received!
==>Quitting...
==>ddcpci is quitting.

Anyone?

Aaron? Have you recently altered the DDC protocol in your drivers? I have the same monitor I had 5 years ago, and it previously worked (albeit on 8800GT - now I have GTX 660).

Please attach nvidia bug report. Which is previous driver worked for you ?

I cannot say which driver worked - it was a long time ago, two or three years ago.
nvidia-bug-report.7z (51.7 KB)

Bump.

Works for me. Is there any chance you could find out which release caused the problem? That would be extremely helpful. Also, do you have a different monitor you could try it with?

Aaron, I cannot really go back in time too far since GTX 660 is only supported by quite recent drivers …

And none of them work.

With this monitor I could only use DDC on 8800GT.

Nvidia internally field bug 1353106 to track this issue …

Is there any update on this issue? I still can’t use my DDC on my monitors, really annoying as I have 3 monitors to adjust for brightness etc.

Still doesn’t work for me unfortunately.

$ sudo ddccontrol -p
ddccontrol version 0.4.2
Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su)
Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch)
This program comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of this program under the terms of the GNU General Public License.

Probing for available monitors...........
Detected monitors :
 - Device: dev:/dev/i2c-4
   DDC/CI supported: No
   Monitor Name: Sony (DVI)
   Input type: Digital
No monitor supporting DDC/CI available.
If your graphics card need it, please check all the required kernel modules are loaded (i2c-dev, and your framebuffer driver).

Still broken as for NVIDIA 337.12

Who can we kick or bribe to fix this :P ?

For some reasons NVIDIA believes no one wants to manage their display using DDC ;-)

I hv tested r337 driver + both Quadro 4000 fermi and Quadro K4000 kepler cards + FC 19. start X before running ddccontrol -p. I have DELL 2407WFPHC display on which its working fine. But on another display Acer AL2216W is not working. So seems like this issue related to monitor rather than driver.

I dont have a Quadro card but just a Geforce (NVIDIA Corporation GK106 [GeForce GTX 650 Ti] (rev a1)).

My monitors are Samsung 2443’s. I did test it with Acers before AL24*-types.

The strange thing is that the (E)EDID-info is read out correctly, so it seems there IS an i2c-communication with the display, only the extended command set does not work.

With 8800GT NVIDIA drove my display just fine.

With 660GT gddccontrol no longer works.

Make your conclusions.

Found I2C device (dev:/dev/i2c-4)
Send: 00                                              | .
Recv: 00                                              | .
ioctl(): Input/output error
ioctl returned -1
ioctl(): Input/output error
ioctl returned -1
ioctl(): Input/output error
ioctl returned -1
Control colortemp has been discarded by the caps string.
Control hpos has been discarded by the caps string.
Control vpos has been discarded by the caps string.
Control hsize has been discarded by the caps string.
Control vsize has been discarded by the caps string.
Control auto has been discarded by the caps string.
Control hpincushion has been discarded by the caps string.
Control hpincushionbalance has been discarded by the caps string.
Control vlinearity has been discarded by the caps string.
Control vlinearitybalance has been discarded by the caps string.
Control hmisconvergence has been discarded by the caps string.
Control vmisconvergence has been discarded by the caps string.
Control keybalance has been discarded by the caps string.
Control key has been discarded by the caps string.
Control tdistortionctrl has been discarded by the caps string.
Control tdistortionbalance has been discarded by the caps string.
Control bdistortionctrl has been discarded by the caps string.
Control bdistortionbalance has been discarded by the caps string.
Control tilt has been discarded by the caps string.
Control hmoire has been discarded by the caps string.
Control vmoire has been discarded by the caps string.
Control focus has been discarded by the caps string.
Control coarse has been discarded by the caps string.
Control fine has been discarded by the caps string.
Control defaultluma has been discarded by the caps string.
Control defaultgeom has been discarded by the caps string.
Control defaultcolor has been discarded by the caps string.
Control settings has been discarded by the caps string.
Control audiospeakervolume has been discarded by the caps string.
Control degauss has been discarded by the caps string.
Control secdegauss has been discarded by the caps string.
Control osdorientation has been discarded by the caps string.
Control inputsource has been discarded by the caps string.
Control dpms has been discarded by the caps string.
Control power has been discarded by the caps string.
ioctl(): Input/output error
ioctl returned -1
ddcci_open returned -1

birdie, Does it mean gddccontrol working fine with 8800GT and not working with 660GT ?

Yes, exactly.

Though I cannot give a warranty that 8800GT works with latest drivers, I sold this GPU over a year ago.

Today I got GK106 [GeForce GTX 660] card. I observed some time after startx ddccontrol -p will run properly. But if you re-run it again and again it will fail. If you pkill X > rmmod nvidia > startx then run it again > It will just run fine. Strange !!! Looks like some timing issue.