Moving them away from R128ScreenInit callback function. This is how other DDXs do it.
Signed-off-by: Kevin Brace <kevinbr...@gmx.com> --- src/r128_accel.c | 1 - src/r128_driver.c | 48 +++++++++++++++++++++++++++++++++++++++++++----- src/r128_exa.c | 12 ------------ 3 files changed, 43 insertions(+), 18 deletions(-) diff --git a/src/r128_accel.c b/src/r128_accel.c index bfadaf6..589f49b 100644 --- a/src/r128_accel.c +++ b/src/r128_accel.c @@ -1909,7 +1909,6 @@ R128XAAAccelInit(ScreenPtr pScreen) R128InfoPtr info = R128PTR(pScrn); XAAInfoRecPtr a; - if (!xf86LoadSubModule(pScrn, "xaa")) return FALSE; if (!(a = info->accel = XAACreateInfoRec())) return FALSE; #ifdef R128DRI diff --git a/src/r128_driver.c b/src/r128_driver.c index 773038c..afa41ca 100644 --- a/src/r128_driver.c +++ b/src/r128_driver.c @@ -1325,6 +1325,46 @@ exit: return ret; } +static void +R128PreInitAccel(ScrnInfoPtr pScrn) +{ + R128InfoPtr info = R128PTR(pScrn); +#ifdef USE_EXA + int errmaj, errmin; +#endif + + if (!info->noAccel) { + if (info->useEXA) { +#ifdef USE_EXA + info->exaReq.majorversion = EXA_VERSION_MAJOR; + info->exaReq.minorversion = EXA_VERSION_MINOR; + + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Loading EXA module...\n"); + if (LoadSubModule(pScrn->module, "exa", NULL, NULL, NULL, + &info->exaReq, &errmaj, &errmin)) { + info->accelOn = TRUE; + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "EXA acceleration enabled.\n"); + } else { + LoaderErrorMsg(NULL, "exa", errmaj, errmin); + } +#endif + } + + if ((!info->useEXA) || + ((info->useEXA) && (!info->accelOn))) { +#ifdef HAVE_XAA_H + if (xf86LoadSubModule(pScrn, "xaa")) { + info->accelOn = TRUE; + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "XAA acceleration enabled.\n"); + } +#endif + } + } +} + /* R128PreInit is called once at server startup. */ Bool R128PreInit(ScrnInfoPtr pScrn, int flags) { @@ -1404,6 +1444,7 @@ Bool R128PreInit(ScrnInfoPtr pScrn, int flags) xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, info->Options); info->noAccel = FALSE; + info->accelOn = FALSE; info->useEXA = FALSE; #ifdef USE_EXA @@ -1467,6 +1508,8 @@ Bool R128PreInit(ScrnInfoPtr pScrn, int flags) /* Get ScreenInit function */ if (!xf86LoadSubModule(pScrn, "fb")) return FALSE; + R128PreInitAccel(pScrn); + info->CurrentLayout.displayWidth = pScrn->displayWidth; if (!xf86RandR12PreInit(pScrn)) { @@ -1630,14 +1673,10 @@ R128AccelInit(Bool noAccel, ScreenPtr pScreen) ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); - /* Initially, assume that acceleration is off. */ - info->accelOn = FALSE; - if (!noAccel) { if (info->useEXA) { #ifdef USE_EXA if (R128EXAAccelInit(pScreen)) { - info->accelOn = TRUE; xf86DrvMsg(pScrn->scrnIndex, X_INFO, "EXA acceleration enabled.\n"); } @@ -1648,7 +1687,6 @@ R128AccelInit(Bool noAccel, ScreenPtr pScreen) ((info->useEXA) && (!info->accelOn))) { #ifdef HAVE_XAA_H if (R128XAAAccelInit(pScreen)) { - info->accelOn = TRUE; xf86DrvMsg(pScrn->scrnIndex, X_INFO, "XAA acceleration enabled.\n"); } diff --git a/src/r128_exa.c b/src/r128_exa.c index 425fd64..5a54740 100644 --- a/src/r128_exa.c +++ b/src/r128_exa.c @@ -398,18 +398,6 @@ R128EXAAccelInit(ScreenPtr pScreen) { ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); R128InfoPtr info = R128PTR(pScrn); - int errmaj = 0, errmin = 0; - - info->exaReq.majorversion = EXA_VERSION_MAJOR; - info->exaReq.minorversion = EXA_VERSION_MINOR; - - xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Loading EXA module...\n"); - if (!LoadSubModule(pScrn->module, "exa", NULL, NULL, NULL, - &info->exaReq, &errmaj, &errmin)) { - LoaderErrorMsg(NULL, "exa", errmaj, errmin); - return FALSE; - } /* Don't init EXA here because it'll be taken care of in mm init */ xf86DrvMsg(pScrn->scrnIndex, X_INFO, -- 2.7.4 _______________________________________________ xorg-driver-ati mailing list xorg-driver-ati@lists.x.org https://lists.x.org/mailman/listinfo/xorg-driver-ati