2560x1600 display not recognized when using Nvidia driver

Greetings,

I’m on Fedora 19 using akmod-nvidia drivers from RPMfusion repository. I have a 2560x1600 display connected via DVI Dual Link (Cable is dual link) which is not recongized. There are two other displays (1920x1080 via DVI and 1600x900 via HDMI) which work fine.

Using nouveau the display works fine, but when akmod drivers are installed the display is no longer properly recognized. It is still seen by the display manager (Xfce), but for example while Nvidia X Server settings lists the display it only lists 640x480 and 800x600 as available modes though Link is reported as Dual. The display, if enabled, will light up but nothing is actually displayed.

In xrandr it shows up as only supporting 800x600. I have manually tried to add 2560x1600 @ 59.9 but this fails even though it appears to match settings used by nouveau.

$ xrandr -q
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 16384 x 16384
DVI-I-0 disconnected primary (normal left inverted right x axis y axis)
DVI-I-1 connected 800x600+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   800x600        60.3*+
HDMI-0 connected (normal left inverted right x axis y axis)
   1600x900       60.0 +
   1152x864       75.0  
   1024x768       75.0     70.1     60.0  
   800x600        75.0     72.2     60.3     56.2  
   640x480        75.0     72.8     59.9  
DP-0 disconnected (normal left inverted right x axis y axis)
DVI-D-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 531mm x 299mm
   1920x1080      60.0*+
   1680x1050      60.0  
   1600x1200      60.0  
   1440x900       59.9  
   1280x1024      75.0     60.0  
   1280x960       60.0  
   1152x864       75.0  
   1024x768       75.0     70.1     60.0  
   800x600        75.0     72.2     60.3     56.2  
   640x480        75.0     72.8     59.9  
DP-1 disconnected (normal left inverted right x axis y axis)

$ cvt 2560 1600 59.9
# 2560x1600 59.86 Hz (CVT) hsync: 99.24 kHz; pclk: 347.75 MHz
Modeline "2560x1600_59.90"  347.75  2560 2760 3032 3504  1600 1603 1609 1658 -hsync +vsync

$ xrandr --newmode "2560x1600_59.90"  347.75  2560 2760 3032 3504  1600 1603 1609 1658 -hsync +vsync

$ xrandr --addmode DVI-I-1 "2560x1600_59.90"
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  139 (RANDR)
  Minor opcode of failed request:  18 (RRAddOutputMode)
  Serial number of failed request:  41
  Current serial number in output stream:  42

And here’s output from xrandr -q on nouveau:

DVI-I-1 connected 2560x1600+0+0 (normal left inverted right x axis y axis) 670mm x 430mm
   2560x1600      59.9*+
DVI-D-1 connected 1920x1080+2560+0 (normal left inverted right x axis y axis) 531mm x 299mm
   1920x1080      60.0*+
   1600x1200      60.0  
   1680x1050      59.9  
   1280x1024      75.0     60.0  
   1440x900       59.9  
   1280x960       60.0  
   1152x864       75.0  
   1024x768       75.1     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2  
   640x480        75.0     72.8     66.7     60.0  
   720x400        70.1  
HDMI-1 connected 1600x900+4480+0 (normal left inverted right x axis y axis) 432mm x 240mm
   1600x900       60.0*+
   1152x864       75.0  
   1024x768       75.1     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2  
   640x480        75.0     72.8     66.7     60.0  
   720x400        70.1  
DP-1 disconnected (normal left inverted right x axis y axis)

nvidia-bug-report.log.gz (121 KB)

Reading output from nvidia-bug-report after running X at verbose 6 it seems the issue is in EDID. Looks like the display is using EDID 1.3 but the Nvidia driver is trying to parse it as EDID 1.0?

I have tried to add mode as reported by Xorg output on nouveau:

268.00 2560 2608 2640 2720 1600 1603 1609 1646 +hsync -vsync

This mode is also rejected with same BadMatch error.

Solution is to tell Xorg to ignore EDID checksum on particular output. Added this to my “device” section:

Option    "IgnoreEDIDChecksum" "DFP-0"