[Openchrome-users] Issues w/ SP-13000 & DVI-02 module & 0.2.1.svn295

Philip Prindeville philipp_subx
Fri Apr 6 20:11:36 PDT 2007


Philip Prindeville wrote:
> Well, I installed a DVI-02 module (and remembered to set
> the jumpers that aren't documented anywhere!)... set BIOS
> to have CRT,LCD...
>
> And tried the following config file (attached).
>
> ...
>
> (II) VIA(0): VIAScreenInit
> (II) VIA(0): VIAMapFB
> (--) VIA(0): mapping framebuffer @ 0xe8000000 with size 0x4000000
> (==) VIA(0): Write-combining range (0xe8000000,0x4000000)
> (--) VIA(0): Frame buffer start: 0xb3db1000, free start: 0xc00000 end: 0x4000000
> (II) VIA(0): VIAMapMMIO
> (--) VIA(0): mapping MMIO @ 0xec000000 with size 0x9000
> (--) VIA(0): mapping BitBlt MMIO @ 0xec200000 with size 0x10000
> (II) VIA(0): vgaHWGetIOBase: hwp->IOBase is 0x03d0, hwp->PIOOffset is 0x0000
> (II) VIA(0): VIASave
> (II) VIA(0): Primary
> (II) VIA(0): TVSave...
> (II) VIA(0): VT162xSave
>
> Backtrace:
> 0: /usr/bin/Xorg(xf86SigHandler+0x81) [0x80c3f91]
> 1: [0xf82420]
> 2: /usr/lib/xorg/modules/drivers//via_drv.so(ViaVbeSetMode+0x4a) [0x303eea]
> 3: /usr/lib/xorg/modules/drivers//via_drv.so [0x2f5f87]
> 4: /usr/bin/Xorg(AddScreen+0x1ee) [0x80702de]
> 5: /usr/bin/Xorg(InitOutput+0x21e) [0x80a23be]
> 6: /usr/bin/Xorg(main+0x27b) [0x8070a7b]
> 7: /lib/libc.so.6(__libc_start_main+0xdc) [0x116f2c]
> 8: /usr/bin/Xorg(FontFileCompleteXLFD+0x1e9) [0x806ffc1]
>
> Fatal server error:
> Caught signal 11.  Server aborting
>   

Found out more about this, and filed a bug.

Latest information (not yet in Trac) is that via_vbe.c:135 is
where the code is crashing:

    xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Trying VBE Mode %dx%d (0x%x) Refresh %.2f:\n",
               (int) data->data->XResolution,
               (int) data->data->YResolution,
               mode & ~(1 << 11), (float) data->block->RefreshRate/100.);
    ViaVbeSetRefresh(pScrn, data->block->RefreshRate/100);
    if (VBESetVBEMode(pVia->pVbe, mode, data->block) == FALSE) {
        xf86DrvMsg(pScrn->scrnIndex, X_INFO, "VBESetVBEMode failed");
        if ((data->block || (data->mode & (1 << 11))) &&
            VBESetVBEMode(pVia->pVbe, (mode & ~(1 << 11)), NULL) == TRUE) {


So the pointer data->block is NULL, and data->data->XResolution is
2048, and data->data->YResolution is 1536.

Oddly, a few lines down (above), the code tests for data->block being
NULL... but after it has unconditionally indirected via
that pointer.  :-(

That seems like an oversight.

Is there a simple fix for this?

Not sure why it was using this mode, anyway.

I had set:

    Option "PanelSize" "1920x1080"

But perhaps it iterates through all of the VBE modes unconditionally.
I haven't walked through the code.

I can try a patch and report on the results if need be.

-Philip







More information about the Openchrome-users mailing list