summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Mansi <gabriel.mansi@gmail.com>2007-09-07 17:42:00 +0000
committerGabriel Mansi <gabriel.mansi@gmail.com>2007-09-07 17:42:00 +0000
commit4887d58100d923195a063a376267af6bd192d290 (patch)
tree719d255da54a8052b885d320116aaa7542cbeea4
parent34f559b5ab33e157343151d590f5a6f70bd42870 (diff)
Disabled TV detection for P4M900vn896_branch
-rw-r--r--ChangeLog8
-rw-r--r--unichrome/via_driver.c20
-rw-r--r--unichrome/via_mode.c16
-rw-r--r--unichrome/via_vbe.c9
4 files changed, 36 insertions, 17 deletions
diff --git a/ChangeLog b/ChangeLog
index d98cb67..0d72049 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2007-09-07 Gabriel Mansi <gabriel-dot-mansi-at-gmail-dot-com>
+ * unichrome/via_driver.c: (VIAPreInit):
+ * unichrome/via_mode.c: (ViaOutputsDetect):
+ * unichrome/via_vbe.c: (ViaVbeSetActiveDevices):
+
+ Disabled TV detection for P4M900
+
+2007-09-07 Gabriel Mansi <gabriel-dot-mansi-at-gmail-dot-com>
+
* unichrome/via_driver.h:
* unichrome/via_vbe.c: (ViaVbeInitInt10),
(ViaVbeGetRefreshRateIndex), (ViaVbeGetActiveDevices),
diff --git a/unichrome/via_driver.c b/unichrome/via_driver.c
index 9e81ec4..616c622 100644
--- a/unichrome/via_driver.c
+++ b/unichrome/via_driver.c
@@ -1501,16 +1501,20 @@ static Bool VIAPreInit(ScrnInfoPtr pScrn, int flags)
return FALSE;
}
- if (pBIOSInfo->PanelActive && ((pVia->Chipset == VIA_K8M800) ||
- (pVia->Chipset == VIA_PM800) ||
- (pVia->Chipset == VIA_VM800) ||
- (pVia->Chipset == VIA_P4M890) ||
- (pVia->Chipset == VIA_K8M890) ||
- (pVia->Chipset == VIA_P4M900))) {
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Panel on K8M800, PM800 ,VM800, P4M890, K8M890 or P4M900 is"
- " currently not supported.\n");
+ if (pBIOSInfo->PanelActive &&
+ ((pVia->Chipset == VIA_K8M800) ||
+ (pVia->Chipset == VIA_PM800) ||
+ (pVia->Chipset == VIA_VM800) ||
+ (pVia->Chipset == VIA_P4M890) ||
+ (pVia->Chipset == VIA_K8M890) ||
+ (pVia->Chipset == VIA_P4M900))) {
+
+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
+ "Panel on K8M800, PM800, VM800, P4M890, K8M890 or P4M900 is"
+ " currently not supported.\n");
xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Using VBE to set modes to"
" work around this.\n");
+
pVia->useVBEModes = TRUE;
}
diff --git a/unichrome/via_mode.c b/unichrome/via_mode.c
index 26fe81a..c183957 100644
--- a/unichrome/via_mode.c
+++ b/unichrome/via_mode.c
@@ -276,7 +276,15 @@ ViaOutputsDetect(ScrnInfoPtr pScrn)
pBIOSInfo->CrtPresent = TRUE;
}
- if (pVia->Id->Outputs & VIA_DEVICE_TV) {
+ /*
+ * FIXME: xf86I2CProbeAddress(pVia->pI2CBus3, 0x40)
+ * disables the panel on P4M900
+ * See ViaTVDetect.
+ */
+ if (pVia->Chipset == VIA_P4M900 && pBIOSInfo->PanelPresent) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Will not try to detect TV encoder." );
+ } else {
/* TV encoder */
if (ViaTVDetect(pScrn) && ViaTVInit(pScrn)) {
if (!pBIOSInfo->TVOutput) /* Config might've set this already */
@@ -285,10 +293,8 @@ ViaOutputsDetect(ScrnInfoPtr pScrn)
xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
"This device is supposed to have a"
" TV encoder but we are unable to detect it (support missing?).\n");
- pBIOSInfo->TVOutput = 0;
- }
- } else {
- pBIOSInfo->TVOutput = 0;
+ pBIOSInfo->TVOutput = 0;
+ }
}
}
diff --git a/unichrome/via_vbe.c b/unichrome/via_vbe.c
index c227aa7..e7ce88c 100644
--- a/unichrome/via_vbe.c
+++ b/unichrome/via_vbe.c
@@ -115,15 +115,16 @@ static Bool ViaVbeSetActiveDevices( ScrnInfoPtr pScrn, int mode, int refresh ) {
VIABIOSInfoPtr pBIOSInfo = pVia->pBIOSInfo;
vbeInfoPtr pVbe = pVia->pVbe;
- DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "ViaVbeSetActiveDevices mode: %x, refresh: %d\n",
- mode, refresh ));
-
ViaVbeInitInt10(pVbe);
pVbe->pInt10->bx = 0x8003;
pVbe->pInt10->cx = ViaVbeGetActiveDevices(pScrn);
pVbe->pInt10->dx = mode & 0x1FF;
pVbe->pInt10->di = ViaVbeGetRefreshRateIndex(refresh);
+
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "ViaVbeSetActiveDevices mode: %x, refresh: %d active devices: 0x%2x\n",
+ mode, refresh, pVbe->pInt10->cx ));
+
xf86ExecX86int10(pVbe->pInt10);
if (pVbe->pInt10->ax != 0x4F)
return FALSE ;