configure.ac | 2 src/g80_display.c | 95 ++++++++++++++++++++++--- src/g80_driver.c | 59 ---------------- src/g80_output.c | 22 +++++- src/g80_type.h | 2 src/nv_driver.c | 198 ++++++++++++++---------------------------------------- src/riva_driver.c | 108 ----------------------------- 7 files changed, 160 insertions(+), 326 deletions(-)
New commits: commit c56b92149c6291e7ef96b30a4fc7bee30073b90c Author: Aaron Plattner <aplatt...@nvidia.com> Date: Thu Jul 2 12:03:13 2009 -0700 Bump to 2.1.14 diff --git a/configure.ac b/configure.ac index bd26111..e67a1ef 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-nv], - 2.1.13, + 2.1.14, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-nv) commit 05d2b851b96c2f1b3223f8d5f40b8ee074e5f23f Author: Aaron Plattner <aplatt...@nvidia.com> Date: Fri Jun 26 17:53:53 2009 -0700 More new chips diff --git a/src/nv_driver.c b/src/nv_driver.c index d1f4c24..3a396e0 100644 --- a/src/nv_driver.c +++ b/src/nv_driver.c @@ -729,6 +729,7 @@ NVIsG80(int chipType) case 0x06f0: case 0x0a60: case 0x0a70: + case 0x0ca0: return TRUE; } commit 68c2914f1775541784e6cf88019960342d8433bc Author: Aaron Plattner <aplatt...@nvidia.com> Date: Fri Jun 12 17:34:43 2009 -0700 Fix modesets on certain GPUs that were broken by the previous commit. diff --git a/src/g80_display.c b/src/g80_display.c index 1b1efe9..3cbaac3 100644 --- a/src/g80_display.c +++ b/src/g80_display.c @@ -208,7 +208,9 @@ G80CrtcSetPClk(xf86CrtcPtr crtc) if(pPriv->pclk == 0) return; - if(pNv->architecture < 0xa0) { + if(pNv->architecture <= 0xa0 || + pNv->architecture == 0xaa || + pNv->architecture == 0xac) { int lo_n, lo_m, hi_n, hi_m, p, i; CARD32 lo = pNv->reg[(0x00614104+headOff)/4]; CARD32 hi = pNv->reg[(0x00614108+headOff)/4]; commit 36eb96854b34bee6b65a2b2d4df25f53b47194e4 Author: Aaron Plattner <aplatt...@nvidia.com> Date: Wed Jun 10 18:49:32 2009 -0700 New chip support. Part of the G80DispPreInit change suggested by <shenyn...@hotmail.com>. diff --git a/src/g80_display.c b/src/g80_display.c index cf4631d..1b1efe9 100644 --- a/src/g80_display.c +++ b/src/g80_display.c @@ -146,26 +146,95 @@ G80CalcPLL(float pclk, int *pNA, int *pMA, int *pNB, int *pMB, int *pP) } static void +G80CalcPLL2(float pclk, int *pN, int *pM, int *pPL) +{ + const float refclk = 27000.0f; + const int minN = 8, maxN = 255; + const int minM = 1, maxM = 255; + const int minPL = 1, maxPL = 63; + const int minU = 25000, maxU = 50000; + const int minVco = 500000; + int maxVco = 1000000; + int lowPL, highPL, pl; + float vco, bestError = FLT_MAX; + + vco = pclk + pclk / 50; + + if(maxVco < vco) maxVco = vco; + + highPL = (maxVco + vco - 1) / pclk; + if(highPL > maxPL) highPL = maxPL; + if(highPL < minPL) highPL = minPL; + + lowPL = minVco / vco; + if(lowPL > maxPL) lowPL = maxPL; + if(lowPL < minPL) lowPL = minPL; + + for(pl = highPL; pl >= lowPL; pl--) { + int m; + + for(m = minM; m <= maxM; m++) { + int n; + float freq, error; + + if(refclk / m < minU) break; + if(refclk / m > maxU) continue; + + n = rint(pclk * pl * m / refclk); + if(n > maxN) break; + if(n < minN) continue; + + freq = refclk * (n / (float)m) / pl; + error = fabsf(pclk - freq); + if(error < bestError) { + *pN = n; + *pM = m; + *pPL = pl; + bestError = error; + } + } + } +} + +static void G80CrtcSetPClk(xf86CrtcPtr crtc) { G80Ptr pNv = G80PTR(crtc->scrn); G80CrtcPrivPtr pPriv = crtc->driver_private; xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(crtc->scrn); const int headOff = 0x800 * pPriv->head; - int lo_n, lo_m, hi_n, hi_m, p, i; - CARD32 lo = pNv->reg[(0x00614104+headOff)/4]; - CARD32 hi = pNv->reg[(0x00614108+headOff)/4]; + int i; + + if(pPriv->pclk == 0) + return; + + if(pNv->architecture < 0xa0) { + int lo_n, lo_m, hi_n, hi_m, p, i; + CARD32 lo = pNv->reg[(0x00614104+headOff)/4]; + CARD32 hi = pNv->reg[(0x00614108+headOff)/4]; + + pNv->reg[(0x00614100+headOff)/4] = 0x10000610; + lo &= 0xff00ff00; + hi &= 0x8000ff00; - pNv->reg[(0x00614100+headOff)/4] = 0x10000610; - lo &= 0xff00ff00; - hi &= 0x8000ff00; + G80CalcPLL(pPriv->pclk, &lo_n, &lo_m, &hi_n, &hi_m, &p); - G80CalcPLL(pPriv->pclk, &lo_n, &lo_m, &hi_n, &hi_m, &p); + lo |= (lo_m << 16) | lo_n; + hi |= (p << 28) | (hi_m << 16) | hi_n; + pNv->reg[(0x00614104+headOff)/4] = lo; + pNv->reg[(0x00614108+headOff)/4] = hi; + } else { + int n, m, pl; + CARD32 r = pNv->reg[(0x00614104+headOff)/4]; + + pNv->reg[(0x00614100+headOff)/4] = 0x50000610; + r &= 0xffc00000; - lo |= (lo_m << 16) | lo_n; - hi |= (p << 28) | (hi_m << 16) | hi_n; - pNv->reg[(0x00614104+headOff)/4] = lo; - pNv->reg[(0x00614108+headOff)/4] = hi; + G80CalcPLL2(pPriv->pclk, &n, &m, &pl); + r |= pl << 16 | m << 8 | n; + + pNv->reg[(0x00614104+headOff)/4] = r; + } pNv->reg[(0x00614200+headOff)/4] = 0; for(i = 0; i < xf86_config->num_output; i++) { @@ -235,6 +304,8 @@ G80DispPreInit(ScrnInfoPtr pScrn) pNv->reg[0x006101D8/4] = pNv->reg[0x0061B000/4]; pNv->reg[0x006101E0/4] = pNv->reg[0x0061C000/4]; pNv->reg[0x006101E4/4] = pNv->reg[0x0061C800/4]; + pNv->reg[0x006101E8/4] = pNv->reg[0x0061D000/4]; + pNv->reg[0x006101EC/4] = pNv->reg[0x0061D800/4]; pNv->reg[0x0061A004/4] = 0x80550000; pNv->reg[0x0061A010/4] = 0x00000001; pNv->reg[0x0061A804/4] = 0x80550000; diff --git a/src/g80_output.c b/src/g80_output.c index 75bf7ba..b2d8b07 100644 --- a/src/g80_output.c +++ b/src/g80_output.c @@ -127,6 +127,11 @@ static Bool G80ReadPortMapping(int scrnIndex, G80Ptr pNv) "VGA%d: invalid port type %d\n", or, portType); break; } + if(port >= G80_NUM_I2C_PORTS) { + xf86DrvMsg(scrnIndex, X_WARNING, + "VGA%d: unrecognized port %d\n", or, port); + break; + } if(pNv->i2cMap[port].dac != -1) { xf86DrvMsg(scrnIndex, X_WARNING, "DDC routing table corrupt! DAC %i -> %i for " @@ -152,6 +157,11 @@ static Bool G80ReadPortMapping(int scrnIndex, G80Ptr pNv) "DVI%d: invalid port type %d\n", or, portType); break; } + if(port >= G80_NUM_I2C_PORTS) { + xf86DrvMsg(scrnIndex, X_WARNING, + "DVI%d: unrecognized port %d\n", or, port); + break; + } if(pNv->i2cMap[port].sor != -1) xf86DrvMsg(scrnIndex, X_WARNING, "DDC routing table corrupt! SOR %i -> %i for " @@ -181,6 +191,11 @@ static Bool G80ReadPortMapping(int scrnIndex, G80Ptr pNv) "LVDS: invalid port type %d\n", portType); break; } + if(port >= G80_NUM_I2C_PORTS) { + xf86DrvMsg(scrnIndex, X_WARNING, + "LVDS: unrecognized port %d\n", port); + break; + } pNv->lvds.i2cPort = port; break; @@ -217,9 +232,11 @@ fail: static CARD32 i2cAddr(const int port) { - const CARD32 base = (port > 3) ? 0x0000E1D4 : 0x0000E138; - const CARD32 offset = (port > 3) ? 0x20 : 0x18; - return base + port * offset; + const CARD32 addrs[G80_NUM_I2C_PORTS] = { + 0xE138, 0xE150, 0xE168, 0xE180, 0xE254, 0xE274, 0xE764, 0xE780, 0xE79C, + 0xE7B8 + }; + return addrs[port]; } static void G80_I2CPutBits(I2CBusPtr b, int clock, int data) diff --git a/src/g80_type.h b/src/g80_type.h index 0cebae7..9bb07a4 100644 --- a/src/g80_type.h +++ b/src/g80_type.h @@ -7,7 +7,7 @@ #include <xf86Crtc.h> #include <xf86int10.h> -#define G80_NUM_I2C_PORTS 6 +#define G80_NUM_I2C_PORTS 10 typedef enum Head { HEAD0 = 0, diff --git a/src/nv_driver.c b/src/nv_driver.c index 41840dd..d1f4c24 100644 --- a/src/nv_driver.c +++ b/src/nv_driver.c @@ -727,6 +727,8 @@ NVIsG80(int chipType) case 0x0650: case 0x06e0: case 0x06f0: + case 0x0a60: + case 0x0a70: return TRUE; } commit 23ca1b0d4324ae65a0c2a39cc877d318063988b1 Author: Adam Jackson <a...@redhat.com> Date: Thu May 28 15:11:20 2009 -0400 Remove useless loader symbol lists. diff --git a/src/g80_driver.c b/src/g80_driver.c index ad8a424..5ecf895 100644 --- a/src/g80_driver.c +++ b/src/g80_driver.c @@ -51,56 +51,6 @@ #define G80_REG_SIZE (1024 * 1024 * 16) #define G80_RESERVED_VIDMEM 0xd000 -static const char *fbSymbols[] = { - "fbPictureInit", - "fbScreenInit", - NULL -}; - -static const char *xaaSymbols[] = { - "XAACopyROP", - "XAACreateInfoRec", - "XAADestroyInfoRec", - "XAAFallbackOps", - "XAAInit", - "XAAPatternROP", - NULL -}; - -static const char *exaSymbols[] = { - "exaDriverAlloc", - "exaDriverInit", - "exaDriverFini", - NULL -}; - -static const char *i2cSymbols[] = { - "xf86CreateI2CBusRec", - "xf86I2CBusInit", - NULL -}; - -static const char *ramdacSymbols[] = { - "xf86CreateCursorInfoRec", - "xf86DestroyCursorInfoRec", - "xf86InitCursor", - NULL -}; - -static const char *ddcSymbols[] = { - "xf86PrintEDID", - "xf86DoEDID_DDC2", - "xf86SetDDCproperties", - NULL -}; - -static const char *int10Symbols[] = { - "xf86FreeInt10", - "xf86InitInt10", - "xf86ExecX86int10", - NULL -}; - typedef enum { OPTION_HW_CURSOR, OPTION_NOACCEL, @@ -243,7 +193,6 @@ G80PreInit(ScrnInfoPtr pScrn, int flags) pNv->int10 = NULL; pNv->int10Mode = 0; if(xf86LoadSubModule(pScrn, "int10")) { - xf86LoaderReqSymLists(int10Symbols, NULL); xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Initializing int10\n"); pNv->int10 = xf86InitInt10(pEnt->index); } @@ -434,7 +383,6 @@ G80PreInit(ScrnInfoPtr pScrn, int flags) if(!xf86LoadSubModule(pScrn, "i2c")) goto fail; if(!xf86LoadSubModule(pScrn, "ddc")) goto fail; - xf86LoaderReqSymLists(i2cSymbols, ddcSymbols, NULL); if(!G80DispPreInit(pScrn)) goto fail; /* Read the DDC routing table and create outputs */ @@ -465,17 +413,14 @@ G80PreInit(ScrnInfoPtr pScrn, int flags) /* Load fb */ if(!xf86LoadSubModule(pScrn, "fb")) goto fail; - xf86LoaderReqSymLists(fbSymbols, NULL); if(!pNv->NoAccel) { switch(pNv->AccelMethod) { case XAA: if(!xf86LoadSubModule(pScrn, "xaa")) goto fail; - xf86LoaderReqSymLists(xaaSymbols, NULL); break; case EXA: if(!xf86LoadSubModule(pScrn, "exa")) goto fail; - xf86LoaderReqSymLists(exaSymbols, NULL); break; } } @@ -486,9 +431,7 @@ G80PreInit(ScrnInfoPtr pScrn, int flags) xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Failed to load ramdac. " "Falling back to software cursor.\n"); pNv->HWCursor = FALSE; - } else { - xf86LoaderReqSymLists(ramdacSymbols, NULL); - } + } } return TRUE; diff --git a/src/nv_driver.c b/src/nv_driver.c index 5f0a5b4..41840dd 100644 --- a/src/nv_driver.c +++ b/src/nv_driver.c @@ -487,123 +487,6 @@ static SymTabRec NVKnownChipsets[] = {-1, NULL} }; - -/* - * List of symbols from other modules that this module references. This - * list is used to tell the loader that it is OK for symbols here to be - * unresolved providing that it hasn't been told that they haven't been - * told that they are essential via a call to xf86LoaderReqSymbols() or - * xf86LoaderReqSymLists(). The purpose is this is to avoid warnings about - * unresolved symbols that are not required. - */ - -static const char *vgahwSymbols[] = { - "vgaHWUnmapMem", - "vgaHWDPMSSet", - "vgaHWFreeHWRec", - "vgaHWGetHWRec", - "vgaHWGetIndex", - "vgaHWInit", - "vgaHWMapMem", - "vgaHWProtect", - "vgaHWRestore", - "vgaHWSave", - "vgaHWSaveScreen", - NULL -}; - -static const char *fbSymbols[] = { - "fbPictureInit", - "fbScreenInit", - NULL -}; - -static const char *xaaSymbols[] = { - "XAACopyROP", - "XAACreateInfoRec", - "XAADestroyInfoRec", - "XAAFallbackOps", - "XAAInit", - "XAAPatternROP", - NULL -}; - -static const char *ramdacSymbols[] = { - "xf86CreateCursorInfoRec", - "xf86DestroyCursorInfoRec", - "xf86InitCursor", - NULL -}; - -static const char *ddcSymbols[] = { - "xf86PrintEDID", - "xf86DoEDID_DDC2", - "xf86SetDDCproperties", - NULL -}; - -#ifdef XFree86LOADER -static const char *vbeSymbols[] = { - "VBEInit", - "vbeFree", - "vbeDoEDID", - NULL -}; - -static const char *vbeModeSymbols[] = { - "VBEExtendedInit", - "VBEGetVBEInfo", - "VBEGetModePool", - "VBEValidateModes", - "VBESetModeParameters", - "VBEGetVBEMode", - "VBESetVBEMode", - NULL -}; -#endif - -static const char *i2cSymbols[] = { - "xf86CreateI2CBusRec", - "xf86I2CBusInit", - NULL -}; - -static const char *shadowSymbols[] = { - "ShadowFBInit", - NULL -}; - -static const char *fbdevHWSymbols[] = { - "fbdevHWInit", - "fbdevHWUseBuildinMode", - - "fbdevHWGetVidmem", - - /* colormap */ - "fbdevHWLoadPaletteWeak", - - /* ScrnInfo hooks */ - "fbdevHWAdjustFrameWeak", - "fbdevHWEnterVT", - "fbdevHWLeaveVTWeak", - "fbdevHWModeInit", - "fbdevHWSave", - "fbdevHWSwitchModeWeak", - "fbdevHWValidModeWeak", - - "fbdevHWMapMMIO", - "fbdevHWMapVidmem", - - NULL -}; - -static const char *int10Symbols[] = { - "xf86FreeInt10", - "xf86InitInt10", - NULL -}; - - #ifdef XFree86LOADER static MODULESETUPPROTO(nvSetup); @@ -714,20 +597,6 @@ nvSetup(pointer module, pointer opts, int *errmaj, int *errmin) ); /* - * Modules that this driver always requires may be loaded here - * by calling LoadSubModule(). - */ - - /* - * Tell the loader about symbols from other modules that this module - * might refer to. - */ - LoaderRefSymLists(vgahwSymbols, xaaSymbols, fbSymbols, - ramdacSymbols, shadowSymbols, - i2cSymbols, ddcSymbols, vbeSymbols, - fbdevHWSymbols, int10Symbols, NULL); - - /* * The return value must be non-NULL on success even though there * is no TearDownProc. */ @@ -1285,11 +1154,9 @@ Bool NVI2CInit(ScrnInfoPtr pScrn) char *mod = "i2c"; if (xf86LoadSubModule(pScrn, mod)) { - xf86LoaderReqSymLists(i2cSymbols,NULL); mod = "ddc"; if(xf86LoadSubModule(pScrn, mod)) { - xf86LoaderReqSymLists(ddcSymbols, NULL); return NVDACi2cInit(pScrn); } } @@ -1388,7 +1255,6 @@ NVPreInit(ScrnInfoPtr pScrn, int flags) /* Initialize the card through int10 interface if needed */ if (xf86LoadSubModule(pScrn, "int10")) { - xf86LoaderReqSymLists(int10Symbols, NULL); #if !defined(__alpha__) && !defined(__powerpc__) xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Initializing int10\n"); pNv->pInt = xf86InitInt10(pNv->pEnt->index); @@ -1524,8 +1390,6 @@ NVPreInit(ScrnInfoPtr pScrn, int flags) return FALSE; } - xf86LoaderReqSymLists(vgahwSymbols, NULL); - /* * Allocate a vgaHWRec */ @@ -1594,7 +1458,6 @@ NVPreInit(ScrnInfoPtr pScrn, int flags) return FALSE; } - xf86LoaderReqSymLists(fbdevHWSymbols, NULL); if (!fbdevHWInit(pScrn, pNv->PciInfo, NULL)) { xf86FreeInt10(pNv->pInt); return FALSE; @@ -1702,7 +1565,6 @@ NVPreInit(ScrnInfoPtr pScrn, int flags) "enabled.\n"); return FALSE; } - xf86LoaderReqSymLists(vbeModeSymbols, NULL); pNv->pVbe = VBEExtendedInit(NULL, pNv->pEnt->index, SET_BIOS_SCRATCH | RESTORE_BIOS_SCRATCH); if (!pNv->pVbe) return FALSE; @@ -2034,8 +1896,6 @@ NVPreInit(ScrnInfoPtr pScrn, int flags) return FALSE; } - xf86LoaderReqSymLists(fbSymbols, NULL); - /* Load XAA if needed */ if (!pNv->NoAccel) { if (!xf86LoadSubModule(pScrn, "xaa")) { @@ -2043,7 +1903,6 @@ NVPreInit(ScrnInfoPtr pScrn, int flags) NVFreeRec(pScrn); return FALSE; } - xf86LoaderReqSymLists(xaaSymbols, NULL); } /* Load ramdac if needed */ @@ -2053,7 +1912,6 @@ NVPreInit(ScrnInfoPtr pScrn, int flags) NVFreeRec(pScrn); return FALSE; } - xf86LoaderReqSymLists(ramdacSymbols, NULL); } /* Load shadowfb if needed */ @@ -2063,7 +1921,6 @@ NVPreInit(ScrnInfoPtr pScrn, int flags) NVFreeRec(pScrn); return FALSE; } - xf86LoaderReqSymLists(shadowSymbols, NULL); } pNv->CurrentLayout.bitsPerPixel = pScrn->bitsPerPixel; diff --git a/src/riva_driver.c b/src/riva_driver.c index b021749..3540fe9 100644 --- a/src/riva_driver.c +++ b/src/riva_driver.c @@ -60,103 +60,6 @@ static void RivaRestore(ScrnInfoPtr pScrn); static Bool RivaModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode); -/* - * List of symbols from other modules that this module references. This - * list is used to tell the loader that it is OK for symbols here to be - * unresolved providing that it hasn't been told that they haven't been - * told that they are essential via a call to xf86LoaderReqSymbols() or - * xf86LoaderReqSymLists(). The purpose is this is to avoid warnings about - * unresolved symbols that are not required. - */ - -static const char *vgahwSymbols[] = { - "vgaHWUnmapMem", - "vgaHWDPMSSet", - "vgaHWFreeHWRec", - "vgaHWGetHWRec", - "vgaHWGetIndex", - "vgaHWInit", - "vgaHWMapMem", - "vgaHWProtect", - "vgaHWRestore", - "vgaHWSave", - "vgaHWSaveScreen", - NULL -}; - -static const char *fbSymbols[] = { - "fbPictureInit", - "fbScreenInit", - NULL -}; - -static const char *xaaSymbols[] = { - "XAAGetCopyROP", - "XAACreateInfoRec", - "XAADestroyInfoRec", - "XAAGetFallbackOps", - "XAAInit", - "XAAGetPatternROP", - NULL -}; - -static const char *ramdacSymbols[] = { - "xf86CreateCursorInfoRec", - "xf86DestroyCursorInfoRec", - "xf86InitCursor", - NULL -}; - -static const char *ddcSymbols[] = { - "xf86PrintEDID", - "xf86DoEDID_DDC2", - "xf86SetDDCproperties", - NULL -}; - -static const char *i2cSymbols[] = { - "xf86CreateI2CBusRec", - "xf86I2CBusInit", - NULL -}; - -static const char *shadowSymbols[] = { - "ShadowFBInit", - NULL -}; - -static const char *fbdevHWSymbols[] = { - "fbdevHWInit", - "fbdevHWUseBuildinMode", - - "fbdevHWGetVidmem", - - /* colormap */ - "fbdevHWLoadPaletteWeak", - - /* ScrnInfo hooks */ - "fbdevHWAdjustFrameWeak", - "fbdevHWEnterVT", - "fbdevHWLeaveVTWeak", - "fbdevHWModeInit", - "fbdevHWSave", - "fbdevHWSwitchModeWeak", - "fbdevHWValidModeWeak", - - "fbdevHWMapMMIO", - "fbdevHWMapVidmem", - - NULL -}; - -static const char *int10Symbols[] = { - "xf86FreeInt10", - "xf86InitInt10", - NULL -}; - - - typedef enum { OPTION_SW_CURSOR, OPTION_HW_CURSOR, @@ -412,11 +315,9 @@ Bool RivaI2CInit(ScrnInfoPtr pScrn) char *mod = "i2c"; if (xf86LoadSubModule(pScrn, mod)) { - xf86LoaderReqSymLists(i2cSymbols,NULL); mod = "ddc"; if(xf86LoadSubModule(pScrn, mod)) { - xf86LoaderReqSymLists(ddcSymbols, NULL); return RivaDACi2cInit(pScrn); } } @@ -489,7 +390,6 @@ RivaPreInit(ScrnInfoPtr pScrn, int flags) /* Initialize the card through int10 interface if needed */ if (xf86LoadSubModule(pScrn, "int10")) { - xf86LoaderReqSymLists(int10Symbols, NULL); #if !defined(__alpha__) xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Initializing int10\n"); pRiva->pInt = xf86InitInt10(pRiva->pEnt->index); @@ -575,8 +475,6 @@ RivaPreInit(ScrnInfoPtr pScrn, int flags) return FALSE; } - xf86LoaderReqSymLists(vgahwSymbols, NULL); - /* * Allocate a vgaHWRec */ @@ -643,7 +541,6 @@ RivaPreInit(ScrnInfoPtr pScrn, int flags) return FALSE; } - xf86LoaderReqSymLists(fbdevHWSymbols, NULL); if (!fbdevHWInit(pScrn, pRiva->PciInfo, NULL)) { xf86FreeInt10(pRiva->pInt); return FALSE; @@ -866,8 +763,6 @@ RivaPreInit(ScrnInfoPtr pScrn, int flags) return FALSE; } - xf86LoaderReqSymLists(fbSymbols, NULL); - /* Load XAA if needed */ if (!pRiva->NoAccel) { if (!xf86LoadSubModule(pScrn, "xaa")) { @@ -875,7 +770,6 @@ RivaPreInit(ScrnInfoPtr pScrn, int flags) RivaFreeRec(pScrn); return FALSE; } - xf86LoaderReqSymLists(xaaSymbols, NULL); } /* Load ramdac if needed */ @@ -885,7 +779,6 @@ RivaPreInit(ScrnInfoPtr pScrn, int flags) RivaFreeRec(pScrn); return FALSE; } - xf86LoaderReqSymLists(ramdacSymbols, NULL); } /* Load shadowfb if needed */ @@ -895,7 +788,6 @@ RivaPreInit(ScrnInfoPtr pScrn, int flags) RivaFreeRec(pScrn); return FALSE; } - xf86LoaderReqSymLists(shadowSymbols, NULL); } pRiva->CurrentLayout.bitsPerPixel = pScrn->bitsPerPixel; commit c8d6f7aa7c99a1b71289f8e8e07becc10f61f379 Author: Aaron Plattner <aplatt...@nvidia.com> Date: Fri May 15 16:24:57 2009 -0700 More chip names. Add support for the following previously unsupported chips: * 0x0658 - Quadro FX 380 * 0x0659 - Quadro FX 580 * 0x065C - Quadro FX 770M diff --git a/src/nv_driver.c b/src/nv_driver.c index 223ac8e..5f0a5b4 100644 --- a/src/nv_driver.c +++ b/src/nv_driver.c @@ -124,7 +124,7 @@ _X_EXPORT DriverRec NV = { #endif }; -/* Known cards as of 2008/08/26 */ +/* Known cards as of 2009/05/15 */ static SymTabRec NVKnownChipsets[] = { @@ -288,6 +288,7 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE0147, "GeForce 6700 XL" }, { 0x10DE0148, "GeForce Go 6600" }, { 0x10DE0149, "GeForce Go 6600 GT" }, + { 0x10DE014A, "Quadro NVS 440" }, { 0x10DE014C, "Quadro FX 550" }, { 0x10DE014D, "Quadro FX 550" }, { 0x10DE014E, "Quadro FX 540" }, @@ -322,6 +323,7 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE0099, "GeForce Go 7800 GTX" }, { 0x10DE009D, "Quadro FX 4500" }, + { 0x10DE01D0, "GeForce 7350 LE" }, { 0x10DE01D1, "GeForce 7300 LE" }, { 0x10DE01D3, "GeForce 7300 SE" }, { 0x10DE01D6, "GeForce Go 7200" }, @@ -335,6 +337,7 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE01DE, "Quadro FX 350" }, { 0x10DE01DF, "GeForce 7300 GS" }, + { 0x10DE0390, "GeForce 7650 GS" }, { 0x10DE0391, "GeForce 7600 GT" }, { 0x10DE0392, "GeForce 7600 GS" }, { 0x10DE0393, "GeForce 7300 GT" }, @@ -351,6 +354,10 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE0290, "GeForce 7900 GTX" }, { 0x10DE0291, "GeForce 7900 GT" }, { 0x10DE0292, "GeForce 7900 GS" }, + { 0x10DE0293, "GeForce 7950 GX2" }, + { 0x10DE0294, "GeForce 7950 GX2" }, + { 0x10DE0295, "GeForce 7950 GT"}, + { 0x10DE0297, "GeForce Go 7950 GTX" }, { 0x10DE0298, "GeForce Go 7900 GS" }, { 0x10DE0299, "GeForce Go 7900 GTX" }, { 0x10DE029A, "Quadro FX 2500M" }, @@ -364,8 +371,14 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE0241, "GeForce 6150 LE" }, { 0x10DE0242, "GeForce 6100" }, { 0x10DE0244, "GeForce Go 6150" }, + { 0x10DE0245, "Quadro NVS 210S / NVIDIA GeForce 6150LE" }, { 0x10DE0247, "GeForce Go 6100" }, + { 0x10DE03D0, "GeForce 6150SE" }, + { 0x10DE03D1, "GeForce 6100 nForce 405" }, + { 0x10DE03D2, "GeForce 6100 nForce 400" }, + { 0x10DE03D5, "GeForce 6100 nForce 420" }, + /*************** G8x ***************/ { 0x10DE0191, "GeForce 8800 GTX" }, { 0x10DE0193, "GeForce 8800 GTS" }, @@ -403,13 +416,23 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE042D, "Quadro FX 360M" }, { 0x10DE042E, "GeForce 9300M G" }, { 0x10DE042F, "Quadro NVS 290" }, + { 0x10DE05E0, "GeForce GTX 295" }, { 0x10DE05E1, "GeForce GTX 280" }, { 0x10DE05E2, "GeForce GTX 260" }, + { 0x10DE05E3, "GeForce GTX 285" }, + { 0x10DE05F9, "Quadro CX" }, + { 0x10DE05FD, "Quadro FX 5800" }, + { 0x10DE05FE, "Quadro FX 4800" }, + { 0x10DE05FF, "Quadro FX 3800" }, { 0x10DE0600, "GeForce 8800 GTS 512" }, + { 0x10DE0601, "GeForce 9800 GT" }, { 0x10DE0602, "GeForce 8800 GT" }, { 0x10DE0604, "GeForce 9800 GX2" }, + { 0x10DE0605, "GeForce 9800 GT" }, { 0x10DE0606, "GeForce 8800 GS" }, + { 0x10DE0608, "GeForce 9800M GTX" }, { 0x10DE0609, "GeForce 8800M GTS" }, + { 0x10DE060B, "GeForce 9800M GT" }, { 0x10DE060C, "GeForce 8800M GTX" }, { 0x10DE060D, "GeForce 8800 GS" }, { 0x10DE0610, "GeForce 9600 GSO" }, @@ -417,25 +440,49 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE0612, "GeForce 9800 GTX" }, { 0x10DE0613, "GeForce 9800 GTX+" }, { 0x10DE0614, "GeForce 9800 GT" }, + { 0x10DE0615, "GeForce GTS 250" }, + { 0x10DE0617, "GeForce 9800M GTX" }, { 0x10DE061A, "Quadro FX 3700" }, { 0x10DE061C, "Quadro FX 3600M" }, + { 0x10DE061E, "Quadro FX 3700M" }, { 0x10DE0622, "GeForce 9600 GT" }, { 0x10DE0623, "GeForce 9600 GS" }, + { 0x10DE0625, "GeForce 9600 GSO 512" }, + { 0x10DE0626, "GeForce GT 130" }, + { 0x10DE0627, "GeForce GT 140" }, { 0x10DE0628, "GeForce 9800M GTS" }, { 0x10DE062A, "GeForce 9700M GTS" }, + { 0x10DE062B, "GeForce 9800M GS" }, { 0x10DE062C, "GeForce 9800M GTS" }, + { 0x10DE0638, "Quadro FX 1800" }, + { 0x10DE063A, "Quadro FX 2700M" }, { 0x10DE0640, "GeForce 9500 GT" }, + { 0x10DE0641, "GeForce 9400 GT" }, + { 0x10DE0643, "GeForce 9500 GT" }, + { 0x10DE0646, "GeForce GT 120" }, { 0x10DE0647, "GeForce 9600M GT" }, { 0x10DE0648, "GeForce 9600M GS" }, { 0x10DE0649, "GeForce 9600M GT" }, + { 0x10DE064A, "GeForce 9700M GT" }, { 0x10DE064B, "GeForce 9500M G" }, + { 0x10DE064C, "GeForce 9650M GT" }, + { 0x10DE0656, "GeForce 9500 GT" }, + { 0x10DE0658, "Quadro FX 380" }, + { 0x10DE0659, "Quadro FX 580" }, + { 0x10DE065C, "Quadro FX 770M" }, + { 0x10DE06E0, "GeForce 9300 GE" }, { 0x10DE06E1, "GeForce 9300 GS" }, { 0x10DE06E4, "GeForce 8400 GS" }, { 0x10DE06E5, "GeForce 9300M GS" }, + { 0x10DE06E6, "GeForce G100" }, { 0x10DE06E8, "GeForce 9200M GS" }, { 0x10DE06E9, "GeForce 9300M GS" }, { 0x10DE06EA, "Quadro NVS 150M" }, { 0x10DE06EB, "Quadro NVS 160M" }, + { 0x10DE06F8, "Quadro NVS 420" }, + { 0x10DE06F9, "Quadro FX 370 LP" }, + { 0x10DE06FA, "Quadro NVS 450" }, + { 0x10DE06FD, "Quadro NVS 295" }, {-1, NULL} }; @@ -808,6 +855,7 @@ NVIsG80(int chipType) case 0x0620: case 0x0630: case 0x0640: + case 0x0650: case 0x06e0: case 0x06f0: return TRUE; commit 29acf7c970d12c1dfd7bf6c7a42fe2448aa7f3d7 Author: Yinan Shen <shenyn...@gmail.com> Date: Wed May 6 19:14:33 2009 -0700 G80: Fix incorrect I2C port access for ports above 3. diff --git a/src/g80_output.c b/src/g80_output.c index 420a73e..75bf7ba 100644 --- a/src/g80_output.c +++ b/src/g80_output.c @@ -217,8 +217,9 @@ fail: static CARD32 i2cAddr(const int port) { - const CARD32 base = (port > 3) ? 0x0000E1E0 : 0x0000E138; - return base + port * 0x18; + const CARD32 base = (port > 3) ? 0x0000E1D4 : 0x0000E138; + const CARD32 offset = (port > 3) ? 0x20 : 0x18; + return base + port * offset; } static void G80_I2CPutBits(I2CBusPtr b, int clock, int data) commit bf18cd4842c33df61b03c3d4e0f00e34485fb957 Author: Aaron Plattner <aplatt...@nvidia.com> Date: Tue May 5 01:29:08 2009 -0700 Fix a dumb typo in the chip name entry for the GeForce 9800 GTX+ diff --git a/src/nv_driver.c b/src/nv_driver.c index 20f96fb..223ac8e 100644 --- a/src/nv_driver.c +++ b/src/nv_driver.c @@ -415,7 +415,7 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE0610, "GeForce 9600 GSO" }, { 0x10DE0611, "GeForce 8800 GT" }, { 0x10DE0612, "GeForce 9800 GTX" }, - { 0x10DE0613, "GeForce 9800 GTK+" }, + { 0x10DE0613, "GeForce 9800 GTX+" }, { 0x10DE0614, "GeForce 9800 GT" }, { 0x10DE061A, "Quadro FX 3700" }, { 0x10DE061C, "Quadro FX 3600M" }, -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org