summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Plattner <aplattner@nvidia.com>2010-03-03 20:29:55 -0800
committerAaron Plattner <aplattner@nvidia.com>2010-03-05 12:29:15 -0800
commit9378ecd34ad71083602232b56e8810d6cd39b518 (patch)
treee64ac08f94525337a9124d771667ce2cb80188ec
parent49349f6e47b7315088a80789f134895677f57287 (diff)
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>
-rw-r--r--man/nv.man6
-rw-r--r--src/g80_driver.c17
-rw-r--r--src/nv_driver.c14
3 files changed, 30 insertions, 7 deletions
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
59.B GeForce 7XXX 59.B GeForce 7XXX
60G70, G71, G72, G73 60G70, G71, G72, G73
61.TP 22 61.TP 22
62.B GeForce 8XXX, GeForce 9XXX 62.B GeForce 8XXX, GeForce 9XXX, GeForce G, ION
63G80, G84, G86, G92, G94, G96, G98 63G80, G84, G86, G92, G94, G96, G98, GT215, GT216, GT218, MCP79, MCP7A
64.TP 22 64.TP 22
65.B GeForce GTX 65.B GeForce GTX
66GT200 66GT200
@@ -197,7 +197,7 @@ Authors include: David McKay, Jarno Paananen, Chas Inman, Dave Schmenk,
197Mark Vojkovich, Aaron Plattner 197Mark Vojkovich, Aaron Plattner
198.SH COPYRIGHT 198.SH COPYRIGHT
199.LP 199.LP
200Copyright (c) 2003 - 2008 NVIDIA, Corporation 200Copyright (c) 2003-2008,2010 NVIDIA Corporation
201.LP 201.LP
202Permission is hereby granted, free of charge, to any person obtaining a 202Permission is hereby granted, free of charge, to any person obtaining a
203copy of this software and associated documentation files (the 203copy 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)
614 pNv->reg[0x00706454/4] = 0x00010000; 614 pNv->reg[0x00706454/4] = 0x00010000;
615 pNv->reg[0x00706460/4] = 0x0000502d; 615 pNv->reg[0x00706460/4] = 0x0000502d;
616 pNv->reg[0x00706474/4] = 0x00010000; 616 pNv->reg[0x00706474/4] = 0x00010000;
617 pNv->reg[0x00706480/4] = 0x0019003d; 617 if(pNv->architecture == 0xaa || pNv->architecture == 0xac) {
618 pNv->reg[0x00706484/4] = (pNv->videoRam << 10) - G80_RESERVED_VIDMEM; 618 uint64_t base = pNv->reg[0x00100E10/4] << 12;
619 pNv->reg[0x00706494/4] = 0x00010000; 619 size_t size = pNv->reg[0x00100E14/4] << 12;
620 uint64_t limit = base + size - G80_RESERVED_VIDMEM;
621
622 pNv->reg[0x00706480/4] = 0x1a003d;
623 pNv->reg[0x00706484/4] = limit;
624 pNv->reg[0x00706488/4] = base;
625 pNv->reg[0x0070648c/4] = base >> 32 | ((limit >> 8) & 0xff000000);
626 } else {
627 pNv->reg[0x00706480/4] = 0x0019003d;
628 pNv->reg[0x00706484/4] = (pNv->videoRam << 10) - G80_RESERVED_VIDMEM;
629 pNv->reg[0x00706494/4] = 0x00010000;
630 }
620 pNv->reg[0x007064a0/4] = 0x0019003d; 631 pNv->reg[0x007064a0/4] = 0x0019003d;
621 pNv->reg[0x007064a4/4] = bar0_pramin + 0x1100f; 632 pNv->reg[0x007064a4/4] = bar0_pramin + 0x1100f;
622 pNv->reg[0x007064a8/4] = bar0_pramin + 0x11000; 633 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 @@
1/* 1/*
2 * Copyright 2010 NVIDIA Corporation
2 * Copyright 1996-1997 David J. McKay 3 * Copyright 1996-1997 David J. McKay
3 * 4 *
4 * Permission is hereby granted, free of charge, to any person obtaining a 5 * Permission is hereby granted, free of charge, to any person obtaining a
@@ -124,7 +125,7 @@ _X_EXPORT DriverRec NV = {
124#endif 125#endif
125}; 126};
126 127
127/* Known cards as of 2009/05/15 */ 128/* Known cards as of 2010/03/03 */
128 129
129static SymTabRec NVKnownChipsets[] = 130static SymTabRec NVKnownChipsets[] =
130{ 131{
@@ -495,6 +496,15 @@ static SymTabRec NVKnownChipsets[] =
495 { 0x10DE06F9, "Quadro FX 370 LP" }, 496 { 0x10DE06F9, "Quadro FX 370 LP" },
496 { 0x10DE06FA, "Quadro NVS 450" }, 497 { 0x10DE06FA, "Quadro NVS 450" },
497 { 0x10DE06FD, "Quadro NVS 295" }, 498 { 0x10DE06FD, "Quadro NVS 295" },
499 { 0x10DE0861, "GeForce 9400" },
500 { 0x10DE0862, "GeForce 9400M G" },
501 { 0x10DE0863, "GeForce 9400M" },
502 { 0x10DE086C, "GeForce 9300 / nForce 730i" },
503 { 0x10DE0872, "GeForce G102M" },
504 { 0x10DE0873, "GeForce G102M" },
505 { 0x10DE087A, "GeForce 9400" },
506 { 0x10DE087D, "ION" },
507 { 0x10DE087F, "ION LE" },
498 { 0x10DE0A20, "GeForce GT 220" }, 508 { 0x10DE0A20, "GeForce GT 220" },
499 { 0x10DE0A23, "GeForce 210" }, 509 { 0x10DE0A23, "GeForce 210" },
500 { 0x10DE0A2A, "GeForce GT 230M" }, 510 { 0x10DE0A2A, "GeForce GT 230M" },
@@ -753,6 +763,8 @@ NVIsG80(int chipType)
753 case 0x0650: 763 case 0x0650:
754 case 0x06e0: 764 case 0x06e0:
755 case 0x06f0: 765 case 0x06f0:
766 case 0x0860:
767 case 0x0870:
756 case 0x0a20: 768 case 0x0a20:
757 case 0x0a30: 769 case 0x0a30:
758 case 0x0a60: 770 case 0x0a60: