VERSION:

XFree86 4.2.1

VIDEO DRIVER:

i810(i830)

OPERATING SYSTEM:

FreeBSD 5.0 RC2

VIDEO CARD:

    MODEL:

    i830m

    GRAPHICS CHIPSET:

    RAMDAC:

    CLOCKCHIP:

    VIDEO MEMORY:

    BUS TYPE:

REPORT:

using following Device-Section in XF86Config
        Section "Device"
            Identifier  "TB80"
            Driver      "i810"
            Chipset     "i830M"
        EndSection
XFree86 dumps core
in xc/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c
These problems are caused by insufficient varible initialization.

sample fix follows

Index ./xc/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c
- --- ./xc/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c-ORIG  Wed Jan  9 
03:59:29 2002
+++ ./xc/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c Thu Jan  9 22:56:36 
+2003
@@ -602,6 +602,11 @@
    /* Process the options */
    xf86CollectOptions (pScrn,NULL);
    xf86ProcessOptions (pScrn->scrnIndex,pScrn->options,I830BIOSOptions);
+   /* XXXX---- */
+   if (!(pI810->Options = xalloc(sizeof(I830BIOSOptions))))
+      return FALSE;
+   memcpy(pI810->Options, I830BIOSOptions, sizeof(I830BIOSOptions));
+   /* ----XXXX */
 
    /* We have to use PIO to probe, because we haven't mapped yet */
    I810SetPIOAccess (pI810);
@@ -767,7 +772,7 @@
    /* Load vbe module */
    if((pVbeModule = xf86LoadSubModule(pScrn, "vbe")) == NULL) return FALSE;
    xf86LoaderReqSymLists(I810vbeSymbols, NULL);
- -   if((pVbe = VBEInit(pVesa->pInt, pVesa->pEnt->index)) == NULL) return FALSE;
+   if((pVbe = VBEInit(pVesa->pInt, pI810->pEnt->index)) == NULL) return FALSE;
 
    /* Load ddc module */
    if((pDDCModule = xf86LoadSubModule(pScrn, "ddc")) == NULL) return FALSE;
@@ -1035,6 +1040,7 @@
                while (pMode != pScrn->modes);
         }
 
+#if 0 /* XXXX---- */
    DPRINTF (PFX,
                        "data->block->HorizontalTotal = %lu\n"
                        "data->block->HorizontalSyncStart = %lu\n"
@@ -1054,6 +1060,7 @@
                        data->block->Flags,
                        data->block->PixelClock,
                        data->block->RefreshRate);
+#endif /* ----XXXX */
 
    pScrn->currentMode = pScrn->modes;
 
@@ -2171,6 +2178,9 @@
    vgaHWGetIOBase(hwp);
        DPRINTF(PFX,"assert( if(!vgaHWMapMem(pScrn)) )\n");
    if(!vgaHWMapMem(pScrn)) return FALSE;
+   /* XXXX---- */
+   pVesa->VGAbase = hwp->Base;
+   /* ----XXXX */
 
    /* Handle Setup of the mode here */
        DPRINTF(PFX,"assert( if(!(I830BIOSInitializeFirstMode(scrnIndex))) )\n");


_______________________________________________
XFree86 mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xfree86

Reply via email to