diff -Naur xorg-x11-6.8.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_2070.c xorg-x11-6.7.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_2070.c --- xorg-x11-6.8.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_2070.c 2004-07-31 02:21:32 +0400 +++ xorg-x11-6.7.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_2070.c 2004-03-04 20:47:45 +0300 @@ -157,7 +157,7 @@ return FALSE; } - return (xaaSetupWrapper(pScreen, infoPtr, pScrn->depth, &nPtr->accelSync)); + return(XAAInit(pScreen, infoPtr)); } diff -Naur xorg-x11-6.8.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_2097.c xorg-x11-6.7.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_2097.c --- xorg-x11-6.8.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_2097.c 2004-07-31 02:21:32 +0400 +++ xorg-x11-6.7.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_2097.c 2004-03-04 20:47:45 +0300 @@ -246,7 +246,7 @@ return FALSE; } - return (xaaSetupWrapper(pScreen, infoPtr, pScrn->depth, &nPtr->accelSync)); + return(XAAInit(pScreen, infoPtr)); } static void diff -Naur xorg-x11-6.8.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_2200.c xorg-x11-6.7.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_2200.c --- xorg-x11-6.8.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_2200.c 2004-07-31 02:21:32 +0400 +++ xorg-x11-6.7.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_2200.c 2004-03-04 20:47:45 +0300 @@ -113,6 +113,7 @@ 0x0f0000 /* 0x1111 - GXset */ }; + Bool Neo2200AccelInit(ScreenPtr pScreen) { @@ -251,7 +252,8 @@ return FALSE; } - return (xaaSetupWrapper(pScreen, infoPtr, pScrn->depth, &nPtr->accelSync)); + + return(XAAInit(pScreen, infoPtr)); } static void diff -Naur xorg-x11-6.8.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c xorg-x11-6.7.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c --- xorg-x11-6.8.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c 2004-08-16 13:13:14 +0400 +++ xorg-x11-6.7.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c 2004-04-07 01:11:17 +0400 @@ -81,7 +81,6 @@ #include "xf86cmap.h" #include "fb.h" -#include "fbpseudocolor.h" /* Needed by Resources Access Control (RAC) */ #include "xf86RAC.h" @@ -430,10 +429,10 @@ "vgaHWProtect", "vgaHWRestore", "vgaHWSave", - "vgaHWSaveScreenWeak", + "vgaHWSaveScreen", "vgaHWSetStdFuncs", "vgaHWUnlock", - "vgaHWddc1SetSpeedWeak", + "vgaHWddc1SetSpeed", NULL }; @@ -1396,7 +1395,7 @@ /* Print the list of modes being used */ xf86PrintModes(pScrn); - + /* If monitor resolution is set on the command line, use it */ xf86SetDpi(pScrn, 0, 0); @@ -1550,22 +1549,12 @@ miClearVisualTypes(); /* Setup the visuals we support. */ -#if 0 - if (!miSetVisualTypes(pScrn->depth, - miGetDefaultVisualMask(pScrn->depth), - pScrn->rgbBits, pScrn->defaultVisual)) - return FALSE; -#else + if (!miSetVisualTypes(pScrn->depth, miGetDefaultVisualMask(pScrn->depth), pScrn->rgbBits, pScrn->defaultVisual)) return FALSE; - if (pScrn->depth > 8) { - if (!miSetVisualTypes(8, miGetDefaultVisualMask(8), 6, - pScrn->defaultVisual)) - return FALSE; - } -#endif + if (!miSetPixmapDepths ()) return FALSE; /* @@ -1590,19 +1579,19 @@ nPtr->ShadowPtr = NULL; FBStart = nPtr->NeoFbBase; } - + ret = fbScreenInit(pScreen, FBStart, width, height, pScrn->xDpi, pScrn->yDpi, displayWidth, pScrn->bitsPerPixel); if (!ret) return FALSE; + if (pScrn->depth > 8) { /* Fixup RGB ordering */ visual = pScreen->visuals + pScreen->numVisuals; while (--visual >= pScreen->visuals) { - if ((visual->class | DynamicClass) == DirectColor - && visual->nplanes > 8) { + if ((visual->class | DynamicClass) == DirectColor) { visual->offsetRed = pScrn->offset.red; visual->offsetGreen = pScrn->offset.green; visual->offsetBlue = pScrn->offset.blue; @@ -1653,6 +1642,13 @@ xf86DrvMsg(pScrn->scrnIndex,X_INFO, "Using nonlinear mode\n"); xf86DrvMsg(pScrn->scrnIndex,X_INFO, "Using software cursor in " "nonlinear mode\n"); + miInitializeBackingStore(pScreen); + xf86SetBackingStore(pScreen); + xf86SetSilkenMouse(pScreen); + + /* Initialise cursor functions */ + miDCInitialize (pScreen, xf86GetPointerScreenFuncs()); + } else { nAcl->cacheStart = -1; nAcl->cacheEnd = -1; @@ -1753,13 +1749,14 @@ "Acceleration %s Initialized\n",ret ? "" : "not"); } - } - miInitializeBackingStore(pScreen); - xf86SetBackingStore(pScreen); - xf86SetSilkenMouse(pScreen); + miInitializeBackingStore(pScreen); + xf86SetBackingStore(pScreen); + xf86SetSilkenMouse(pScreen); + + /* Initialise cursor functions */ + miDCInitialize (pScreen, xf86GetPointerScreenFuncs()); - /* Initialise cursor functions */ - miDCInitialize (pScreen, xf86GetPointerScreenFuncs()); + } if (nAcl->CursorAddress != -1) { /* HW cursor functions */ @@ -1781,12 +1778,13 @@ nPtr->PointerMoved = pScrn->PointerMoved; pScrn->PointerMoved = neoPointerMoved; } - switch(pScrn->bitsPerPixel) { - case 8: nPtr->refreshArea = neoRefreshArea8; break; - case 16: nPtr->refreshArea = neoRefreshArea16; break; - case 24: nPtr->refreshArea = neoRefreshArea24; break; - case 32: nPtr->refreshArea = neoRefreshArea32; break; - } + + switch(pScrn->bitsPerPixel) { + case 8: nPtr->refreshArea = neoRefreshArea8; break; + case 16: nPtr->refreshArea = neoRefreshArea16; break; + case 24: nPtr->refreshArea = neoRefreshArea24; break; + case 32: nPtr->refreshArea = neoRefreshArea32; break; + } } #if 0 ShadowFBInit(pScreen, nPtr->refreshArea); @@ -1804,9 +1802,6 @@ CMAP_PALETTED_TRUECOLOR | CMAP_RELOAD_ON_MODE_SWITCH)) return FALSE; - if (pScrn->depth == 16) - xxSetup(pScreen,8, pScrn->depth, NULL, nPtr->accelSync); /*@!@*/ - racflag |= RAC_COLORMAP; if (nPtr->NeoHWCursorInitialized) racflag |= RAC_CURSOR; @@ -1815,7 +1810,7 @@ NEOInitVideo(pScreen); - pScreen->SaveScreen = vgaHWSaveScreenWeak(); + pScreen->SaveScreen = vgaHWSaveScreen; /* Setup DPMS mode */ if (nPtr->NeoChipset != NM2070) @@ -1823,7 +1818,7 @@ 0); if (!nPtr->noLinear) { - pScrn->memPhysBase = (unsigned long)nPtr->NeoLinearAddr; + pScrn->memPhysBase = (unsigned long)nPtr->NeoFbBase; pScrn->fbOffset = 0; } @@ -1951,8 +1946,7 @@ { ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; NEOPtr nPtr = NEOPTR(pScrn); - int vDisplay = mode->VDisplay * ((mode->Flags & V_DBLSCAN) ? 2 : 1); - + /* * Limit the modes to just those allowed by the various NeoMagic * chips. @@ -1969,7 +1963,7 @@ if (nPtr->internDisp || !nPtr->externDisp) { /* Is the mode larger than the LCD panel? */ if ((mode->HDisplay > nPtr->NeoPanelWidth) || - (vDisplay > nPtr->NeoPanelHeight)) { + (mode->VDisplay > nPtr->NeoPanelHeight)) { xf86DrvMsg(scrnIndex,X_INFO, "Removing mode (%dx%d) " "larger than the LCD panel (%dx%d)\n", mode->HDisplay, @@ -2680,7 +2674,7 @@ */ NeoStd->Attribute[16] = 0x01; - switch (pScrn->depth) { /*@!@*/ + switch (pScrn->depth) { case 8 : NeoStd->CRTC[0x13] = pScrn->displayWidth >> 3; NeoNew->ExtCRTOffset = pScrn->displayWidth >> 11; @@ -3113,7 +3107,7 @@ VGAwCR(0x21,0x00); VGAwCR(0x1D,0x01); /* some Voodoo */ VGAwGR(0xA1,0x2F); - ret = xf86DoEDID_DDC1(scrnIndex,vgaHWddc1SetSpeedWeak(),neo_ddc1Read); + ret = xf86DoEDID_DDC1(scrnIndex,vgaHWddc1SetSpeed,neo_ddc1Read); /* undo initialization */ VGAwCR(0x21,reg1); VGAwCR(0x1D,reg2); diff -Naur xorg-x11-6.8.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo.h xorg-x11-6.7.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo.h --- xorg-x11-6.8.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo.h 2004-07-31 02:21:32 +0400 +++ xorg-x11-6.7.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo.h 2004-03-04 20:47:45 +0300 @@ -46,7 +46,6 @@ #include "xaa.h" #include "xaalocal.h" /* XAA internals as we replace some of XAA */ -#include "xaaWrapper.h" #include "xf86Cursor.h" #include "shadowfb.h" @@ -270,7 +269,6 @@ int overlay_offset; int videoKey; int interlace; - SyncFunc accelSync; } NEORec, *NEOPtr; typedef struct { diff -Naur xorg-x11-6.8.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_video.c xorg-x11-6.7.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_video.c --- xorg-x11-6.8.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_video.c 2004-07-27 03:14:38 +0400 +++ xorg-x11-6.7.0/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_video.c 2004-03-04 20:47:45 +0300 @@ -82,7 +82,7 @@ numAdaptors = xf86XVListGenericAdaptors(pScrn, &overlayAdaptors); - if (nPtr->NeoChipset > NM2070 + if (nPtr->NeoChipset >= NM2160 && !nPtr->noLinear && nPtr->NeoMMIOBase2 != NULL){ nPtr->video = TRUE; @@ -397,9 +397,6 @@ switch (nPtr->NeoChipset) { default: - case NM2090: - case NM2093: - case NM2097: case NM2160: offset/=2; OUTGR(0xbc, 0x4f); @@ -853,9 +850,6 @@ switch (nPtr->NeoChipset) { default: - case NM2090: - case NM2093: - case NM2097: case NM2160: offset/=2; pitch/=2;