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

Kevin Brace kevinbrace at kemper.freedesktop.org
Fri Aug 5 18:25:28 UTC 2016


 configure.ac   |    2 -
 src/via_lvds.c |   73 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
 2 files changed, 70 insertions(+), 5 deletions(-)

New commits:
commit 42de5b31ef5c7cb3ff11ad692d9c0b2d7a8d3cf2
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Fri Aug 5 11:24:53 2016 -0700

    Version bumped to 0.5.115
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/configure.ac b/configure.ac
index c66b9c6..ede6ba9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ(2.57)
 AC_INIT([xf86-video-openchrome],
-        [0.5.114],
+        [0.5.115],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/openchrome],
         [xf86-video-openchrome])
 
commit 6fd3420b46bdd75bce029a34e1e8993352b950d8
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Fri Aug 5 11:23:47 2016 -0700

    Setting LVDS2 display source from via_lvds_mode_set
    
    Taking this functionality out of viaSetLVDSOutput function.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_lvds.c b/src/via_lvds.c
index 7857bfd..954837a 100644
--- a/src/via_lvds.c
+++ b/src/via_lvds.c
@@ -848,9 +848,6 @@ viaSetLVDSOutput(ScrnInfoPtr pScrn)
     case VIA_VX800:
     case VIA_VX855:
     case VIA_VX900:
-        /* IGA2 for LVDS Channel 2. */
-        ViaCrtcMask(hwp, 0x97, 0x10, 0x10);
-
         /* Do not power down LVDS Channel 2. */
         /* For now, use OPENLDI mode for LVDS Channel 2. */
         ViaCrtcMask(hwp, 0xD2, 0x01, 0x41);
@@ -875,6 +872,7 @@ via_lvds_mode_set(xf86OutputPtr output, DisplayModePtr mode,
 {
     ViaPanelInfoPtr Panel = output->driver_private;
     ScrnInfoPtr pScrn = output->scrn;
+    drmmode_crtc_private_ptr iga = output->crtc->driver_private;
     VIAPtr pVia = VIAPTR(pScrn);
 
     if (Panel->Scale) {
@@ -885,7 +883,20 @@ via_lvds_mode_set(xf86OutputPtr output, DisplayModePtr mode,
         ViaPanelScaleDisable(pScrn);
     }
 
-    viaSetLVDSOutput(pScrn);
+    if (output->crtc) {
+        viaSetLVDSOutput(pScrn);
+
+        switch (pVia->Chipset) {
+        case VIA_CX700:
+        case VIA_VX800:
+        case VIA_VX855:
+        case VIA_VX900:
+            viaLVDS2SetDisplaySource(pScrn, iga->index ? 0x01 : 0x00);
+            break;
+        default:
+            break;
+        }
+    }
 }
 
 static int
commit e4c69d74acef15a023b76d171adce4995fd0ac15
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Fri Aug 5 10:11:36 2016 -0700

    Added viaLVDS2SetDisplaySource
    
    viaLVDS2SetDisplaySource function sets the display source of LVDS2
    integrated LVDS transmitter. This function is located inside
    via_lvds.c.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_lvds.c b/src/via_lvds.c
index 40d8868..7857bfd 100644
--- a/src/via_lvds.c
+++ b/src/via_lvds.c
@@ -126,6 +126,33 @@ viaLVDS1SetDisplaySource(ScrnInfoPtr pScrn, CARD8 displaySource)
                         "Exiting viaLVDS1SetDisplaySource.\n"));
 }
 
+/*
+ * Sets IGA1 or IGA2 as the display output source for VIA Technologies
+ * Chrome IGP LVDS2 integrated LVDS transmitter.
+ */
+static void
+viaLVDS2SetDisplaySource(ScrnInfoPtr pScrn, CARD8 displaySource)
+{
+    vgaHWPtr hwp = VGAHWPTR(pScrn);
+    CARD8 temp = displaySource;
+
+    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                        "Entered viaLVDS2SetDisplaySource.\n"));
+
+    /* Set LVDS2 integrated LVDS transmitter display output source.
+    /* 3X5.97[4] - LVDS Channel 2 Data Source Selection
+     *             0: Primary Display
+     *             1: Secondary Display */
+    ViaCrtcMask(hwp, 0x97, temp << 4, 0x10);
+    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                "LVDS2 Integrated LVDS Transmitter Display Output "
+                "Source: IGA%d\n",
+                (temp & 0x01) + 1);
+
+    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                        "Exiting viaLVDS2SetDisplaySource.\n"));
+}
+
 static void
 ViaLVDSSoftwarePowerFirstSequence(ScrnInfoPtr pScrn, Bool on)
 {
commit f55d4d76b066c91e9934f3e6182d24f746fb83d9
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Fri Aug 5 10:02:55 2016 -0700

    Added viaLVDS1SetDisplaySource
    
    viaLVDS1SetDisplaySource function sets the display source of LVDS1
    integrated LVDS transmitter. This function is located inside
    via_lvds.c.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_lvds.c b/src/via_lvds.c
index aee1b0c..40d8868 100644
--- a/src/via_lvds.c
+++ b/src/via_lvds.c
@@ -99,6 +99,33 @@ static DisplayModeRec OLPCMode = {
 #define TD2 0
 #define TD3 25
 
+/*
+ * Sets IGA1 or IGA2 as the display output source for VIA Technologies
+ * Chrome IGP LVDS1 integrated LVDS transmitter.
+ */
+static void
+viaLVDS1SetDisplaySource(ScrnInfoPtr pScrn, CARD8 displaySource)
+{
+    vgaHWPtr hwp = VGAHWPTR(pScrn);
+    CARD8 temp = displaySource;
+
+    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                        "Entered viaLVDS1SetDisplaySource.\n"));
+
+    /* Set LVDS1 integrated LVDS transmitter display output source.
+    /* 3X5.99[4] - LVDS Channel 1 Data Source Selection
+     *             0: Primary Display
+     *             1: Secondary Display */
+    ViaCrtcMask(hwp, 0x99, temp << 4, 0x10);
+    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                "LVDS1 Integrated LVDS Transmitter Display Output "
+                "Source: IGA%d\n",
+                (temp & 0x01) + 1);
+
+    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                        "Exiting viaLVDS1SetDisplaySource.\n"));
+}
+
 static void
 ViaLVDSSoftwarePowerFirstSequence(ScrnInfoPtr pScrn, Bool on)
 {


More information about the Openchrome-devel mailing list