diff options
author | Gabriel Mansi <gabriel.mansi@gmail.com> | 2007-09-07 17:42:00 +0000 |
---|---|---|
committer | Gabriel Mansi <gabriel.mansi@gmail.com> | 2007-09-07 17:42:00 +0000 |
commit | 4887d58100d923195a063a376267af6bd192d290 (patch) | |
tree | 719d255da54a8052b885d320116aaa7542cbeea4 | |
parent | 34f559b5ab33e157343151d590f5a6f70bd42870 (diff) |
Disabled TV detection for P4M900vn896_branch
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | unichrome/via_driver.c | 20 | ||||
-rw-r--r-- | unichrome/via_mode.c | 16 | ||||
-rw-r--r-- | unichrome/via_vbe.c | 9 |
4 files changed, 36 insertions, 17 deletions
@@ -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 ; |