[openchrome-devel] xf86-video-openchrome: 2 commits - configure.ac src/via_driver.c src/via_ums.c src/via_ums.h

Kevin Brace kevinbrace at kemper.freedesktop.org
Mon Jul 27 21:38:42 UTC 2020


 configure.ac     |    2 +-
 src/via_driver.c |    8 +++++++-
 src/via_ums.c    |   43 +++++++++++++++++++++++++++++--------------
 src/via_ums.h    |    3 ++-
 4 files changed, 39 insertions(+), 17 deletions(-)

New commits:
commit ab03de703b91c7e0fd3e4d1ca06ad5add7f077a1
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Mon Jul 27 14:21:52 2020 -0700

    Version bumped to 0.6.225
    
    This version fixes a DRI1 initialization bug that has existed since
    Version 0.6.217.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/configure.ac b/configure.ac
index 793c54e..b2497ef 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ([2.60])
 AC_INIT([xf86-video-openchrome],
-        [0.6.224],
+        [0.6.225],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/openchrome],
         [xf86-video-openchrome])
 
commit 838d7951eb9b2d48e2cb990221324c5d9d1682f5
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Mon Jul 27 14:08:38 2020 -0700

    Fix for DRI1 initialization failure
    
    commit a245948 (Map FB during screen initialization rather than
    pre-initialization) broke DRI1 initialization code.  This was due to
    frame buffer no longer being mapped prior to DRI1 initialization.  Now,
    frame buffer is mapped prior to DRI1 initialization.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_driver.c b/src/via_driver.c
index 3240677..3289e74 100644
--- a/src/via_driver.c
+++ b/src/via_driver.c
@@ -1480,6 +1480,12 @@ VIAScreenInit(SCREEN_INIT_ARGS_DECL)
     /* Must be after RGB ordering is fixed. */
     fbPictureInit(pScreen, NULL, 0);
 
+    if (!pVia->KMS) {
+        if (!viaUMSMapIOResources(pScrn)) {
+            return FALSE;
+        }
+    }
+
 #ifdef HAVE_DRI
     if (pVia->KMS) {
         if (drmSetMaster(pVia->drmmode.fd)) {
@@ -1506,7 +1512,7 @@ VIAScreenInit(SCREEN_INIT_ARGS_DECL)
     if (pVia->directRenderingType != DRI_2)
 #endif /* HAVE_DRI */
     {
-        if (!viaUMSCreate(pScrn)) {
+        if (!viaUMSScreenInit(pScrn)) {
             return FALSE;
         }
     }
diff --git a/src/via_ums.c b/src/via_ums.c
index 00fd0d6..309d1c3 100644
--- a/src/via_ums.c
+++ b/src/via_ums.c
@@ -778,7 +778,7 @@ exit:
 }
 
 Bool
-viaUMSCreate(ScrnInfoPtr pScrn)
+viaUMSMapIOResources(ScrnInfoPtr pScrn)
 {
     VIAPtr pVia = VIAPTR(pScrn);
     Bool ret = TRUE;
@@ -822,6 +822,34 @@ viaUMSCreate(ScrnInfoPtr pScrn)
         goto exit;
     }
 
+exit:
+    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                        "Exiting %s.\n", __func__));
+    return ret;
+}
+
+void
+viaUMSDestroy(ScrnInfoPtr pScrn)
+{
+    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                        "Entered %s.\n", __func__));
+
+    viaUnmapFB(pScrn);
+    viaUnmapMMIO(pScrn);
+
+    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                        "Exiting %s.\n", __func__));
+}
+
+Bool
+viaUMSScreenInit(ScrnInfoPtr pScrn)
+{
+    VIAPtr pVia = VIAPTR(pScrn);
+    Bool ret = TRUE;
+
+    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                        "Entered %s.\n", __func__));
+
     if (pVia->directRenderingType == DRI_NONE) {
         if (!pVia->useEXA) {
             if (!viaInitFB(pScrn)) {
@@ -854,19 +882,6 @@ exit:
     return ret;
 }
 
-void
-viaUMSDestroy(ScrnInfoPtr pScrn)
-{
-    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-                        "Entered %s.\n", __func__));
-
-    viaUnmapFB(pScrn);
-    viaUnmapMMIO(pScrn);
-
-    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-                        "Exiting %s.\n", __func__));
-}
-
 static Bool
 viaProbeVRAM(ScrnInfoPtr pScrn)
 {
diff --git a/src/via_ums.h b/src/via_ums.h
index 8adef52..e937217 100644
--- a/src/via_ums.h
+++ b/src/via_ums.h
@@ -1558,8 +1558,9 @@ viaSetDisplayScaling(ScrnInfoPtr pScrn, Bool scalingState)
 /* via_ums.c */
 void viaDisableVQ(ScrnInfoPtr pScrn);
 Bool viaUMSAccelInit(ScrnInfoPtr pScrn);
-Bool viaUMSCreate(ScrnInfoPtr pScrn);
+Bool viaUMSMapIOResources(ScrnInfoPtr pScrn);
 void viaUMSDestroy(ScrnInfoPtr pScrn);
+Bool viaUMSScreenInit(ScrnInfoPtr pScrn);
 Bool viaUMSPreInit(ScrnInfoPtr pScrn);
 void viaUMSPreInitExit(ScrnInfoPtr pScrn);
 Bool viaUMSCrtcInit(ScrnInfoPtr pScrn);


More information about the openchrome-devel mailing list