summaryrefslogtreecommitdiff
path: root/src/i830_driver.c
diff options
context:
space:
mode:
authorAlan Hourihane <alanh@fairlite.demon.co.uk>2005-05-20 11:56:45 +0000
committerAlan Hourihane <alanh@fairlite.demon.co.uk>2005-05-20 11:56:45 +0000
commitb99ef9cd59fce0e02e8829210c7cb8aadb6a3499 (patch)
treee851f4d5dbe03531df16e422aa5996ba3e2265ab /src/i830_driver.c
parent3b87fac327b5549678f91a9c961b9fe5c0bf8a37 (diff)
Bugzilla #2585: https://bugs.freedesktop.org/show_bug.cgi?id=2585
Support the Intel E7221 server chipset.
Diffstat (limited to 'src/i830_driver.c')
-rw-r--r--src/i830_driver.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/i830_driver.c b/src/i830_driver.c
index 93082840..afc2bd41 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -185,6 +185,7 @@ static SymTabRec I830BIOSChipsets[] = {
{PCI_CHIP_I855_GM, "852GM/855GM"},
{PCI_CHIP_I865_G, "865G"},
{PCI_CHIP_I915_G, "915G"},
+ {PCI_CHIP_E7221_G, "E7221 (i915)"},
{PCI_CHIP_I915_GM, "915GM"},
{-1, NULL}
};
@@ -195,6 +196,7 @@ static PciChipsets I830BIOSPciChipsets[] = {
{PCI_CHIP_I855_GM, PCI_CHIP_I855_GM, RES_SHARED_VGA},
{PCI_CHIP_I865_G, PCI_CHIP_I865_G, RES_SHARED_VGA},
{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},
{-1, -1, RES_UNDEFINED}
};
@@ -697,10 +699,14 @@ GetDisplayDevices(ScrnInfoPtr pScrn)
pVbe->pInt10->bx = 0x100;
xf86ExecX86int10_wrapper(pVbe->pInt10, pScrn);
- if (Check5fStatus(pScrn, 0x5f64, pVbe->pInt10->ax))
+ if (Check5fStatus(pScrn, 0x5f64, pVbe->pInt10->ax)) {
return pVbe->pInt10->cx & 0xffff;
- else
- return -1;
+ } else {
+ if (pI830->PciInfo->chipType == PCI_CHIP_E7221_G) /* FIXED CONFIG */
+ return PIPE_CRT;
+ else
+ return -1;
+ }
}
/* This is needed for SetDisplayDevices to work correctly on I915G
@@ -1872,6 +1878,9 @@ I830BIOSPreInit(ScrnInfoPtr pScrn, int flags)
case PCI_CHIP_I915_G:
chipname = "915G";
break;
+ case PCI_CHIP_E7221_G:
+ chipname = "E7221 (i915)";
+ break;
case PCI_CHIP_I915_GM:
chipname = "915GM";
break;
@@ -1984,6 +1993,9 @@ I830BIOSPreInit(ScrnInfoPtr pScrn, int flags)
pI830->FbMapSize = 0x8000000; /* 128MB aperture */
else
pI830->FbMapSize = 0x10000000; /* 256MB aperture */
+
+ if (pI830->PciInfo->chipType == PCI_CHIP_E7221_G)
+ pI830->FbMapSize = 0x8000000; /* 128MB aperture */
} else
/* 128MB aperture for later chips */
pI830->FbMapSize = 0x8000000;
@@ -2006,6 +2018,9 @@ I830BIOSPreInit(ScrnInfoPtr pScrn, int flags)
}
}
+ if (pI830->PciInfo->chipType == PCI_CHIP_E7221_G)
+ pI830->availablePipes = 1;
+ else
if (IS_MOBILE(pI830) || IS_I915G(pI830))
pI830->availablePipes = 2;
else