Bug 462867

Summary: nouveau setting incorrect screen resolution somehow
Product: [Fedora] Fedora Reporter: Alex Hudson (Fedora Address) <fedora>
Component: xorg-x11-drv-nouveauAssignee: Ben Skeggs <bskeggs>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: 10CC: ajax, mcepl, xgl-maint
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-03-08 23:18:53 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Alex Hudson (Fedora Address) 2008-09-19 12:54:00 UTC
Description of problem:

(First, thanks for making nouveau available - on my Quadro NVS 135M it's a big improvement speed-wise over nv)

I'm using the Fedora 10 alphas and nouveau is working pretty well, but it's not making full use of my screen area. The screen res. applet lets me go up to 1440 x 1050, but I think my display is much bigger - either way, I've ended up with two black bars on either side of the screen.

I haven't tried putting a modeline into my xorg.conf, but I have checked that there's nothing in there setting/overriding resolution.

Version-Release number of selected component (if applicable):

xorg-x11-drv-nouveau-0.0.11-1.20080902git6dd8ad4.fc10.x86_64

Additional info:

In my Xorg.log, I see:

(II) NOUVEAU(0): I2C device "LVDS-0:ddc2" registered at address 0xA0.
(II) NOUVEAU(0): Detected a Digital output on LVDS-0
(II) NOUVEAU(0): Found a suitable output, index 0
(II) NOUVEAU(0): nv50_output_detect is called.
(II) NOUVEAU(0): NV50ConnectorDDCDetect is called.
(II) NOUVEAU(0): EDID vendor "SEC", prod id 12885
(II) NOUVEAU(0): Printing DDC gathered Modelines:
(II) NOUVEAU(0): Modeline "1920x1200"x0.0  167.80  1920 2020 2052 2264  1200 120
2 1208 1235 -hsync -vsync (74.1 kHz)
(II) NOUVEAU(0): NV50ConnectorGetDDCModes is called.

... but then later ...

(II) NOUVEAU(0): Output LVDS-0 using initial mode 1400x1050
(--) NOUVEAU(0): VideoRAM: 131072 kBytes
(==) NOUVEAU(0): Using gamma correction (1.0, 1.0, 1.0)
(--) NOUVEAU(0): Virtual size is 1400x1400 (pitch 1408)
(**) NOUVEAU(0):  Default mode "1400x1050": 122.0 MHz (scaled from 0.0 MHz), 64.
9 kHz, 60.0 Hz
(II) NOUVEAU(0): Modeline "1400x1050"x60.0  122.00  1400 1488 1640 1880  1050 10
52 1064 1082 +hsync +vsync (64.9 kHz)

... and some lesser resolutions then mentioned.

Comment 1 Matěj Cepl 2008-09-19 15:25:03 UTC
Thanks for the bug report.  We have reviewed the information you have provided above, and there is some additional information we require that will be helpful in our diagnosis of this issue.

Please attach your X server config file (/etc/X11/xorg.conf) and X server log file (/var/log/Xorg.*.log) to the bug report as individual uncompressed file attachments using the bugzilla file attachment link below.

Could you please also try to run without any /etc/X11/xorg.conf whatsoever and let X11 autodetect your display and video card? Attach to this bug /var/log/Xorg.0.log from this attempt as well, please.

We will review this issue again once you've had a chance to attach this information.

Thanks in advance.

Comment 2 Alex Hudson (Fedora Address) 2008-09-19 15:57:16 UTC
Hi.

Having worked with some helpful people on #nouveau, it looks like this was a driver problem, the following patch fixed it up.

I rebuilt the rpm with this patch applied and I'm back to full resolution.

diff --git a/src/nv50_sor.c b/src/nv50_sor.c
index 9a14da6..4d66cb2 100644
--- a/src/nv50_sor.c
+++ b/src/nv50_sor.c
@@ -29,7 +29,14 @@
 static int
 NV50SorModeValid(nouveauOutputPtr output, DisplayModePtr mode)
 {
-	if (mode->Clock > 165000) /* no dual link until we figure it out completely */
+	int high_limit;
+
+	if (output->type == OUTPUT_LVDS)
+		high_limit = 400000;
+	else
+		high_limit = 165000; /* no dual link dvi until we figure it out completely */
+
+	if (mode->Clock > high_limit)
 		return MODE_CLOCK_HIGH;
 
 	if (mode->Clock < 25000)

Comment 3 Bug Zapper 2008-11-26 03:08:29 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 10 development cycle.
Changing version to '10'.

More information and reason for this action is here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping