summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <anholt@FreeBSD.org>2006-04-10 09:32:45 -0700
committerEric Anholt <anholt@FreeBSD.org>2006-04-10 09:32:45 -0700
commit334512e0604c208ffec914374a76d85720c1dcf9 (patch)
tree49655b432db5775d5078b708b8db9e573f97c28b
parent69083a2fc3ca4a3d06c1985c8a630d5628c1110c (diff)
Don't try to use LVDS by default on chipsets that won't have an LVDS attached.
The BIOS tables may still exist, so we can't rely on their presence to indicate LVDS attachment.
-rw-r--r--src/i830_driver.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/i830_driver.c b/src/i830_driver.c
index eb6370c1..fa1019ff 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -1702,7 +1702,7 @@ I830BIOSPreInit(ScrnInfoPtr pScrn, int flags)
char *s;
ClockRangePtr clockRanges;
pointer pVBEModule = NULL;
- Bool enable;
+ Bool enable, has_lvds;
const char *chipname;
unsigned int ver;
char v[5];
@@ -1845,6 +1845,7 @@ I830BIOSPreInit(ScrnInfoPtr pScrn, int flags)
pI830->pVbe = pI8301->pVbe;
}
+ has_lvds = TRUE;
switch (pI830->PciInfo->chipType) {
case PCI_CHIP_I830_M:
chipname = "830M";
@@ -1878,9 +1879,11 @@ I830BIOSPreInit(ScrnInfoPtr pScrn, int flags)
break;
case PCI_CHIP_I865_G:
chipname = "865G";
+ has_lvds = FALSE;
break;
case PCI_CHIP_I915_G:
chipname = "915G";
+ has_lvds = FALSE;
break;
case PCI_CHIP_E7221_G:
chipname = "E7221 (i915)";
@@ -1890,6 +1893,7 @@ I830BIOSPreInit(ScrnInfoPtr pScrn, int flags)
break;
case PCI_CHIP_I945_G:
chipname = "945G";
+ has_lvds = FALSE;
break;
case PCI_CHIP_I945_GM:
chipname = "945GM";
@@ -2215,7 +2219,7 @@ I830BIOSPreInit(ScrnInfoPtr pScrn, int flags)
pI830->specifiedMonitor = TRUE;
} else if (I830IsPrimary(pScrn)) {
/* Choose a default set of outputs to use based on what we've detected. */
- if (i830GetLVDSInfoFromBIOS(pScrn)) {
+ if (i830GetLVDSInfoFromBIOS(pScrn) && has_lvds) {
pI830->MonType2 |= PIPE_LFP;
}