diff options
author | Jordan Crouse <jordan.crouse@amd.com> | 2008-04-15 14:54:57 -0600 |
---|---|---|
committer | Jordan Crouse <jordan.crouse@amd.com> | 2008-04-24 11:13:32 -0600 |
commit | 61663593475f61567466c105ca19d5009a4e9c41 (patch) | |
tree | 4c9223c5dac482facd88f1e252ff1008033751e1 /src/gx_driver.c | |
parent | 401a7ed390beca4d37121575e64b72969d55fa7c (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.c | 39 |
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) { |