diff options
author | Aaron Plattner <aplattner@nvidia.com> | 2010-03-03 20:29:55 -0800 |
---|---|---|
committer | Aaron Plattner <aplattner@nvidia.com> | 2010-03-05 12:29:15 -0800 |
commit | 9378ecd34ad71083602232b56e8810d6cd39b518 (patch) | |
tree | e64ac08f94525337a9124d771667ce2cb80188ec | |
parent | 49349f6e47b7315088a80789f134895677f57287 (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.man | 6 | ||||
-rw-r--r-- | src/g80_driver.c | 17 | ||||
-rw-r--r-- | src/nv_driver.c | 14 |
3 files changed, 30 insertions, 7 deletions
@@ -59,8 +59,8 @@ NV40, NV41, NV43, NV44, NV45, C51 | |||
59 | .B GeForce 7XXX | 59 | .B GeForce 7XXX |
60 | G70, G71, G72, G73 | 60 | G70, G71, G72, G73 |
61 | .TP 22 | 61 | .TP 22 |
62 | .B GeForce 8XXX, GeForce 9XXX | 62 | .B GeForce 8XXX, GeForce 9XXX, GeForce G, ION |
63 | G80, G84, G86, G92, G94, G96, G98 | 63 | G80, 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 |
66 | GT200 | 66 | GT200 |
@@ -197,7 +197,7 @@ Authors include: David McKay, Jarno Paananen, Chas Inman, Dave Schmenk, | |||
197 | Mark Vojkovich, Aaron Plattner | 197 | Mark Vojkovich, Aaron Plattner |
198 | .SH COPYRIGHT | 198 | .SH COPYRIGHT |
199 | .LP | 199 | .LP |
200 | Copyright (c) 2003 - 2008 NVIDIA, Corporation | 200 | Copyright (c) 2003-2008,2010 NVIDIA Corporation |
201 | .LP | 201 | .LP |
202 | Permission is hereby granted, free of charge, to any person obtaining a | 202 | Permission is hereby granted, free of charge, to any person obtaining a |
203 | copy of this software and associated documentation files (the | 203 | 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) | |||
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 | ||
129 | static SymTabRec NVKnownChipsets[] = | 130 | static 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: |