[Openchrome-devel] xf86-video-openchrome: 4 commits - configure.ac src/via_fp.c src/via_ums.c src/via_ums.h

Kevin Brace kevinbrace at kemper.freedesktop.org
Mon Mar 12 20:38:28 UTC 2018


 configure.ac  |    2 +-
 src/via_fp.c  |   53 +++++++++++++++++++++++++++++++----------------------
 src/via_ums.c |   12 ++++++++++++
 src/via_ums.h |    5 +++++
 4 files changed, 49 insertions(+), 23 deletions(-)

New commits:
commit 3e84ab948b489b20c61a825d58403e4a0ec67993
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Mon Mar 12 13:23:53 2018 -0700

    Version bumped to 0.6.172
    
    FP related cleanup and special code to support Quanta IL1 netbook FP.
    The code to support Quanta IL1 netbook is untested.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/configure.ac b/configure.ac
index 2cabc8b..9f1e275 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ(2.57)
 AC_INIT([xf86-video-openchrome],
-        [0.6.171],
+        [0.6.172],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/openchrome],
         [xf86-video-openchrome])
 
commit 452f31fbe1e4e510e84891318723ec28095b4b0f
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Mon Mar 12 13:21:22 2018 -0700

    Code cleanup of viaFPProbe
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_fp.c b/src/via_fp.c
index 6ac400b..1e8716e 100644
--- a/src/via_fp.c
+++ b/src/via_fp.c
@@ -1306,15 +1306,16 @@ viaFPProbe(ScrnInfoPtr pScrn)
     CARD8 cr3b;
 
     DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-                        "Entered viaFPProbe.\n"));
+                        "Entered %s.\n", __func__));
 
     sr12 = hwp->readSeq(hwp, 0x12);
+    sr13 = hwp->readSeq(hwp, 0x13);
+    cr3b = hwp->readCrtc(hwp, 0x3B);
+
     DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
                         "SR12: 0x%02X\n", sr12));
-    sr13 = hwp->readSeq(hwp, 0x13);
     DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
                         "SR13: 0x%02X\n", sr13));
-    cr3b = hwp->readCrtc(hwp, 0x3B);
     DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
                         "CR3B: 0x%02X\n", sr13));
 
@@ -1324,20 +1325,18 @@ viaFPProbe(ScrnInfoPtr pScrn)
         if ((sr12 & BIT(4)) || (cr3b & BIT(3))) {
             pVIADisplay->intFP1Presence = TRUE;
             pVIADisplay->intFP1DIPort = VIA_DI_PORT_DIP0;
-            pVIADisplay->intFP2Presence = FALSE;
-            pVIADisplay->intFP2DIPort = VIA_DI_PORT_NONE;
         } else {
             pVIADisplay->intFP1Presence = FALSE;
             pVIADisplay->intFP1DIPort = VIA_DI_PORT_NONE;
-            pVIADisplay->intFP2Presence = FALSE;
-            pVIADisplay->intFP2DIPort = VIA_DI_PORT_NONE;
         }
 
+        pVIADisplay->intFP2Presence = FALSE;
+        pVIADisplay->intFP2DIPort = VIA_DI_PORT_NONE;
         break;
     case VIA_KM400:
+    case VIA_K8M800:
     case VIA_P4M800PRO:
     case VIA_PM800:
-    case VIA_K8M800:
         /* 3C5.13[3] - DVP0D8 pin strapping
          *             0: AGP pins are used for AGP
          *             1: AGP pins are used by FPDP
@@ -1346,16 +1345,13 @@ viaFPProbe(ScrnInfoPtr pScrn)
             pVIADisplay->intFP1Presence = TRUE;
             pVIADisplay->intFP1DIPort = VIA_DI_PORT_FPDPHIGH
                                             | VIA_DI_PORT_FPDPLOW;
-            pVIADisplay->intFP2Presence = FALSE;
-            pVIADisplay->intFP2DIPort = VIA_DI_PORT_NONE;
-
         } else {
             pVIADisplay->intFP1Presence = FALSE;
             pVIADisplay->intFP1DIPort = VIA_DI_PORT_NONE;
-            pVIADisplay->intFP2Presence = FALSE;
-            pVIADisplay->intFP2DIPort = VIA_DI_PORT_NONE;
         }
 
+        pVIADisplay->intFP2Presence = FALSE;
+        pVIADisplay->intFP2DIPort = VIA_DI_PORT_NONE;
         break;
     case VIA_P4M890:
     case VIA_K8M890:
@@ -1367,18 +1363,20 @@ viaFPProbe(ScrnInfoPtr pScrn)
              *             1: 24-bit FPDP (Flat Panel Display Port) */
             if (sr12 & BIT(4)) {
                 pVIADisplay->intFP1Presence = TRUE;
-                pVIADisplay->intFP1DIPort = VIA_DI_PORT_FPDPLOW
-                                            | VIA_DI_PORT_FPDPHIGH;
-                pVIADisplay->intFP2Presence = FALSE;
-                pVIADisplay->intFP2DIPort = VIA_DI_PORT_NONE;
+                pVIADisplay->intFP1DIPort = VIA_DI_PORT_FPDPLOW |
+                                            VIA_DI_PORT_FPDPHIGH;
             } else {
                 pVIADisplay->intFP1Presence = TRUE;
                 pVIADisplay->intFP1DIPort = VIA_DI_PORT_FPDPLOW;
-                pVIADisplay->intFP2Presence = FALSE;
-                pVIADisplay->intFP2DIPort = VIA_DI_PORT_NONE;
             }
+        } else {
+            pVIADisplay->intFP1Presence = FALSE;
+            pVIADisplay->intFP1DIPort = VIA_DI_PORT_NONE;
+
         }
 
+        pVIADisplay->intFP2Presence = FALSE;
+        pVIADisplay->intFP2DIPort = VIA_DI_PORT_NONE;
         break;
     case VIA_CX700:
     case VIA_VX800:
@@ -1474,7 +1472,7 @@ viaFPProbe(ScrnInfoPtr pScrn)
     }
 
     DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-                        "Exiting viaFPProbe.\n"));
+                        "Exiting %s.\n", __func__));
 }
 
 void
commit fa273a4f36b61f1f39231506784a3da86dadfb43
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Mon Mar 12 13:04:46 2018 -0700

    Limit FP support to only one FP for now
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_fp.c b/src/via_fp.c
index e0069fb..6ac400b 100644
--- a/src/via_fp.c
+++ b/src/via_fp.c
@@ -1418,8 +1418,12 @@ viaFPProbe(ScrnInfoPtr pScrn)
             } else if ((!(sr13 & BIT(7))) && (!(sr13 & BIT(6)))) {
                 pVIADisplay->intFP1Presence = TRUE;
                 pVIADisplay->intFP1DIPort = VIA_DI_PORT_LVDS1;
-                pVIADisplay->intFP2Presence = TRUE;
-                pVIADisplay->intFP2DIPort = VIA_DI_PORT_LVDS2;
+
+                /*
+                 * For now, don't support the second FP.
+                 */
+                pVIADisplay->intFP2Presence = FALSE;
+                pVIADisplay->intFP2DIPort = VIA_DI_PORT_NONE;
             } else if ((!(sr13 & BIT(7))) && (sr13 & BIT(6))) {
                 pVIADisplay->intFP1Presence = FALSE;
                 pVIADisplay->intFP1DIPort = VIA_DI_PORT_NONE;
commit 0e484ecb936445efa8004178855a6bd46f0eaa26
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Mon Mar 12 12:59:24 2018 -0700

    Add special code to support Quanta IL1 netbook FP
    
    Quanta IL1 netbook has its FP (Flat Panel) connected to DVP1 (Digital
    Video Port 1) rather than LVDS Channel 1. There really is no way to
    detect this other than looking at PCI subvendor and subdevice ID.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_fp.c b/src/via_fp.c
index 80dd5ea..e0069fb 100644
--- a/src/via_fp.c
+++ b/src/via_fp.c
@@ -1402,6 +1402,13 @@ viaFPProbe(ScrnInfoPtr pScrn)
                 pVIADisplay->intFP2Presence = TRUE;
                 pVIADisplay->intFP2DIPort = VIA_DI_PORT_LVDS2;
 
+            } else if (pVIADisplay->isQuantaIL1) {
+                /* From the Quanta IL1 schematic. */
+                pVIADisplay->intFP1Presence = TRUE;
+                pVIADisplay->intFP1DIPort = VIA_DI_PORT_DVP1;
+                pVIADisplay->intFP2Presence = FALSE;
+                pVIADisplay->intFP2DIPort = VIA_DI_PORT_NONE;
+
             /* 3C5.13[7:6] - Integrated LVDS / DVI Mode Select
              *               (DVP1D15-14 pin strapping)
              *               00: LVDS1 + LVDS2
diff --git a/src/via_ums.c b/src/via_ums.c
index e3f37af..b877c80 100644
--- a/src/via_ums.c
+++ b/src/via_ums.c
@@ -973,6 +973,18 @@ umsPreInit(ScrnInfoPtr pScrn)
         pVIADisplay->isVIANanoBook      = FALSE;
     }
 
+    /* Checking for Quanta IL1 netbook. This is necessary
+     * due to its flat panel connected to DVP1 (Digital
+     * Video Port 1) rather than its LVDS channel. */
+    if ((pVia->Chipset == VIA_VX800) &&
+        (SUBVENDOR_ID(pVia->PciInfo) == 0x152D) &&
+        (SUBSYS_ID(pVia->PciInfo) == 0x0771)) {
+
+        pVIADisplay->isQuantaIL1      = TRUE;
+    } else {
+        pVIADisplay->isQuantaIL1      = FALSE;
+    }
+
     /* Checking for OLPC XO-1.5. */
     if ((pVia->Chipset == VIA_VX855) &&
         (SUBVENDOR_ID(pVia->PciInfo) == 0x152D) &&
diff --git a/src/via_ums.h b/src/via_ums.h
index 4edd556..4bf6160 100644
--- a/src/via_ums.h
+++ b/src/via_ums.h
@@ -209,6 +209,11 @@ typedef struct _VIADISPLAY {
      * Design Manufacturer) name. */
     Bool                isVIANanoBook;
 
+    /* Quanta IL1 netbook has its FP connected to DVP1
+     * rather than LVDS, hence, a special flag register
+     * is needed for properly controlling its FP. */
+    Bool                isQuantaIL1;
+
     /* OLPC XO-1.5 */
     Bool                isOLPCXO15;
 


More information about the Openchrome-devel mailing list