Bug 92178 - nouveau framebuffer fails to initialize properly on GeForce 2 Go (NV11M)
Summary: nouveau framebuffer fails to initialize properly on GeForce 2 Go (NV11M)
Status: NEW
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/nouveau (show other bugs)
Version: unspecified
Hardware: x86 (IA32) Linux (All)
: medium normal
Assignee: Nouveau Project
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-09-29 09:33 UTC by Sernin van de Krol
Modified: 2015-12-10 22:38 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
dmesg with nouveau loaded (48.18 KB, text/plain)
2015-09-29 09:33 UTC, Sernin van de Krol
no flags Details
vbios.rom with nouveau loaded (52.00 KB, application/octet-stream)
2015-09-29 09:34 UTC, Sernin van de Krol
no flags Details
Xorg log of using xf86-video-nv (34.40 KB, text/plain)
2015-12-10 22:35 UTC, Sernin van de Krol
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Sernin van de Krol 2015-09-29 09:33:37 UTC
Created attachment 118513 [details]
dmesg with nouveau loaded

When nouveaufb starts the screen does not change from what it was, cursor keeps blinking though.

Attached a dmesg and vbios.rom retrieved with ssh.
Comment 1 Sernin van de Krol 2015-09-29 09:34:27 UTC
Created attachment 118514 [details]
vbios.rom with nouveau loaded
Comment 2 Sernin van de Krol 2015-12-10 22:35:49 UTC
Created attachment 120457 [details]
Xorg log of using xf86-video-nv
Comment 3 Ilia Mirkin 2015-12-10 22:38:37 UTC
The interesting bits from the log:

[   128.852] (II) NV(0): I2C bus "DDC" initialized.
[   128.852] (II) NV(0): Probing for EDID on I2C bus A...
[   128.852] (II) NV(0): I2C device "DDC:ddc2" registered at address 0xA0.
[   128.855] (II) NV(0):   ... none found
[   128.855] (II) NV(0): Probing for EDID on I2C bus B...
[   129.092] (II) NV(0):   ... none found
[   129.092] (--) NV(0): CRTC 1 is currently programmed for DFP
[   129.092] (II) NV(0): Using DFP on CRTC 1
[   129.092] (--) NV(0): Panel size is 1400 x 1050
[   129.092] (II) NV(0): NOTE: This driver cannot reconfigure the BIOS-programmed size.
[   129.092] (II) NV(0): These dimensions will be used as the panel size for mode validation.
[   129.092] (II) NV(0): Panel is LVDS


Note that the xf86-video-nv recognizes device id 112 (and a boatlod of others) as mobile, and for those it forces pNv->FlatPanel = 1, which in turn causes:

             if(pNv->FlatPanel) pNv->CRTCnumber = 1;

    if(pNv->FlatPanel && !pNv->Television) {
       pNv->fpWidth = pNv->PRAMDAC[0x0820/4] + 1;
       pNv->fpHeight = pNv->PRAMDAC[0x0800/4] + 1;
       pNv->fpVTotal = pNv->PRAMDAC[0x804/4] + 1;
       pNv->fpSyncs = pNv->PRAMDAC[0x0848/4] & 0x30000033;
       xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "Panel size is %i x %i\n",
                  pNv->fpWidth, pNv->fpHeight);
       xf86DrvMsg(pScrn->scrnIndex, X_INFO, "NOTE: This driver cannot "
                  "reconfigure the BIOS-programmed size.\n");
       xf86DrvMsg(pScrn->scrnIndex, X_INFO, "These dimensions will be used as "
                  "the panel size for mode validation.\n");
    }

    if(monitorA)
      xf86SetDDCproperties(pScrn, monitorA);

    if(!pNv->FlatPanel || (pScrn->depth != 24) || !pNv->twoHeads)
        pNv->FPDither = FALSE;

    pNv->LVDS = FALSE;
    if(pNv->FlatPanel && pNv->twoHeads) {
        pNv->PRAMDAC0[0x08B0/4] = 0x00010004;
        if(pNv->PRAMDAC0[0x08B4/4] & 1)
           pNv->LVDS = TRUE;
        xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Panel is %s\n", 
                   pNv->LVDS ? "LVDS" : "TMDS");
    }


and later on

    if(pNv->FlatPanel == 1) {
       vertStart = vertTotal - 3;  
       vertEnd = vertTotal - 2;
       vertBlankStart = vertStart;
       horizStart = horizTotal - 5;
       horizEnd = horizTotal - 2;   
       horizBlankEnd = horizTotal + 4;
       if(pNv->Architecture == NV_ARCH_30)
           horizTotal += 2;
    }

We should figure out what all this maps to in nouveau and how to properly fake it.


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.