summaryrefslogtreecommitdiff
path: root/src/g80_driver.c
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 /src/g80_driver.c
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>
Diffstat (limited to 'src/g80_driver.c')
-rw-r--r--src/g80_driver.c17
1 files changed, 14 insertions, 3 deletions
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;