[Openchrome-devel] xf86-video-openchrome: 4 commits - configure.ac src/via_display.c src/via_lvds.c src/via_outputs.c src/via_ums.h src/via_vt1632.c

Kevin Brace kevinbrace at kemper.freedesktop.org
Mon Aug 8 08:30:49 UTC 2016


 configure.ac      |    2 +-
 src/via_display.c |    3 ---
 src/via_lvds.c    |    1 +
 src/via_outputs.c |   51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 src/via_ums.h     |    2 ++
 src/via_vt1632.c  |   13 +++++++++++++
 6 files changed, 68 insertions(+), 4 deletions(-)

New commits:
commit 747879ff9f465f7d216fe80492e6b9a1f9cbe90c
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Mon Aug 8 01:30:10 2016 -0700

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

diff --git a/configure.ac b/configure.ac
index fda88ef..76472dd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ(2.57)
 AC_INIT([xf86-video-openchrome],
-        [0.5.123],
+        [0.5.124],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/openchrome],
         [xf86-video-openchrome])
 
commit 758928777153b5159754a8574fe7116348afa3e6
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Mon Aug 8 01:24:00 2016 -0700

    LVDS FP and VT1632 are now deciding display output source
    
    The code was improved so that LVDS FP (Flat Panel) and VT1632
    external TMDS transmitter's mode setting callback functions are
    now deciding the display output source.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_display.c b/src/via_display.c
index bf6bf9d..9c13cf3 100644
--- a/src/via_display.c
+++ b/src/via_display.c
@@ -2154,9 +2154,6 @@ viaIGA2SetDisplayRegister(ScrnInfoPtr pScrn, DisplayModePtr mode)
      * (Power Management Status). */
     ViaSeqMask(hwp, 0x2A, 0x0F, 0x0F);
 
-    /* Use IGA2 for DVP1 Data Source Selection 0. */
-    ViaCrtcMask(hwp, 0x9B, 0x10, 0x10);
-
     /* UniChrome Pro or later */
     if ((pVia->Chipset != VIA_CLE266) && (pVia->Chipset != VIA_KM400)) {
         /* Set IGA2 to linear mode. */
diff --git a/src/via_lvds.c b/src/via_lvds.c
index 480d3df..2aadf8f 100644
--- a/src/via_lvds.c
+++ b/src/via_lvds.c
@@ -952,6 +952,7 @@ via_lvds_mode_set(xf86OutputPtr output, DisplayModePtr mode,
         case VIA_K8M890:
         case VIA_P4M900:
             viaDFPLowSetDisplaySource(pScrn, iga->index ? 0x01 : 0x00);
+            viaDVP1SetDisplaySource(pScrn, iga->index ? 0x01 : 0x00);
             break;
         case VIA_CX700:
         case VIA_VX800:
diff --git a/src/via_vt1632.c b/src/via_vt1632.c
index 4a9aaf7..35a9d35 100644
--- a/src/via_vt1632.c
+++ b/src/via_vt1632.c
@@ -216,11 +216,24 @@ via_vt1632_mode_set(xf86OutputPtr output, DisplayModePtr mode,
                     DisplayModePtr adjusted_mode)
 {
     ScrnInfoPtr pScrn = output->scrn;
+    drmmode_crtc_private_ptr iga = output->crtc->driver_private;
+    VIAPtr pVia = VIAPTR(pScrn);
     ViaVT1632Ptr pVIAVT1632Rec = output->driver_private;
 
     DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, 
                         "Entered via_vt1632_mode_set.\n"));
 
+    switch (pVia->Chipset) {
+    case VIA_CX700:
+    case VIA_VX800:
+    case VIA_VX855:
+    case VIA_VX900:
+        viaDVP1SetDisplaySource(pScrn, iga->index ? 0x01 : 0x00);
+        break;
+    default:
+        break;
+    }
+
     via_vt1632_dump_registers(pScrn, pVIAVT1632Rec->VT1632I2CDev);
 
     viaVT1632InitRegisters(pScrn, pVIAVT1632Rec->VT1632I2CDev);
commit ca0f3e86b5f4c6a9c9e3dddd914fa5404acc0d6b
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Mon Aug 8 01:08:10 2016 -0700

    Added viaDVP0SetDisplaySource
    
    viaDVP0SetDisplaySource function sets the display output source
    for DVP0 (Digital Video Port) interface. This function is located
    inside via_outputs.c.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_outputs.c b/src/via_outputs.c
index 97c4a46..1465a38 100644
--- a/src/via_outputs.c
+++ b/src/via_outputs.c
@@ -81,6 +81,32 @@ ViaPrintMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
 }
 
 /*
+ * Sets IGA1 or IGA2 as the display output source for DVP0
+ * (Digital Video Port) interface.
+ */
+void
+viaDVP0SetDisplaySource(ScrnInfoPtr pScrn, CARD8 displaySource)
+{
+    vgaHWPtr hwp = VGAHWPTR(pScrn);
+    CARD8 temp = displaySource;
+
+    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                        "Entered viaDVP0SetDisplaySource.\n"));
+
+    /* Set DVP0 display output source.
+    /* 3X5.96[4] - DVP0 Data Source Selection
+     *             0: Primary Display
+     *             1: Secondary Display */
+    ViaCrtcMask(hwp, 0x96, temp << 4, 0x10);
+    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                "DVP0 Display Output Source: IGA%d\n",
+                (temp & 0x01) + 1);
+
+    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                        "Exiting viaDVP0SetDisplaySource.\n"));
+}
+
+/*
  * Sets IGA1 or IGA2 as the display output source for DVP1
  * (Digital Video Port) interface.
  */
diff --git a/src/via_ums.h b/src/via_ums.h
index 484383a..f8627e2 100644
--- a/src/via_ums.h
+++ b/src/via_ums.h
@@ -205,6 +205,7 @@ Bool umsPreInit(ScrnInfoPtr pScrn);
 Bool umsCrtcInit(ScrnInfoPtr pScrn);
 
 /* via_output.c */
+void viaDVP0SetDisplaySource(ScrnInfoPtr pScrn, CARD8 displaySource);
 void viaDVP1SetDisplaySource(ScrnInfoPtr pScrn, CARD8 displaySource);
 void viaOutputDetect(ScrnInfoPtr pScrn);
 CARD32 ViaGetMemoryBandwidth(ScrnInfoPtr pScrn);
commit 7f8ccddce918b2a58a009094d71ae02c27e1de56
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Mon Aug 8 00:48:56 2016 -0700

    Added viaDVP1SetDisplaySource
    
    viaDVP1SetDisplaySource function sets the display output source
    for DVP1 (Digital Video Port) interface. This function is located
    inside via_outputs.c.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_outputs.c b/src/via_outputs.c
index 72e3969..97c4a46 100644
--- a/src/via_outputs.c
+++ b/src/via_outputs.c
@@ -81,6 +81,31 @@ ViaPrintMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
 }
 
 /*
+ * Sets IGA1 or IGA2 as the display output source for DVP1
+ * (Digital Video Port) interface.
+ */
+void
+viaDVP1SetDisplaySource(ScrnInfoPtr pScrn, CARD8 displaySource)
+{
+    vgaHWPtr hwp = VGAHWPTR(pScrn);
+    CARD8 temp = displaySource;
+
+    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                        "Entered viaDVP1SetDisplaySource.\n"));
+
+    /* Set DVP1 display output source.
+    /* 3X5.9B[4] - DVP1 Data Source Selection
+     *             0: Primary Display
+     *             1: Secondary Display */
+    ViaCrtcMask(hwp, 0x9B, temp << 4, 0x10);
+    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                "DVP1 Display Output Source: IGA%d\n",
+                (temp & 0x01) + 1);
+
+    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                        "Exiting viaDVP1SetDisplaySource.\n"));
+}
+/*
  * Reads off the VIA Technologies IGP pin strapping for
  * display detection purposes.
  */
diff --git a/src/via_ums.h b/src/via_ums.h
index 3cae835..484383a 100644
--- a/src/via_ums.h
+++ b/src/via_ums.h
@@ -205,6 +205,7 @@ Bool umsPreInit(ScrnInfoPtr pScrn);
 Bool umsCrtcInit(ScrnInfoPtr pScrn);
 
 /* via_output.c */
+void viaDVP1SetDisplaySource(ScrnInfoPtr pScrn, CARD8 displaySource);
 void viaOutputDetect(ScrnInfoPtr pScrn);
 CARD32 ViaGetMemoryBandwidth(ScrnInfoPtr pScrn);
 CARD32 ViaModeDotClockTranslate(ScrnInfoPtr pScrn, DisplayModePtr mode);


More information about the Openchrome-devel mailing list