xf86-video-intel: src/legacy/i810

Chris Wilson ickle at kemper.freedesktop.org
Thu Jul 19 01:37:35 PDT 2012


 src/legacy/i810/i810.h        |    4 ++++
 src/legacy/i810/i810_driver.c |   29 ++++++++++-------------------
 2 files changed, 14 insertions(+), 19 deletions(-)

New commits:
commit d145d0e1459f578eea621e6944814642e5dd431f
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Thu Jul 19 09:23:10 2012 +0100

    i810: Handle initialisation without the XAA module present at runtime
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/legacy/i810/i810.h b/src/legacy/i810/i810.h
index 823631f..de250ab 100644
--- a/src/legacy/i810/i810.h
+++ b/src/legacy/i810/i810.h
@@ -267,7 +267,11 @@ extern Bool I810CleanupDma(ScrnInfoPtr pScrn);
 #define I810REGPTR(p) (&(I810PTR(p)->ModeReg))
 
 extern Bool I810CursorInit(ScreenPtr pScreen);
+#ifdef HAVE_XAA_H
 extern Bool I810AccelInit(ScreenPtr pScreen);
+#else
+static inline  Bool I810AccelInit(ScreenPtr pScreen) { return TRUE; }
+#endif
 extern void I810SetPIOAccess(I810Ptr pI810);
 extern void I810SetMMIOAccess(I810Ptr pI810);
 extern unsigned int I810CalcWatermark(ScrnInfoPtr pScrn, double freq,
diff --git a/src/legacy/i810/i810_driver.c b/src/legacy/i810/i810_driver.c
index bd80077..33b5aa4 100644
--- a/src/legacy/i810/i810_driver.c
+++ b/src/legacy/i810/i810_driver.c
@@ -343,12 +343,8 @@ I810PreInit(ScrnInfoPtr scrn, int flags)
    if (xf86ReturnOptValBool(pI810->Options, OPTION_NOACCEL, FALSE))
       pI810->noAccel = TRUE;
 
-   if (!pI810->noAccel) {
-      if (!xf86LoadSubModule(scrn, "xaa")) {
-	 I810FreeRec(scrn);
-	 return FALSE;
-      }
-   }
+   if (!pI810->noAccel && !xf86LoadSubModule(scrn, "xaa"))
+      pI810->noAccel = TRUE;
    
 #ifdef HAVE_DRI1
    pI810->directRenderingDisabled =
@@ -1089,7 +1085,6 @@ DoRestore(ScrnInfoPtr scrn, vgaRegPtr vgaReg, I810RegPtr i810Reg,
    hwp->writeCrtc(hwp, IO_CTNL, temp);
 }
 
-#ifdef HAVE_XAA_H
 static void
 I810SetRingRegs(ScrnInfoPtr scrn)
 {
@@ -1109,7 +1104,6 @@ I810SetRingRegs(ScrnInfoPtr scrn)
    itemp |= ((pI810->LpRing->mem.Size - 4096) | RING_NO_REPORT | RING_VALID);
    OUTREG(LP_RING + RING_LEN, itemp);
 }
-#endif
 
 static void
 I810Restore(ScrnInfoPtr scrn)
@@ -1697,19 +1691,16 @@ I810ScreenInit(SCREEN_INIT_ARGS_DECL)
       return FALSE;
    }
 
-#ifdef HAVE_XAA_H
-   if (!xf86ReturnOptValBool(pI810->Options, OPTION_NOACCEL, FALSE)) {
-      if (pI810->LpRing->mem.Size != 0) {
-	 I810SetRingRegs(scrn);
-
-	 if (!I810AccelInit(screen)) {
-	    xf86DrvMsg(scrn->scrnIndex, X_ERROR,
-		       "Hardware acceleration initialization failed\n");
-	 }  else /* PK added 16.02.2004 */
-	     I810EmitFlush(scrn);
+   if (pI810->LpRing->mem.Size != 0) {
+      I810SetRingRegs(scrn);
+
+      if (pI810->noAccel && !I810AccelInit(screen)) {
+	 xf86DrvMsg(scrn->scrnIndex, X_ERROR,
+		    "Hardware acceleration initialization failed\n");
       }
+
+      I810EmitFlush(scrn);
    }
-#endif
 
    miInitializeBackingStore(screen);
    xf86SetBackingStore(screen);


More information about the xorg-commit mailing list