AMD's Jordan Crouse proposes the following patch. Scott, can you apply it to the current package and see if it fixes it for you?
On 17/09/07 14:43 +0300, Martin-Éric Racine wrote: > Greetings everyone, > > Can anyone reproduce the following bug? > > https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-amd/+bug/140051 Patch is attached - just a trivial re-arranging of the first few commands in PreInit. [LX] Re-arrange PreInit to avoid segfaults in Xorg -configure Re-arrange the early part of PreInit so that Xorg -configure can run cleanly. --- src/amd_lx_driver.c | 44 +++++++++++++++++++++++++------------------- 1 files changed, 25 insertions(+), 19 deletions(-) diff --git a/src/amd_lx_driver.c b/src/amd_lx_driver.c index c6600d4..7dbed87 100644 --- a/src/amd_lx_driver.c +++ b/src/amd_lx_driver.c @@ -471,39 +471,45 @@ LXPreInit(ScrnInfoPtr pScrni, int flags) { GeodePtr pGeode; ClockRangePtr GeodeClockRange; + EntityInfoPtr pEnt; OptionInfoRec *GeodeOptions = &LX_GeodeOptions[0]; rgb defaultWeight = { 0, 0, 0 }; int modecnt; char *s, *panelgeo = NULL; + Bool useVGA; - pGeode = pScrni->driverPrivate = xnfcalloc(sizeof(GeodeRec), 1); + if (pScrni->numEntities != 1) + return FALSE; - if (pGeode == NULL) - return FALSE; + pEnt = xf86GetEntityInfo(pScrni->entityList[0]); - /* Probe for VGA */ - pGeode->useVGA = TRUE; - pGeode->VGAActive = FALSE; + if (pEnt->resources) + return FALSE; + + useVGA = LXCheckVGA(pScrni); + + if (flags & PROBE_DETECT) { + if (useVGA) + GeodeProbeDDC(pScrni, pEnt->index); - if (xf86LoadSubModule(pScrni, "vgahw")) { - if (vgaHWGetHWRec(pScrni)) - pGeode->useVGA = LXCheckVGA(pScrni); + return TRUE; } - if (pGeode->useVGA) - pGeode->vesa = xcalloc(sizeof(VESARec), 1); + pGeode = pScrni->driverPrivate = xnfcalloc(sizeof(GeodeRec), 1); - if (pScrni->numEntities != 1) - return FALSE; + if (pGeode == NULL) + return FALSE; - pGeode->pEnt = xf86GetEntityInfo(pScrni->entityList[0]); + pGeode->useVGA = useVGA; + pGeode->VGAActive = FALSE; + pGeode->pEnt = pEnt; - if (pGeode->pEnt->resources) - return FALSE; + if (pGeode->useVGA) { + if (!xf86LoadSubModule(pScrni, "vgahw") || + !vgaHWGetHWRec(pScrni)) + pGeode->useVGA = FALSE; - if (pGeode->useVGA && (flags & PROBE_DETECT)) { - GeodeProbeDDC(pScrni, pGeode->pEnt->index); - return TRUE; + pGeode->vesa = xcalloc(sizeof(VESARec), 1); } cim_rdmsr = LXReadMSR; -- Martin-Éric Racine http://q-funk.iki.fi -- amd driver fails to autoconfigure https://bugs.launchpad.net/bugs/140051 You received this bug notification because you are a member of Ubuntu Bugs, which is the bug contact for Ubuntu. -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs