summaryrefslogtreecommitdiff
path: root/src/gx_driver.c
diff options
context:
space:
mode:
authorJordan Crouse <jordan.crouse@amd.com>2008-04-15 14:54:57 -0600
committerJordan Crouse <jordan.crouse@amd.com>2008-04-24 11:13:32 -0600
commit61663593475f61567466c105ca19d5009a4e9c41 (patch)
tree4c9223c5dac482facd88f1e252ff1008033751e1 /src/gx_driver.c
parent401a7ed390beca4d37121575e64b72969d55fa7c (diff)
geode: Add "native" DDC parsing to the Geode driver
Teach libDDC to access the DDC pins on the Geode natively, instead of using the BIOS which has proven to be broken time and time again.
Diffstat (limited to 'src/gx_driver.c')
-rw-r--r--src/gx_driver.c39
1 files changed, 2 insertions, 37 deletions
diff --git a/src/gx_driver.c b/src/gx_driver.c
index 66aa31c..928a59a 100644
--- a/src/gx_driver.c
+++ b/src/gx_driver.c
@@ -436,8 +436,7 @@ GXPreInit(ScrnInfoPtr pScrni, int flags)
useVGA = GXCheckVGA(pScrni);
if (flags & PROBE_DETECT) {
- if (useVGA)
- GeodeProbeDDC(pScrni, pEnt->index);
+ GeodeProbeDDC(pScrni, pEnt->index);
return TRUE;
}
@@ -664,10 +663,7 @@ GXPreInit(ScrnInfoPtr pScrni, int flags)
GeodeClockRange->interlaceAllowed = TRUE;
GeodeClockRange->doubleScanAllowed = FALSE;
- if (pGeode->useVGA)
- pScrni->monitor->DDC = GeodeDoDDC(pScrni, pGeode->pEnt->index);
- else
- pScrni->monitor->DDC = NULL;
+ pScrni->monitor->DDC = GeodeDoDDC(pScrni, pGeode->pEnt->index);
/* I'm still not 100% sure this uses the right values */
@@ -1540,37 +1536,6 @@ GeodePointerMoved(int index, int x, int y)
(*pGeode->PointerMoved) (index, newX, newY);
}
-void
-GeodeProbeDDC(ScrnInfoPtr pScrni, int index)
-{
- vbeInfoPtr pVbe;
-
- if (xf86LoadSubModule(pScrni, "vbe")) {
- pVbe = VBEInit(NULL, index);
- ConfiguredMonitor = vbeDoEDID(pVbe, NULL);
- vbeFree(pVbe);
- }
-}
-
-xf86MonPtr
-GeodeDoDDC(ScrnInfoPtr pScrni, int index)
-{
- vbeInfoPtr pVbe;
- xf86MonPtr info = NULL;
-
- if (xf86LoadSubModule(pScrni, "vbe") && (pVbe = VBEInit(NULL, index))) {
- xf86LoaderReqSymLists(amdVbeSymbols, NULL);
- info = vbeDoEDID(pVbe, NULL);
- xf86PrintEDID(info);
- xf86SetDDCproperties(pScrni, info);
- vbeFree(pVbe);
- } else
- xf86DrvMsg(pScrni->scrnIndex, X_INFO,
- "We cannot do DDC without VBE.\n");
-
- return info;
-}
-
int
GeodeGetFPGeometry(const char *str, int *width, int *height)
{