xserver-xorg-video-nv: Changes to 'debian-unstable'
.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 <bgoglin@debian.org>
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 <bgoglin@debian.org> Tue, 09 Mar 2010 07:17:38 +0100
+ -- Brice Goglin <bgoglin@debian.org> 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 <bgoglin@debian.org>
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 <jcristau@debian.org> Sat, 23 Jan 2010 02:12:23 +0100
+ -- Brice Goglin <bgoglin@debian.org> 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 <bgoglin@debian.org>
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 <aplattner@nvidia.com>
+Date: Mon Mar 8 13:34:20 2010 -0800
+
+ nv 2.1.17
+
+ Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
+
+commit 467f0f3890622e57607b103b07e4f265cf999b1e
+Author: Aaron Plattner <aplattner@nvidia.com>
+Date: Mon Mar 8 13:16:26 2010 -0800
+
+ More products
+
+ Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
+ Reviewed-by: Andy Ritger <ARitger@nvidia.com>
+
+commit e34a53167d6a142949b3e0258dc336dc297368aa
+Author: Aaron Plattner <aplattner@nvidia.com>
+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 <aplattner@nvidia.com>
+
+commit 9378ecd34ad71083602232b56e8810d6cd39b518
+Author: Aaron Plattner <aplattner@nvidia.com>
+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 <aplattner@nvidia.com>
+ Signed-off-by: Andy Ritger <aritger@nvidia.com>
+ Reviewed-by: Christian Zander <chzander@nvidia.com>
+
+commit 49349f6e47b7315088a80789f134895677f57287
+Author: Aaron Plattner <aplattner@nvidia.com>
+Date: Tue Mar 2 12:53:54 2010 -0800
+
+ G80: Log unrecognized outputs
+
+ Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
+ Reviewed-by: Andy Ritger <aritger@nvidia.com>
+
+commit 7b01fc8f4ba1182370980f54a34bdb959e291e02
+Author: Aaron Plattner <aplattner@nvidia.com>
+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 <aplattner@nvidia.com>
+ Signed-off-by: Andy Ritger <aritger@nvidia.com>
+ Reviewed-by: Christian Zander <chzander@nvidia.com>
+
+commit e6f4c9c6379b20b9fee50489d6afd05867c35967
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Fri Jan 15 13:46:50 2010 -0800
+
+ Update Sun license notices to current X.Org standard form
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
+
+commit 893cee2aeda8074de3d5c99df90e23d6ec2217d2
+Author: Gaetan Nadon <memsize@videotron.ca>
+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 <dbn.lists@gmail.com>
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 2b69212ff84e8b815d6915dc81644280cc92cbe7
+Author: Aaron Plattner <aplattner@nvidia.com>
+Date: Tue Dec 15 10:48:33 2009 -0800
+
+ nv 2.1.16
+
+commit 99ed1c83f78b3b947d95aa9f0d3b5555d9a2a769
+Author: Aaron Plattner <aplattner@nvidia.com>
+Date: Tue Dec 15 10:17:27 2009 -0800
+
+ New board names
+
+ Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
+
+commit 5eb01497139ead89c7262a6055a4fd293c5beb3e
+Author: Aaron Plattner <aplattner@nvidia.com>
+Date: Tue Dec 15 10:16:51 2009 -0800
+
+ Remove an unnecessary (and typo'd) gitignore comment
+
+commit 85638b2f0acc418aa77241dd123f7de76ea3ce8f
+Author: Adam Jackson <ajax@redhat.com>
+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 <ajax@redhat.com>
+
+commit d3ba2a45ed21f60667716be0cdcb6a7888263ffd
+Author: Gaetan Nadon <memsize@videotron.ca>
+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 <memsize@videotron.ca>
+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 <memsize@videotron.ca>
+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 <memsize@videotron.ca>
+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 <memsize@videotron.ca>
+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 <memsize@videotron.ca>
+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 <aplattner@nvidia.com>
+Date: Tue Nov 10 12:17:23 2009 -0800
+
+ More new boards
+
+ Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
+
+commit f050096ad3c9ef4484b69c22217efe0557f16e35
+Author: Aaron Plattner <aplattner@nvidia.com>
+Date: Mon Nov 9 16:16:19 2009 -0800
+
+ New boards
+
+ Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
+
commit 0250f0d7ebe30368c5a63809ed1f58673493627c
Author: Peter Hutterer <peter.hutterer@who-t.net>
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 <jcristau@debian.org> 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 <aplattner@nvidia.com>
Date: Mon Mar 8 13:34:20 2010 -0800
nv 2.1.17
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
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 <aplattner@nvidia.com>
Date: Mon Mar 8 13:16:26 2010 -0800
More products
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Andy Ritger <ARitger@nvidia.com>
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 <aplattner@nvidia.com>
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 <aplattner@nvidia.com>
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 <aplattner@nvidia.com>
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 <aplattner@nvidia.com>
Signed-off-by: Andy Ritger <aritger@nvidia.com>
Reviewed-by: Christian Zander <chzander@nvidia.com>
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 <aplattner@nvidia.com>
Date: Tue Mar 2 12:53:54 2010 -0800
G80: Log unrecognized outputs
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Reviewed-by: Andy Ritger <aritger@nvidia.com>
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 <aplattner@nvidia.com>
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 <aplattner@nvidia.com>
Signed-off-by: Andy Ritger <aritger@nvidia.com>
Reviewed-by: Christian Zander <chzander@nvidia.com>
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 <alan.coopersmith@sun.com>
Date: Fri Jan 15 13:46:50 2010 -0800
Update Sun license notices to current X.Org standard form
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
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 <memsize@videotron.ca>
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 <dbn.lists@gmail.com>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
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 <aplattner@nvidia.com>
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 <aplattner@nvidia.com>
Date: Tue Dec 15 10:17:27 2009 -0800
New board names
Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
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" },
Reply to: