Bug 12368

Summary: No valid modes on a QUADRO NVS 140M
Product: xorg Reporter: Elias Naur <elias.naur>
Component: Driver/nouveauAssignee: Nouveau Project <nouveau>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium CC: elias.naur
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
xorg log
none
Xorg.0.log
none
Fix BIOS location on g80s
none
xorglog after patch applied none

Description Elias Naur 2007-09-08 15:12:47 UTC
When running nouveau on a thinkpad t61 with a quadro nvs 140m card, it fails to find any valid modes ((EE) NOUVEAU(0): 1443: No valid modes.).
Comment 1 Elias Naur 2007-09-08 15:15:08 UTC
Created attachment 11474 [details]
xorg log
Comment 2 Maarten Maathuis 2007-09-08 15:33:19 UTC
The bios is not detected, this is the initial problem that needs solving.
Comment 3 Elias Naur 2007-09-11 13:31:16 UTC
Created attachment 11523 [details]
Xorg.0.log

Today, a freshly compiled nouveau_drv.so gives me a new crash.
Comment 4 Elias Naur 2007-09-11 13:33:14 UTC
I uploaded a new log from the latest nouveau_drv.so. The new crash is:

/usr/lib/xorg/modules/drivers//nouveau_drv.so(nv30UpdateArbitrationSettings+0x23) [0x2ac7262f1823]
4: /usr/lib/xorg/modules/drivers//nouveau_drv.so(NVCalcStateExt+0x41c) [0x2ac7262f277c]
5: /usr/lib/xorg/modules/drivers//nouveau_drv.so(NVDACInit+0x44f) [0x2ac7262ea60f]
6: /usr/lib/xorg/modules/drivers//nouveau_drv.so [0x2ac7262ee5d5]
7: /usr/lib/xorg/modules/drivers//nouveau_drv.so [0x2ac7262f002c]
8: /usr/lib/xorg/modules/drivers//nouveau_drv.so [0x2ac7262f050a]
9: /usr/bin/X11/X(AddScreen+0x222) [0x439522]
10: /usr/bin/X11/X(InitOutput+0x268) [0x468a48]
11: /usr/bin/X11/X(main+0x275) [0x439d25]
12: /lib/libc.so.6(__libc_start_main+0xf4) [0x2ac72413bb44]
13: /usr/bin/X11/X(FontFileCompleteXLFD+0x229) [0x439209]

it seems to involve the nvGetClocks call in line 694 in nv_hw.c.
Comment 5 Elias Naur 2007-09-11 13:51:07 UTC
Digging into nvGetClocks, the crash happens at line 191 where *MClk is computed:

      *MClk = ((N * NB * pNv->CrystalFreqKHz) / (M * MB)) >> P;

In my case, pll had the value 0x0b01, causing MB to evaluate to zero, thus causing a divide by zero error.
Comment 6 Elias Naur 2007-09-13 09:45:18 UTC
Created attachment 11535 [details] [review]
Fix BIOS location on g80s

This patch, mostly lifted from nv fixes the missing bios problem on my card
Comment 7 Elias Naur 2007-09-13 09:46:30 UTC
Created attachment 11536 [details]
xorglog after patch applied
Comment 8 Elias Naur 2007-09-16 03:11:41 UTC
Latest nouveau updates from nv makes this bug obsolete (I now get X up on the screen, although somwhat garbled)
Comment 9 Allan Sandfeld Jensen 2011-01-25 07:59:24 UTC
I had no valid modes by default on my Thinkpad R61 (neither 1680x1050 internal or standard external 1920x1080p was working by default). The only way to start X up was to feed it manually generated modelines.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.