Hardware:
Nvidia GeForce 5900 Ultra NV35
Coby TFTV1923 1440x900 LCD flat panel
Driver:
nouveau
System:
F13 Fedora Core 13
Problem:
When switching over from VGA to DVI connection, native resolution is not available.
Details:
From what I've read on the web, there seem to be a lot of folks having problems with DFP screens and nouveau/nvidia drivers. Here's a summary of how I got 1440x900@60 reduced blanking mode to work on my screen.
The root cause of all these problems seems to be the loss of the Option for DFP scaling mode

previously implemented as:
Option "FlatPanelProperties" "Scaling = Native"
The modeline for DVI is easily generated with cvt:
[rob@GW710X X11]$ cvt 1440 900 60
# 1440x900 59.89 Hz (CVT 1.30MA) hsync: 55.93 kHz; pclk: 106.50 MHz
Modeline "1440x900_60.00" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync
[rob@GW710X X11]$ cvt -r 1440 900 60
# 1440x900 59.90 Hz (CVT 1.30MA-R) hsync: 55.47 kHz; pclk: 88.75 MHz
Modeline "1440x900R" 88.75 1440 1488 1520 1600 900 903 909 926 +hsync -vsync
whereas the modeline for VGA came from an online calculator:
Modeline "1440x900@60" 108.84 1440 1472 1880 1912 900 918 927 946 -HSync +Vsync
The problem is that EDID over the DVI has no 1440x900 mode defined. After specifying:
Option "monitor-VGA-1" "MonitorVGA"
Option "monitor-DVI-I-1" "MonitorDVI"
in the Device section of xorg.conf I was able to get a dual head cloned screen:
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" 0 0
but the DFP had only 1280 by 720 resolution, the "preferred" mode over the DVI EDID.

(I've left out digging through Xorg.0.log and temporarily switching to the nvidia closed source driver--good thing I paid attention to the installation procedure and was able to successfully back out without too much difficulty, with only an hour or so of no X at all.) (That almost sounds dirty...)
After much gnashing of options without success:

Option "UseEDID" "FALSE"
Option "ExactModeTimingsDVI" "TRUE"
Option "ModeValidation" "NoMaxPClkCheck"
Option "ModeValidation" "NoEdidMaxPClkCheck"
Option "ModeValidation" "NoDFPNativeResolutionCheck"
to fix the stuttering picture over the DVI when
Option "PreferredMode" "1440x900_60.00"
I finally found the xrandr command to jiggle the DFP scaling mode:
xrandr --output DVI-I-1 --set "scaling mode" "None"
followed by
xrandr --output DVI-I-1 --mode "1440x900_60.00"
to set the resolution. Yea--success!

Keeping with the timeline, the next step was to find where in the boot process to insert those commands. After trying rc.local, which does not work because it is too early in the sequence, I got it working post login by putting them (with sleep1; preceding) in .xinitrc but that wasn't what I wanted, as the gdm login screen was only the 1280x720 upper left corner, and the useful buttons are in the lower right. Finally I found the /etc/gdm/Init/Default script (after playing with PostLogin and the others) to which I added:
# INSERTED TO SET DFP SCALING MODE AND RESOLUTION
sleep 1; /usr/bin/xrandr --output DVI-I-1 --set "scaling mode" "None"
sleep 1; /usr/bin/xrandr --output DVI-I-1 --mode "1440x900_60.00"
right after the environment variables and before the gdmwhich command. (George left some entertaining comments in that script--it's always fun digging through linux code.) Yea--now it boots to 1440x900 without a hitch!

(As long as some boot flickering is not bothersome.) Last step was to get the reduced blanking working, which kept showing up offset left (or was it right?) by some amount. Enabling that mode through xrandr then using xvidtune got me the modeline that I finally am using:
Modeline "1440x900R" 88.75 1440 1468 1500 1600 900 903 909 926 +hsync -vsync
which shifts the screen right (or maybe left). For some widget reason xvidtune wouldn't apply the changes live, but it is easy to see the effect on the modeline values when the buttons are clicked. I guessed correctly that four clicks gave me a root window aligned with my screen.
Before divulging my working xorg.conf I would like to suggest to the nouveau and nvidia linux driver developers that Option "FlatPanelProperties" be reinstated with support for at least "Scaling = <value>" if nothing else. All the other options one can handle with xrandr after booting

, but being able to set
scaling mode: None
supported: None Full Center Full aspect
through the driver would alleviate many users woes. Having both VGA and DVI connections between the box and the monitor really helped with the troubleshooting. Without further adieu here is my current xorg.conf file (note I've got VGA setup for an alternate dual head screen)--use at your own risk, YMMV, but you gotta learn somehow:

[rob@GW710X X11]$ cat xorg.conf
Code:
# Xorg configuration created by hand
Section "ServerLayout"
Identifier "current configuration"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" LeftOf "Screen0"
EndSection
Section "Device"
Identifier "Card0"
Driver "nouveau"
VendorName "nVidia Corporation"
BoardName "NV35 [GeForce FX 5900 Ultra]"
BusID "PCI:1:0:0"
Option "monitor-VGA-1" "MonitorVGA"
Option "monitor-DVI-I-1" "MonitorDVI"
EndSection
# disable TV-1 by default
Section "Monitor"
Identifier "TV-1"
Option "Ignore" "true"
EndSection
Section "Monitor"
Identifier "MonitorVGA"
VendorName "Coby TFTV1923"
ModelName "LCD Panel 1440x900"
Option "dpms"
# DisplaySize 408 255 # in mm
# # From online modeline calculator -- works great over VGA
# Modeline "1440x900@60" 108.84 1440 1472 1880 1912 900 918 927 946 -HSync +Vsync
# Option "PreferredMode" "1440x900@60"
EndSection
Section "Monitor"
Identifier "MonitorDVI"
VendorName "Coby TFTV1923"
ModelName "LCD Panel 1440x900"
Option "dpms"
# DisplaySize 408 255 # in mm
# Modeline "1440x900_60.00" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync
Modeline "1440x900R" 88.75 1440 1468 1500 1600 900 903 909 926 +hsync -vsync
Option "PreferredMode" "1280x720"
Option "ReducedBlanking" "TRUE"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "MonitorDVI"
DefaultDepth 24
SubSection "Display"
Depth 24
Virtual 2880 900
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "Card0"
Monitor "MonitorVGA"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Files"
ModulePath "/usr/lib/xorg/modules"
FontPath "catalogue:/etc/X11/fontpath.d"
FontPath "built-ins"
EndSection
Section "Module"
Load "dri2"
Load "extmod"
Load "glx"
Load "dbe"
Load "record"
Load "dri"
EndSection
After the inordinate amount of time I spent losing sleep over this issue, I thought I'd share with the forums how I finally got it to work.