[Nouveau] [Bug 92178] nouveau framebuffer fails to initialize properly on GeForce 2 Go (NV11M)

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Dec 10 14:38:37 PST 2015


https://bugs.freedesktop.org/show_bug.cgi?id=92178

--- Comment #3 from Ilia Mirkin <imirkin at alum.mit.edu> ---
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.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/nouveau/attachments/20151210/0d1058eb/attachment.html>


More information about the Nouveau mailing list