Bug 15502

Summary: Unknown LVDS configuration bits
Product: xorg Reporter: Paul Erkkila <pee>
Component: Driver/nouveauAssignee: Nouveau Project <nouveau>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: low CC: anssi, bbaetz, debian, hiyuh.root, ndbecker2, thehans
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
xorg log
none
Xorg.log from nv84
none
Xorg.log from NV50 none

Description Paul Erkkila 2008-04-14 11:30:13 UTC
Created attachment 15914 [details]
xorg log

I upgraded to test a new git build of nouveau and with the new code X does not start. It worked fine with the normal VT change glitches up to that point.

I the last few lines in the xorg log are:

II) NOUVEAU(0): Found LVDS manufacturer table revision 4.0
(EE) NOUVEAU(0): LVDS table revision not currently supported
(EE) NOUVEAU(0): Pointers to flat panel table invalid
(II) NOUVEAU(0): Found TMDS table revision 2.0
(WW) NOUVEAU(0): TMDS table script pointers not stubbed
(II) NOUVEAU(0): Setting owner: 0x0.
(II) NOUVEAU(0): Setting owner: 0x3.
(II) NOUVEAU(0): Setting owner: 0x0.
(II) NOUVEAU(0): Display Configuration Block version 4.0 found
(II) NOUVEAU(0): DCB header length 27, with 10 possible entries
Raw DCB entry 0: 01000323 00010034
(EE) NOUVEAU(0): Unknown LVDS configuration bits, please report
(II) Loading sub module "i2c"
(II) LoadModule: "i2c"(II) Module "i2c" already built-in
(II) Loading sub module "ddc"
(II) LoadModule: "ddc"(II) Module "ddc" already built-in
(EE) NOUVEAU(0): 1364: No valid modes.
(II) UnloadModule: "nouveau"
(II) UnloadModule: "dri"
(II) UnloadModule: "vgahw"
(II) Unloading /usr/lib64/xorg/modules//libvgahw.so
(II) UnloadModule: "int10"
(II) Unloading /usr/lib64/xorg/modules//libint10.so
(EE) Screen(s) found, but none have a usable configuration.

lspci -v

01:00.0 VGA compatible controller: nVidia Corporation Unknown device 040c (rev a1) (prog-if 00 [VGA controller])
        Subsystem: Lenovo Unknown device 20d9
        Flags: bus master, fast devsel, latency 0, IRQ 10
        Memory at d2000000 (32-bit, non-prefetchable) [size=16M]
        Memory at e0000000 (64-bit, prefetchable) [size=256M]
        Memory at d0000000 (64-bit, non-prefetchable) [size=32M]
        I/O ports at 2000 [size=128]
        Capabilities: [60] Power Management version 2
        Capabilities: [68] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-
        Capabilities: [78] Express Endpoint, MSI 00
        Capabilities: [100] Virtual Channel <?>
        Capabilities: [128] Power Budgeting <?>
        Capabilities: [600] Vendor Specific Information <?>
Comment 1 Anssi Hannula 2008-04-14 21:08:00 UTC
I have the same error with a 10de:0425 GeForce 8600M GS, with the following DCB entry:
Raw DCB entry 0: 01010323 00000034

Skipping the mask check for unhandled bits makes X start fine.

I'm on #nouveau as Anssi.
Comment 2 Alexey Dobriyan 2008-04-15 11:29:45 UTC
Same here with nv84:

09:00.0 3D controller [0302]: nVidia Corporation Unknown device [10de:0407] (rev a1)
	Subsystem: Toshiba America Info Systems Unknown device [1179:ff00]
	Control: I/O- Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 11
	Region 0: Memory at f2000000 (32-bit, non-prefetchable) [disabled] [size=16M]
	Region 1: Memory at d0000000 (64-bit, prefetchable) [disabled] [size=256M]
	Region 3: Memory at f0000000 (64-bit, non-prefetchable) [disabled] [size=32M]
	Region 5: I/O ports at 2000 [disabled] [size=128]
	Capabilities: <access denied>
	Kernel modules: nvidia

0a:00.0 VGA compatible controller [0300]: nVidia Corporation Unknown device [10de:0407] (rev a1) (prog-if 00 [VGA controller])
	Subsystem: Toshiba America Info Systems Unknown device [1179:ff00]
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 10
	Region 0: Memory at f3000000 (32-bit, non-prefetchable) [size=16M]
	Region 1: Memory at c0000000 (64-bit, prefetchable) [size=256M]
	Region 3: Memory at f4000000 (64-bit, non-prefetchable) [size=32M]
	Region 5: I/O ports at 3000 [size=128]
	Capabilities: <access denied>
	Kernel modules: nvidia


    (II) NOUVEAU(0): Found LVDS manufacturer table revision 4.0
    (EE) NOUVEAU(0): LVDS table revision not currently supported
    (EE) NOUVEAU(0): Pointers to flat panel table invalid
    (II) NOUVEAU(0): Found TMDS table revision 2.0
    (WW) NOUVEAU(0): TMDS table script pointers not stubbed
    (II) NOUVEAU(0): Setting owner: 0x0.
    (II) NOUVEAU(0): Setting owner: 0x3.
    (II) NOUVEAU(0): Setting owner: 0x0.
    (II) NOUVEAU(0): Display Configuration Block version 4.0 found
    (II) NOUVEAU(0): DCB header length 27, with 10 possible entries
    Raw DCB entry 0: 01000323 00000034
    (EE) NOUVEAU(0): Unknown LVDS configuration bits, please report
    (II) NOUVEAU(0): NV50DispPreInit is called.

If I disable check in parse_dcb_entry(), X later segfaults at:

    (WW) NOUVEAU(1): DCB type 14 not known
    (II) NOUVEAU(1): nv50_lvds_detect is called.
    (II) NOUVEAU(1): Output LVDS-0 connected

    Backtrace:
    0: X(xf86SigHandler+0x6d) [0x48efbd]
    1: /lib/libc.so.6 [0x2b538de9f430]
    2: /lib/libc.so.6(memcpy+0xd2) [0x2b538dee49a2]
    3: X(xf86DuplicateMode+0x2e) [0x4b69be]
    4: X(xf86ProbeOutputModes+0x25c) [0x4b21cc]
    5: X(xf86InitialConfiguration+0x78) [0x4b27f8]
    6: /usr/lib64/xorg/modules/drivers//nouveau_drv.so [0x2b538f74c7bb]
    7: X(InitOutput+0x9b6) [0x468156]
    8: X(main+0x275) [0x439ba5]
    9: /lib/libc.so.6(__libc_start_main+0xf4) [0x2b538de8cb74]
    10: X(FontFileCompleteXLFD+0x209) [0x439079]

    Fatal server error:
    Caught signal 11.  Server aborting
Comment 3 Alexey Dobriyan 2008-04-15 11:30:46 UTC
Created attachment 15931 [details]
Xorg.log from nv84
Comment 4 Alexey Dobriyan 2008-04-15 13:04:26 UTC
FWIW, disabling Screen1 and Card1 in xorg.conf and mask check
makes X starts successfully (not counting garbage on screen
first second or so).
Comment 5 Paul Wise 2008-04-19 00:09:30 UTC
Created attachment 16037 [details]
Xorg.log from NV50

Having this issue with an NV50.
Comment 6 Stuart Bennett 2008-04-26 17:13:39 UTC
*** Bug 15666 has been marked as a duplicate of this bug. ***
Comment 7 Neal Becker 2008-05-05 07:11:29 UTC
I have this issue also.  What information can I send to help?
Comment 8 Maarten Maathuis 2008-05-05 09:45:13 UTC
*** Bug 15833 has been marked as a duplicate of this bug. ***
Comment 9 Maarten Maathuis 2008-05-05 09:53:59 UTC
For those who are eager, you can bypass the check that causes the error, don't
bypass the entire output creation stage. I'm not inclined to bypass it as it
serves as a reminder. Stuart Bennett has said he'll look at it, once he fixes
some of the pre-NV50 issues.
Comment 10 Neal Becker 2008-05-05 09:59:34 UTC
(In reply to comment #9)
> For those who are eager, you can bypass the check that causes the error, don't
> bypass the entire output creation stage. I'm not inclined to bypass it as it
> serves as a reminder. Stuart Bennett has said he'll look at it, once he fixes
> some of the pre-NV50 issues.
> 

How can I bypass this, please?
Comment 11 Hervé Cauwelier 2008-05-05 15:13:22 UTC
I took the opportunity to play with git bisect and here is the result:

c5203647ddf262978e7d6a4912661a9cc448da66 is first bad commit
commit c5203647ddf262978e7d6a4912661a9cc448da66
Author: Stuart Bennett <sb476@cam.ac.uk>
Date:   Wed Mar 19 23:12:59 2008 +0000

    randr12: unbreak LVDS and primary I2C for < NV50
    
    NV50 check disallowed pre-NV50 cards using I2C on first head, and made garbage get written to CR0 on LVDS
    
    This should work for both pre-nv50 and nv50.

:040000 040000 bb26db757c088e20d6d26d6227c8d2357699e0dc 0941deb311d605fbfeb90d54e8aafd4248a59861 M	src


You probably already know that but the benefit for me was to get back to a usable state.

I used the following configuration: 

$ git bisect start -- src/nv_bios.c
$ git bisect bad
$ git bisect good 7c25d338e0c79a288fa192d9a2d4ac6eb59996c1

So I bisected on all changes in nv_bios.c.
Comment 12 Maarten Maathuis 2008-05-06 00:59:48 UTC
The issue is known, i know perfectly well what causes the error. It's in nv_bios.c around line 4148. Please just accept that the driver isn't end-user ready and for that reason i don't work around it.
Comment 13 Jan Willies 2008-05-06 01:13:02 UTC
(In reply to comment #12)
> The issue is known, i know perfectly well what causes the error. It's in
> nv_bios.c around line 4148. Please just accept that the driver isn't end-user
> ready and for that reason i don't work around it.
> 

/*			if (conf & mask) {
*				xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
*					   "Unknown LVDS configuration bits, please report\n");
*				pNv->dcb_table.entries = 0;
*				return false;
*			}
*/

That's my workaround (suggestion from Maarten, thx)


HTH


Comment 14 Ben Skeggs 2009-12-03 03:30:08 UTC
This is all fixed in the latest code, closing.

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.