summaryrefslogtreecommitdiff
path: root/src/i830_driver.c
diff options
context:
space:
mode:
authorAlan Hourihane <alanh@fairlite.demon.co.uk>2005-05-31 17:58:26 +0000
committerAlan Hourihane <alanh@fairlite.demon.co.uk>2005-05-31 17:58:26 +0000
commit27feb0f3474c1e21557225e10b13558e002c0ebf (patch)
tree0870aeaa1ebb94256db68c70e9ce015fbdcca4a1 /src/i830_driver.c
parent2d10e8dc8184b0514e8ac9f835a06b85d609bb1b (diff)
Add Intel(R) 945G support
Diffstat (limited to 'src/i830_driver.c')
-rw-r--r--src/i830_driver.c29
1 files changed, 17 insertions, 12 deletions
diff --git a/src/i830_driver.c b/src/i830_driver.c
index 66a919fc..654dc196 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -143,6 +143,9 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
* - Add lid status checking
* - Fix Xvideo with high-res LFP's
* - Add ARGB HW cursor support
+ *
+ * 30/2005 Alan Hourihane
+ * - Add Intel(R) 945G support.
*/
#ifndef PRINT_MODE_INFO
@@ -188,6 +191,7 @@ static SymTabRec I830BIOSChipsets[] = {
{PCI_CHIP_I915_G, "915G"},
{PCI_CHIP_E7221_G, "E7221 (i915)"},
{PCI_CHIP_I915_GM, "915GM"},
+ {PCI_CHIP_I945_G, "945G"},
{-1, NULL}
};
@@ -199,6 +203,7 @@ static PciChipsets I830BIOSPciChipsets[] = {
{PCI_CHIP_I915_G, PCI_CHIP_I915_G, RES_SHARED_VGA},
{PCI_CHIP_E7221_G, PCI_CHIP_E7221_G, RES_SHARED_VGA},
{PCI_CHIP_I915_GM, PCI_CHIP_I915_GM, RES_SHARED_VGA},
+ {PCI_CHIP_I945_G, PCI_CHIP_I945_G, RES_SHARED_VGA},
{-1, -1, RES_UNDEFINED}
};
@@ -1314,7 +1319,7 @@ I830DetectMemory(ScrnInfoPtr pScrn)
* The GTT varying according the the FbMapSize and the popup is 4KB */
range = (pI830->FbMapSize / (1024*1024)) + 4;
- if (IS_I85X(pI830) || IS_I865G(pI830) || IS_I915G(pI830) || IS_I915GM(pI830)) {
+ if (IS_I85X(pI830) || IS_I865G(pI830) || IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830)) {
switch (gmch_ctrl & I830_GMCH_GMS_MASK) {
case I855_GMCH_GMS_STOLEN_1M:
memsize = MB(1) - KB(range);
@@ -1332,11 +1337,11 @@ I830DetectMemory(ScrnInfoPtr pScrn)
memsize = MB(32) - KB(range);
break;
case I915G_GMCH_GMS_STOLEN_48M:
- if (IS_I915G(pI830) || IS_I915GM(pI830))
+ if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830))
memsize = MB(48) - KB(range);
break;
case I915G_GMCH_GMS_STOLEN_64M:
- if (IS_I915G(pI830) || IS_I915GM(pI830))
+ if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830))
memsize = MB(64) - KB(range);
break;
}
@@ -2077,6 +2082,9 @@ I830BIOSPreInit(ScrnInfoPtr pScrn, int flags)
case PCI_CHIP_I915_GM:
chipname = "915GM";
break;
+ case PCI_CHIP_I945_G:
+ chipname = "945G";
+ break;
default:
chipname = "unknown chipset";
break;
@@ -2114,7 +2122,7 @@ I830BIOSPreInit(ScrnInfoPtr pScrn, int flags)
pI830->LinearAddr = pI830->pEnt->device->MemBase;
from = X_CONFIG;
} else {
- if (IS_I915G(pI830) || IS_I915GM(pI830)) {
+ if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830)) {
pI830->LinearAddr = pI830->PciInfo->memBase[2] & 0xF0000000;
from = X_PROBED;
} else if (pI830->PciInfo->memBase[1] != 0) {
@@ -2136,7 +2144,7 @@ I830BIOSPreInit(ScrnInfoPtr pScrn, int flags)
pI830->MMIOAddr = pI830->pEnt->device->IOBase;
from = X_CONFIG;
} else {
- if (IS_I915G(pI830) || IS_I915GM(pI830)) {
+ if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830)) {
pI830->MMIOAddr = pI830->PciInfo->memBase[0] & 0xFFF80000;
from = X_PROBED;
} else if (pI830->PciInfo->memBase[1]) {
@@ -2181,7 +2189,7 @@ I830BIOSPreInit(ScrnInfoPtr pScrn, int flags)
pI830->FbMapSize = 0x4000000; /* 64MB - has this been tested ?? */
}
} else {
- if (IS_I915G(pI830) || IS_I915GM(pI830)) {
+ if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830)) {
if (pI830->PciInfo->memBase[2] & 0x08000000)
pI830->FbMapSize = 0x8000000; /* 128MB aperture */
else
@@ -2853,16 +2861,13 @@ I830BIOSPreInit(ScrnInfoPtr pScrn, int flags)
}
/* Check if the HW cursor needs physical address. */
- if (IS_MOBILE(pI830) || IS_I915G(pI830))
+ if (IS_MOBILE(pI830) || IS_I915G(pI830) || IS_I945G(pI830))
pI830->CursorNeedsPhysical = TRUE;
else
pI830->CursorNeedsPhysical = FALSE;
- /* Force ring buffer to be in low memory for the 845G and later. */
-#if 0
- if (IS_845G(pI830) || IS_I85X(pI830) || IS_I865G(pI830) || IS_I915G(pI830) || IS_I915GM(pI830))
-#endif
- pI830->NeedRingBufferLow = TRUE;
+ /* Force ring buffer to be in low memory for all chipsets */
+ pI830->NeedRingBufferLow = TRUE;
/*
* XXX If we knew the pre-initialised GTT format for certain, we could