.gitignore | 75 ++++++++++++++++++--- ChangeLog | 185 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ Makefile.am | 12 ++- configure.ac | 17 ++-- debian/changelog | 11 ++- debian/control | 2 man/.gitignore | 2 man/Makefile.am | 41 +++++------ man/nv.man | 6 - src/g80_display.c | 103 +++++++++++++++++++++++++++++- src/g80_display.h | 1 src/g80_driver.c | 73 ++++++--------------- src/g80_output.c | 17 ++++ src/nv_driver.c | 55 +++++++++++++++- 14 files changed, 487 insertions(+), 113 deletions(-)
New commits: commit 62be6cd57e754b4f7e5e11111219e5e0c5329506 Author: Brice Goglin <[email protected]> Date: Tue Mar 9 07:19:22 2010 +0100 Prepare changelog for upload diff --git a/debian/changelog b/debian/changelog index 798cae0..93746cf 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -xserver-xorg-video-nv (1:2.1.17-1) UNRELEASED; urgency=low +xserver-xorg-video-nv (1:2.1.17-1) unstable; urgency=low [ Julien Cristau ] * Rename the build directory to not include DEB_BUILD_GNU_TYPE for no @@ -11,7 +11,7 @@ xserver-xorg-video-nv (1:2.1.17-1) UNRELEASED; urgency=low + Add support for ION boards, closes: #540500. * Bump Standards-Version to 3.8.4, no changes needed. - -- Brice Goglin <[email protected]> Tue, 09 Mar 2010 07:17:38 +0100 + -- Brice Goglin <[email protected]> Tue, 09 Mar 2010 07:19:12 +0100 xserver-xorg-video-nv (1:2.1.15-1) experimental; urgency=low commit e0071458ddecee1853a1d44a0688ab8f925d50e3 Author: Brice Goglin <[email protected]> Date: Tue Mar 9 07:19:02 2010 +0100 Bump Standards-Version to 3.8.4 diff --git a/debian/changelog b/debian/changelog index 6a3d9af..798cae0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,8 +9,9 @@ xserver-xorg-video-nv (1:2.1.17-1) UNRELEASED; urgency=low * New upstream release. + Fix support for Xserver 1.7, closes: #568170. + Add support for ION boards, closes: #540500. + * Bump Standards-Version to 3.8.4, no changes needed. - -- Julien Cristau <[email protected]> Sat, 23 Jan 2010 02:12:23 +0100 + -- Brice Goglin <[email protected]> Tue, 09 Mar 2010 07:17:38 +0100 xserver-xorg-video-nv (1:2.1.15-1) experimental; urgency=low diff --git a/debian/control b/debian/control index 4b47a0c..0dcbb26 100644 --- a/debian/control +++ b/debian/control @@ -17,7 +17,7 @@ Build-Depends: automake, libtool, xutils-dev -Standards-Version: 3.8.3 +Standards-Version: 3.8.4 Vcs-Git: git://git.debian.org/git/pkg-xorg/driver/xserver-xorg-video-nv Vcs-Browser: http://git.debian.org/?p=pkg-xorg/driver/xserver-xorg-video-nv.git commit 9dc66e251fb094f745f2c2ecc46d0dc278e4fabc Author: Brice Goglin <[email protected]> Date: Tue Mar 9 07:17:00 2010 +0100 New upstream release diff --git a/ChangeLog b/ChangeLog index f055e22..4dfa13f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,188 @@ +commit 71321d0ddecf1ab5327c754353d31db5d1f3c6bf +Author: Aaron Plattner <[email protected]> +Date: Mon Mar 8 13:34:20 2010 -0800 + + nv 2.1.17 + + Signed-off-by: Aaron Plattner <[email protected]> + +commit 467f0f3890622e57607b103b07e4f265cf999b1e +Author: Aaron Plattner <[email protected]> +Date: Mon Mar 8 13:16:26 2010 -0800 + + More products + + Signed-off-by: Aaron Plattner <[email protected]> + Reviewed-by: Andy Ritger <[email protected]> + +commit e34a53167d6a142949b3e0258dc336dc297368aa +Author: Aaron Plattner <[email protected]> +Date: Fri Mar 5 14:27:31 2010 -0800 + + G80: Cast register reads before shifting them to avoid truncation to 32 bits. + + Signed-off-by: Aaron Plattner <[email protected]> + +commit 9378ecd34ad71083602232b56e8810d6cd39b518 +Author: Aaron Plattner <[email protected]> +Date: Wed Mar 3 20:29:55 2010 -0800 + + Bug #19545: Add support for MCP7x-based integrated GPUs. + + Based in part on an idea from Ben Skeggs. + + Signed-off-by: Aaron Plattner <[email protected]> + Signed-off-by: Andy Ritger <[email protected]> + Reviewed-by: Christian Zander <[email protected]> + +commit 49349f6e47b7315088a80789f134895677f57287 +Author: Aaron Plattner <[email protected]> +Date: Tue Mar 2 12:53:54 2010 -0800 + + G80: Log unrecognized outputs + + Signed-off-by: Aaron Plattner <[email protected]> + Reviewed-by: Andy Ritger <[email protected]> + +commit 7b01fc8f4ba1182370980f54a34bdb959e291e02 +Author: Aaron Plattner <[email protected]> +Date: Mon Mar 1 14:26:51 2010 -0800 + + Bug #26612: Separate LUTs per output. + + Wire up the RandR 1.2 gamma_set hook. Call it from G80SetPalette like the Intel + driver does. + + Signed-off-by: Aaron Plattner <[email protected]> + Signed-off-by: Andy Ritger <[email protected]> + Reviewed-by: Christian Zander <[email protected]> + +commit e6f4c9c6379b20b9fee50489d6afd05867c35967 +Author: Alan Coopersmith <[email protected]> +Date: Fri Jan 15 13:46:50 2010 -0800 + + Update Sun license notices to current X.Org standard form + + Signed-off-by: Alan Coopersmith <[email protected]> + +commit 893cee2aeda8074de3d5c99df90e23d6ec2217d2 +Author: Gaetan Nadon <[email protected]> +Date: Tue Dec 15 22:01:02 2009 -0500 + + configure.ac: remove unused sdkdir=$(pkg-config...) statement + + The sdkdir variable isn't use, so remove the statement. + + Acked-by: Dan Nicholson <[email protected]> + + Signed-off-by: Gaetan Nadon <[email protected]> + +commit 2b69212ff84e8b815d6915dc81644280cc92cbe7 +Author: Aaron Plattner <[email protected]> +Date: Tue Dec 15 10:48:33 2009 -0800 + + nv 2.1.16 + +commit 99ed1c83f78b3b947d95aa9f0d3b5555d9a2a769 +Author: Aaron Plattner <[email protected]> +Date: Tue Dec 15 10:17:27 2009 -0800 + + New board names + + Signed-off-by: Aaron Plattner <[email protected]> + +commit 5eb01497139ead89c7262a6055a4fd293c5beb3e +Author: Aaron Plattner <[email protected]> +Date: Tue Dec 15 10:16:51 2009 -0800 + + Remove an unnecessary (and typo'd) gitignore comment + +commit 85638b2f0acc418aa77241dd123f7de76ea3ce8f +Author: Adam Jackson <[email protected]> +Date: Tue Dec 15 16:42:15 2009 -0500 + + g80: Add a no-op gamma hook so we don't crash on 1.7 servers + + Signed-off-by: Adam Jackson <[email protected]> + +commit d3ba2a45ed21f60667716be0cdcb6a7888263ffd +Author: Gaetan Nadon <[email protected]> +Date: Mon Nov 23 09:25:05 2009 -0500 + + Makefile.am: add ChangeLog and INSTALL on MAINTAINERCLEANFILES + + Now that the INSTALL file is generated. + Allows running make maintainer-clean. + +commit 8664df401ff26718608e0bfc319514387d232771 +Author: Gaetan Nadon <[email protected]> +Date: Wed Oct 28 14:41:41 2009 -0400 + + INSTALL, NEWS, README or AUTHORS files are missing/incorrect #24206 + + Automake 'foreign' option is specified in configure.ac. + Remove from Makefile.am + +commit bbb016dfdca06c34bdc163ee772284a5fc1f1139 +Author: Gaetan Nadon <[email protected]> +Date: Wed Oct 28 14:09:09 2009 -0400 + + INSTALL, NEWS, README or AUTHORS files are missing/incorrect #24206 + + Add missing INSTALL file. Use standard GNU file on building tarball + README may have been updated + Remove AUTHORS file as it is empty and no content available yet. + Remove NEWS file as it is empty and no content available yet. + +commit ee24fd1773268e0a593c7de760bafa282f3489a2 +Author: Gaetan Nadon <[email protected]> +Date: Mon Oct 26 12:54:21 2009 -0400 + + Several driver modules do not have a ChangeLog target in Makefile.am #23814 + + The git generated ChangeLog replaces the hand written one. + Update configure.ac to xorg-macros level 1.3. + Use XORG_DEFAULT_OPTIONS which replaces four XORG_* macros + Update Makefile.am to add ChangeLog target if missing + Remove ChangeLog from EXTRA_DIST or *CLEAN variables + This is a pre-req for the INSTALL_CMD + +commit 57c505852bcf38dc3a3e6a9d603e4a8fd9ed3b80 +Author: Gaetan Nadon <[email protected]> +Date: Thu Oct 22 13:02:49 2009 -0400 + + .gitignore: use common defaults with custom section # 24239 + + Using common defaults will reduce errors and maintenance. + Only the very small or inexistent custom section need periodic maintenance + when the structure of the component changes. Do not edit defaults. + +commit f07ed67a9e14ddc42a96756fbe69cf927c308d1c +Author: Gaetan Nadon <[email protected]> +Date: Thu Oct 22 12:34:17 2009 -0400 + + .gitignore: use common defaults with custom section # 24239 + + Using common defaults will reduce errors and maintenance. + Only the very small or inexistent custom section need periodic maintenance + when the structure of the component changes. Do not edit defaults. + +commit b30ec386abb7219be50c7aa42db9f08f12fe5c8c +Author: Aaron Plattner <[email protected]> +Date: Tue Nov 10 12:17:23 2009 -0800 + + More new boards + + Signed-off-by: Aaron Plattner <[email protected]> + +commit f050096ad3c9ef4484b69c22217efe0557f16e35 +Author: Aaron Plattner <[email protected]> +Date: Mon Nov 9 16:16:19 2009 -0800 + + New boards + + Signed-off-by: Aaron Plattner <[email protected]> + commit 0250f0d7ebe30368c5a63809ed1f58673493627c Author: Peter Hutterer <[email protected]> Date: Fri Sep 11 12:24:18 2009 +1000 diff --git a/debian/changelog b/debian/changelog index b8976dd..6a3d9af 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,15 @@ -xserver-xorg-video-nv (1:2.1.15-2) UNRELEASED; urgency=low +xserver-xorg-video-nv (1:2.1.17-1) UNRELEASED; urgency=low + [ Julien Cristau ] * Rename the build directory to not include DEB_BUILD_GNU_TYPE for no good reason. Thanks, Colin Watson! * Remove myself from Uploaders + [ Brice Goglin ] + * New upstream release. + + Fix support for Xserver 1.7, closes: #568170. + + Add support for ION boards, closes: #540500. + -- Julien Cristau <[email protected]> Sat, 23 Jan 2010 02:12:23 +0100 xserver-xorg-video-nv (1:2.1.15-1) experimental; urgency=low commit 71321d0ddecf1ab5327c754353d31db5d1f3c6bf Author: Aaron Plattner <[email protected]> Date: Mon Mar 8 13:34:20 2010 -0800 nv 2.1.17 Signed-off-by: Aaron Plattner <[email protected]> diff --git a/configure.ac b/configure.ac index 6b997f2..d717805 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-nv], - 2.1.16, + 2.1.17, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-nv) commit 467f0f3890622e57607b103b07e4f265cf999b1e Author: Aaron Plattner <[email protected]> Date: Mon Mar 8 13:16:26 2010 -0800 More products Signed-off-by: Aaron Plattner <[email protected]> Reviewed-by: Andy Ritger <[email protected]> diff --git a/man/nv.man b/man/nv.man index 9bbe5cd..d7d8ae9 100644 --- a/man/nv.man +++ b/man/nv.man @@ -59,8 +59,8 @@ NV40, NV41, NV43, NV44, NV45, C51 .B GeForce 7XXX G70, G71, G72, G73 .TP 22 -.B GeForce 8XXX, GeForce 9XXX, GeForce G, ION -G80, G84, G86, G92, G94, G96, G98, GT215, GT216, GT218, MCP79, MCP7A +.B GeForce 8XXX, GeForce 9XXX, nForce 7, GeForce G, ION +G8x, G9x, GT21x, MCP7x .TP 22 .B GeForce GTX GT200 diff --git a/src/nv_driver.c b/src/nv_driver.c index 707e994..31fe78b 100644 --- a/src/nv_driver.c +++ b/src/nv_driver.c @@ -125,7 +125,7 @@ _X_EXPORT DriverRec NV = { #endif }; -/* Known cards as of 2010/03/03 */ +/* Known cards as of 2010/03/08 */ static SymTabRec NVKnownChipsets[] = { @@ -496,6 +496,16 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE06F9, "Quadro FX 370 LP" }, { 0x10DE06FA, "Quadro NVS 450" }, { 0x10DE06FD, "Quadro NVS 295" }, + { 0x10DE0847, "GeForce 9100" }, + { 0x10DE0848, "GeForce 8300" }, + { 0x10DE0849, "GeForce 8200" }, + { 0x10DE084A, "nForce 730a" }, + { 0x10DE084B, "GeForce 9200" }, + { 0x10DE084C, "nForce 980a/780a SLI" }, + { 0x10DE084D, "nForce 750a SLI" }, + { 0x10DE084F, "GeForce 8100 / nForce 720a" }, + { 0x10DE0844, "GeForce 9100M G" }, + { 0x10DE0845, "GeForce 8200M G" }, { 0x10DE0861, "GeForce 9400" }, { 0x10DE0862, "GeForce 9400M G" }, { 0x10DE0863, "GeForce 9400M" }, @@ -763,6 +773,8 @@ NVIsG80(int chipType) case 0x0650: case 0x06e0: case 0x06f0: + case 0x0840: + case 0x0850: case 0x0860: case 0x0870: case 0x0a20: commit e34a53167d6a142949b3e0258dc336dc297368aa Author: Aaron Plattner <[email protected]> Date: Fri Mar 5 14:27:31 2010 -0800 G80: Cast register reads before shifting them to avoid truncation to 32 bits. Signed-off-by: Aaron Plattner <[email protected]> diff --git a/src/g80_driver.c b/src/g80_driver.c index 324e180..abdb37e 100644 --- a/src/g80_driver.c +++ b/src/g80_driver.c @@ -615,8 +615,8 @@ G80InitHW(ScrnInfoPtr pScrn) pNv->reg[0x00706460/4] = 0x0000502d; pNv->reg[0x00706474/4] = 0x00010000; if(pNv->architecture == 0xaa || pNv->architecture == 0xac) { - uint64_t base = pNv->reg[0x00100E10/4] << 12; - size_t size = pNv->reg[0x00100E14/4] << 12; + uint64_t base = (uint64_t)pNv->reg[0x00100E10/4] << 12; + size_t size = (uint64_t)pNv->reg[0x00100E14/4] << 12; uint64_t limit = base + size - G80_RESERVED_VIDMEM; pNv->reg[0x00706480/4] = 0x1a003d; commit 9378ecd34ad71083602232b56e8810d6cd39b518 Author: Aaron Plattner <[email protected]> Date: Wed Mar 3 20:29:55 2010 -0800 Bug #19545: Add support for MCP7x-based integrated GPUs. Based in part on an idea from Ben Skeggs. Signed-off-by: Aaron Plattner <[email protected]> Signed-off-by: Andy Ritger <[email protected]> Reviewed-by: Christian Zander <[email protected]> diff --git a/man/nv.man b/man/nv.man index e37782d..9bbe5cd 100644 --- a/man/nv.man +++ b/man/nv.man @@ -59,8 +59,8 @@ NV40, NV41, NV43, NV44, NV45, C51 .B GeForce 7XXX G70, G71, G72, G73 .TP 22 -.B GeForce 8XXX, GeForce 9XXX -G80, G84, G86, G92, G94, G96, G98 +.B GeForce 8XXX, GeForce 9XXX, GeForce G, ION +G80, G84, G86, G92, G94, G96, G98, GT215, GT216, GT218, MCP79, MCP7A .TP 22 .B GeForce GTX GT200 @@ -197,7 +197,7 @@ Authors include: David McKay, Jarno Paananen, Chas Inman, Dave Schmenk, Mark Vojkovich, Aaron Plattner .SH COPYRIGHT .LP -Copyright (c) 2003 - 2008 NVIDIA, Corporation +Copyright (c) 2003-2008,2010 NVIDIA Corporation .LP Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/src/g80_driver.c b/src/g80_driver.c index 8ea45af..324e180 100644 --- a/src/g80_driver.c +++ b/src/g80_driver.c @@ -614,9 +614,20 @@ G80InitHW(ScrnInfoPtr pScrn) pNv->reg[0x00706454/4] = 0x00010000; pNv->reg[0x00706460/4] = 0x0000502d; pNv->reg[0x00706474/4] = 0x00010000; - pNv->reg[0x00706480/4] = 0x0019003d; - pNv->reg[0x00706484/4] = (pNv->videoRam << 10) - G80_RESERVED_VIDMEM; - pNv->reg[0x00706494/4] = 0x00010000; + if(pNv->architecture == 0xaa || pNv->architecture == 0xac) { + uint64_t base = pNv->reg[0x00100E10/4] << 12; + size_t size = pNv->reg[0x00100E14/4] << 12; + uint64_t limit = base + size - G80_RESERVED_VIDMEM; + + pNv->reg[0x00706480/4] = 0x1a003d; + pNv->reg[0x00706484/4] = limit; + pNv->reg[0x00706488/4] = base; + pNv->reg[0x0070648c/4] = base >> 32 | ((limit >> 8) & 0xff000000); + } else { + pNv->reg[0x00706480/4] = 0x0019003d; + pNv->reg[0x00706484/4] = (pNv->videoRam << 10) - G80_RESERVED_VIDMEM; + pNv->reg[0x00706494/4] = 0x00010000; + } pNv->reg[0x007064a0/4] = 0x0019003d; pNv->reg[0x007064a4/4] = bar0_pramin + 0x1100f; pNv->reg[0x007064a8/4] = bar0_pramin + 0x11000; diff --git a/src/nv_driver.c b/src/nv_driver.c index 67dc0cd..707e994 100644 --- a/src/nv_driver.c +++ b/src/nv_driver.c @@ -1,4 +1,5 @@ /* + * Copyright 2010 NVIDIA Corporation * Copyright 1996-1997 David J. McKay * * Permission is hereby granted, free of charge, to any person obtaining a @@ -124,7 +125,7 @@ _X_EXPORT DriverRec NV = { #endif }; -/* Known cards as of 2009/05/15 */ +/* Known cards as of 2010/03/03 */ static SymTabRec NVKnownChipsets[] = { @@ -495,6 +496,15 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE06F9, "Quadro FX 370 LP" }, { 0x10DE06FA, "Quadro NVS 450" }, { 0x10DE06FD, "Quadro NVS 295" }, + { 0x10DE0861, "GeForce 9400" }, + { 0x10DE0862, "GeForce 9400M G" }, + { 0x10DE0863, "GeForce 9400M" }, + { 0x10DE086C, "GeForce 9300 / nForce 730i" }, + { 0x10DE0872, "GeForce G102M" }, + { 0x10DE0873, "GeForce G102M" }, + { 0x10DE087A, "GeForce 9400" }, + { 0x10DE087D, "ION" }, + { 0x10DE087F, "ION LE" }, { 0x10DE0A20, "GeForce GT 220" }, { 0x10DE0A23, "GeForce 210" }, { 0x10DE0A2A, "GeForce GT 230M" }, @@ -753,6 +763,8 @@ NVIsG80(int chipType) case 0x0650: case 0x06e0: case 0x06f0: + case 0x0860: + case 0x0870: case 0x0a20: case 0x0a30: case 0x0a60: commit 49349f6e47b7315088a80789f134895677f57287 Author: Aaron Plattner <[email protected]> Date: Tue Mar 2 12:53:54 2010 -0800 G80: Log unrecognized outputs Signed-off-by: Aaron Plattner <[email protected]> Reviewed-by: Andy Ritger <[email protected]> diff --git a/src/g80_output.c b/src/g80_output.c index b2d8b07..887208b 100644 --- a/src/g80_output.c +++ b/src/g80_output.c @@ -106,9 +106,13 @@ static Bool G80ReadPortMapping(int scrnIndex, G80Ptr pNv) port = (b >> 4) & 0xf; or = ffs((b >> 24) & 0xf) - 1; - if(b & 0x300000) + if(b & 0x300000) { /* Can't handle this type of output yet */ + xf86DrvMsg(scrnIndex, X_INFO, + "Ignoring unsupported external output type %d at output " + "%d\n", type, or); continue; + } if(type == 0xe) break; @@ -140,7 +144,8 @@ static Bool G80ReadPortMapping(int scrnIndex, G80Ptr pNv) pNv->i2cMap[port].dac = or; break; case 1: /* TV */ - /* Ignore TVs */ + xf86DrvMsg(scrnIndex, X_INFO, + "Ignoring unsupported TV output %d\n", or); break; case 2: /* TMDS */ @@ -200,7 +205,15 @@ static Bool G80ReadPortMapping(int scrnIndex, G80Ptr pNv) break; + case 6: /* DisplayPort */ + xf86DrvMsg(scrnIndex, X_INFO, + "Ignoring unsupported DisplayPort output %d\n", or); + break; + default: + xf86DrvMsg(scrnIndex, X_INFO, + "Ignoring unsupported output type %d at port %d\n", + type, or); break; } } commit 7b01fc8f4ba1182370980f54a34bdb959e291e02 Author: Aaron Plattner <[email protected]> Date: Mon Mar 1 14:26:51 2010 -0800 Bug #26612: Separate LUTs per output. Wire up the RandR 1.2 gamma_set hook. Call it from G80SetPalette like the Intel driver does. Signed-off-by: Aaron Plattner <[email protected]> Signed-off-by: Andy Ritger <[email protected]> Reviewed-by: Christian Zander <[email protected]> diff --git a/src/g80_display.c b/src/g80_display.c index 0cb9860..8c8e5bd 100644 --- a/src/g80_display.c +++ b/src/g80_display.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007 NVIDIA, Corporation + * Copyright (c) 2007,2010 NVIDIA Corporation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the @@ -42,6 +42,8 @@ typedef struct G80CrtcPrivRec { Bool cursorVisible; Bool skipModeFixup; Bool dither; + /* Look-up table values to be set when the CRTC is enabled */ + uint16_t lut_r[256], lut_g[256], lut_b[256]; } G80CrtcPrivRec, *G80CrtcPrivPtr; static void G80CrtcShowHideCursor(xf86CrtcPtr crtc, Bool show, Bool update); @@ -488,7 +490,7 @@ G80CrtcBlankScreen(xf86CrtcPtr crtc, Bool blank) if(pPriv->cursorVisible) G80CrtcShowHideCursor(crtc, TRUE, FALSE); C(0x00000840 + headOff, pScrn->depth == 8 ? 0x80000000 : 0xc0000000); - C(0x00000844 + headOff, (pNv->videoRam * 1024 - 0x5000) >> 8); + C(0x00000844 + headOff, (pNv->videoRam * 1024 - 0x5000 - 0x1000 * pPriv->head) >> 8); if(pNv->architecture != 0x50) C(0x0000085C + headOff, 1); C(0x00000874 + headOff, 1); @@ -646,9 +648,98 @@ G80CrtcCommit(xf86CrtcPtr crtc) } static void -G80DispGammaSet(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue, - int size) +G80CrtcGammaSet(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue, + int size) { + ScrnInfoPtr pScrn = crtc->scrn; + G80Ptr pNv = G80PTR(pScrn); + G80CrtcPrivPtr pPriv = crtc->driver_private; + int i; + volatile struct { + uint16_t red, green, blue, unused; + } *lut = (void*)&pNv->mem[pNv->videoRam * 1024 - 0x5000 - 0x1000 * pPriv->head]; + + assert(size == 256); + + for(i = 0; i < size; i++) { + pPriv->lut_r[i] = lut[i].red = red[i] >> 2; + pPriv->lut_g[i] = lut[i].green = green[i] >> 2; + pPriv->lut_b[i] = lut[i].blue = blue[i] >> 2; + } + + lut[256] = lut[255]; +} + +void +G80LoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors, + VisualPtr pVisual) +{ + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); + int i, j, index; + int p; + uint16_t lut_r[256], lut_g[256], lut_b[256]; + + for(p = 0; p < xf86_config->num_crtc; p++) { + xf86CrtcPtr crtc = xf86_config->crtc[p]; + G80CrtcPrivPtr pPriv = crtc->driver_private; + + /* Initialize to the old lookup table values. */ + for(i = 0; i < 256; i++) { + lut_r[i] = pPriv->lut_r[i] << 2; + lut_g[i] = pPriv->lut_g[i] << 2; + lut_b[i] = pPriv->lut_b[i] << 2; + } + + switch(pScrn->depth) { + case 15: + for(i = 0; i < numColors; i++) { + index = indices[i]; + for(j = 0; j < 8; j++) { + lut_r[index * 8 + j] = + colors[index].red << 8; + lut_g[index * 8 + j] = + colors[index].green << 8; + lut_b[index * 8 + j] = + colors[index].blue << 8; + } + } + break; + case 16: + for(i = 0; i < numColors; i++) { + index = indices[i]; + + if(index <= 31) { + for(j = 0; j < 8; j++) { + lut_r[index * 8 + j] = + colors[index].red << 8; + lut_b[index * 8 + j] = + colors[index].blue << 8; + } + } + + for(j = 0; j < 4; j++) { + lut_g[index * 4 + j] = + colors[index].green << 8; + } + } + break; + default: + for(i = 0; i < numColors; i++) { + index = indices[i]; + lut_r[index] = colors[index].red << 8; + lut_g[index] = colors[index].green << 8; + lut_b[index] = colors[index].blue << 8; + } + break; + } + + /* Make the change through RandR */ +#ifdef RANDR_12_INTERFACE + RRCrtcGammaSet(crtc->randr_crtc, lut_r, lut_g, lut_b); +#else + crtc->funcs->gamma_set(crtc, lut_r, lut_g, lut_b, 256); +#endif + } } static const xf86CrtcFuncsRec g80_crtc_funcs = { @@ -660,7 +751,7 @@ static const xf86CrtcFuncsRec g80_crtc_funcs = { .mode_fixup = G80CrtcModeFixup, .prepare = G80CrtcPrepare, .mode_set = G80CrtcModeSet, - .gamma_set = G80DispGammaSet, + .gamma_set = G80CrtcGammaSet, .commit = G80CrtcCommit, .shadow_create = NULL, .shadow_destroy = NULL, diff --git a/src/g80_display.h b/src/g80_display.h index 2031fed..43c6e12 100644 --- a/src/g80_display.h +++ b/src/g80_display.h @@ -22,5 +22,6 @@ void G80CrtcSetCursorPosition(xf86CrtcPtr, int x, int y); void G80CrtcSkipModeFixup(xf86CrtcPtr); void G80CrtcSetDither(xf86CrtcPtr, Bool dither, Bool update); void G80CrtcSetScale(xf86CrtcPtr, DisplayModePtr, enum G80ScaleMode); +void G80LoadPalette(ScrnInfoPtr, int numColors, int *indices, LOCO *, VisualPtr); void G80DispCreateCrtcs(ScrnInfoPtr pScrn); diff --git a/src/g80_driver.c b/src/g80_driver.c index 13e417a..8ea45af 100644 --- a/src/g80_driver.c +++ b/src/g80_driver.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007 NVIDIA, Corporation + * Copyright (c) 2007,2010 NVIDIA Corporation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the @@ -57,7 +57,7 @@ #include "g80_xaa.h" #define G80_REG_SIZE (1024 * 1024 * 16) -#define G80_RESERVED_VIDMEM 0xd000 +#define G80_RESERVED_VIDMEM 0xe000 typedef enum { OPTION_HW_CURSOR, @@ -630,7 +630,7 @@ G80InitHW(ScrnInfoPtr pScrn) pNv->reg[0x00003224/4] = 0x000f0078; pNv->reg[0x0000322c/4] = 0x00000644; - pNv->reg[0x00003234/4] = G80_RESERVED_VIDMEM - 0x5001; + pNv->reg[0x00003234/4] = G80_RESERVED_VIDMEM - 0x6001; pNv->reg[0x00003254/4] = 0x00000001; pNv->reg[0x00002210/4] = 0x1c001000; @@ -655,7 +655,7 @@ G80InitHW(ScrnInfoPtr pScrn) pNv->dmaPut = 0; pNv->dmaCurrent = SKIPS; - pNv->dmaMax = (G80_RESERVED_VIDMEM - 0x5000) / 4 - 2; + pNv->dmaMax = (G80_RESERVED_VIDMEM - 0x6000) / 4 - 2; pNv->dmaFree = pNv->dmaMax - pNv->dmaCurrent; G80DmaStart(pNv, 0, 1); @@ -726,48 +726,6 @@ G80InitHW(ScrnInfoPtr pScrn) pNv->currentRop = ~0; /* Set to something invalid */ } -#define DEPTH_SHIFT(val, w) ((val << (8 - w)) | (val >> ((w << 1) - 8))) -#define COLOR(c) (unsigned int)(0x3fff * ((c)/255.0)) -static void -G80LoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors, - VisualPtr pVisual) -{ - G80Ptr pNv = G80PTR(pScrn); - int i, index; - volatile struct { - unsigned short red, green, blue, unused; - } *lut = (void*)&pNv->mem[pNv->videoRam * 1024 - 0x5000]; - - switch(pScrn->depth) { - case 15: - for(i = 0; i < numColors; i++) { - index = indices[i]; - lut[DEPTH_SHIFT(index, 5)].red = COLOR(colors[index].red); - lut[DEPTH_SHIFT(index, 5)].green = COLOR(colors[index].green); - lut[DEPTH_SHIFT(index, 5)].blue = COLOR(colors[index].blue); - } - break; - case 16: - for(i = 0; i < numColors; i++) { - index = indices[i]; - lut[DEPTH_SHIFT(index, 6)].green = COLOR(colors[index].green); - if(index < 32) { - lut[DEPTH_SHIFT(index, 5)].red = COLOR(colors[index].red); - lut[DEPTH_SHIFT(index, 5)].blue = COLOR(colors[index].blue); - } - } - break; - default: - for(i = 0; i < numColors; i++) { - index = indices[i]; - lut[index].red = COLOR(colors[index].red); - lut[index].green = COLOR(colors[index].green); - lut[index].blue = COLOR(colors[index].blue); - } - break; - } -} - static Bool G80ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) { @@ -866,6 +824,9 @@ G80ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) Must precede creation of the default colormap */ miDCInitialize(pScreen, xf86GetPointerScreenFuncs()); + if(!xf86CrtcScreenInit(pScreen)) + return FALSE; + /* Initialize default colormap */ if(!miCreateDefColormap(pScreen)) return FALSE; @@ -909,9 +870,6 @@ G80ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) pNv->BlockHandler = pScreen->BlockHandler; pScreen->BlockHandler = G80BlockHandler; - if(!xf86CrtcScreenInit(pScreen)) - return FALSE; - return TRUE; } commit e6f4c9c6379b20b9fee50489d6afd05867c35967 Author: Alan Coopersmith <[email protected]> Date: Fri Jan 15 13:46:50 2010 -0800 Update Sun license notices to current X.Org standard form Signed-off-by: Alan Coopersmith <[email protected]> diff --git a/man/Makefile.am b/man/Makefile.am index f0eb29b..8f2454b 100644 --- a/man/Makefile.am +++ b/man/Makefile.am @@ -1,27 +1,24 @@ # # Copyright 2005 Sun Microsystems, Inc. All rights reserved. -# -# Permission to use, copy, modify, distribute, and sell this software and its -# documentation for any purpose is hereby granted without fee, provided that -# the above copyright notice appear in all copies and that both that -# copyright notice and this permission notice appear in supporting -# documentation. -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -# IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR -# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -# OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the copyright holders shall -# not be used in advertising or otherwise to promote the sale, use or -# other dealings in this Software without prior written authorization -# from the copyright holders. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice (including the next +# paragraph) shall be included in all copies or substantial portions of the +# Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. # drivermandir = $(DRIVER_MAN_DIR) commit 893cee2aeda8074de3d5c99df90e23d6ec2217d2 Author: Gaetan Nadon <[email protected]> Date: Tue Dec 15 22:01:02 2009 -0500 configure.ac: remove unused sdkdir=$(pkg-config...) statement The sdkdir variable isn't use, so remove the statement. Acked-by: Dan Nicholson <[email protected]> Signed-off-by: Gaetan Nadon <[email protected]> diff --git a/configure.ac b/configure.ac index bdd9f08..6b997f2 100644 --- a/configure.ac +++ b/configure.ac @@ -72,7 +72,6 @@ PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1], HAVE_XEXTPROTO_71="yes"; AC_DEFINE(HAVE_XEXTPROTO_71, 1, [xextproto 7.1 available]), HAVE_XEXTPROTO_71="no") AM_CONDITIONAL(HAVE_XEXTPROTO_71, [ test "$HAVE_XEXTPROTO_71" = "yes" ]) -sdkdir=$(pkg-config --variable=sdkdir xorg-server) # Checks for libraries. commit 2b69212ff84e8b815d6915dc81644280cc92cbe7 Author: Aaron Plattner <[email protected]> Date: Tue Dec 15 10:48:33 2009 -0800 nv 2.1.16 diff --git a/configure.ac b/configure.ac index 1947f4d..bdd9f08 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-nv], - 2.1.15, + 2.1.16, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-nv) commit 99ed1c83f78b3b947d95aa9f0d3b5555d9a2a769 Author: Aaron Plattner <[email protected]> Date: Tue Dec 15 10:17:27 2009 -0800 New board names Signed-off-by: Aaron Plattner <[email protected]> diff --git a/src/nv_driver.c b/src/nv_driver.c index 7e6b861..67dc0cd 100644 --- a/src/nv_driver.c +++ b/src/nv_driver.c @@ -420,6 +420,8 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE05E1, "GeForce GTX 280" }, { 0x10DE05E2, "GeForce GTX 260" }, { 0x10DE05E3, "GeForce GTX 285" }, + { 0x10DE05E6, "GeForce GTX 275" }, + { 0x10DE05EB, "GeForce GTX 295" }, { 0x10DE05F9, "Quadro CX" }, { 0x10DE05FD, "Quadro FX 5800" }, { 0x10DE05FE, "Quadro FX 4800" }, @@ -430,8 +432,10 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE0604, "GeForce 9800 GX2" }, { 0x10DE0605, "GeForce 9800 GT" }, { 0x10DE0606, "GeForce 8800 GS" }, + { 0x10DE0607, "GeForce GTS 240" }, { 0x10DE0608, "GeForce 9800M GTX" }, { 0x10DE0609, "GeForce 8800M GTS" }, + { 0x10DE060A, "GeForce GTX 280M" }, { 0x10DE060B, "GeForce 9800M GT" }, { 0x10DE060C, "GeForce 8800M GTX" }, { 0x10DE060D, "GeForce 8800 GS" }, @@ -442,9 +446,12 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE0614, "GeForce 9800 GT" }, { 0x10DE0615, "GeForce GTS 250" }, { 0x10DE0617, "GeForce 9800M GTX" }, + { 0x10DE0618, "GeForce GTX 260M" }, { 0x10DE061A, "Quadro FX 3700" }, { 0x10DE061C, "Quadro FX 3600M" }, + { 0x10DE061D, "Quadro FX 2800M" }, { 0x10DE061E, "Quadro FX 3700M" }, + { 0x10DE061F, "Quadro FX 3800M" }, { 0x10DE0622, "GeForce 9600 GT" }, { 0x10DE0623, "GeForce 9600 GS" }, { 0x10DE0625, "GeForce 9600 GSO 512" }, @@ -459,6 +466,7 @@ static SymTabRec NVKnownChipsets[] = { 0x10DE0640, "GeForce 9500 GT" }, { 0x10DE0641, "GeForce 9400 GT" }, { 0x10DE0643, "GeForce 9500 GT" }, + { 0x10DE0644, "GeForce 9500 GS" }, { 0x10DE0646, "GeForce GT 120" }, -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: http://lists.debian.org/[email protected]

