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

Kevin Brace kevinbrace at kemper.freedesktop.org
Wed Mar 29 08:26:17 UTC 2017


 configure.ac   |    2 -
 src/via_tmds.c |   50 +++++++++----------------------
 src/via_ums.h  |   91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 107 insertions(+), 36 deletions(-)

New commits:
commit 6f415917a664c25f32158bc9e3fd15df8e4f8580
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Wed Mar 29 01:23:14 2017 -0700

    Version bumped to 0.6.101
    
    Rewrote viaTMDSPower function with new inline functions.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/configure.ac b/configure.ac
index 7a5eac3..3f27feb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ(2.57)
 AC_INIT([xf86-video-openchrome],
-        [0.6.100],
+        [0.6.101],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/openchrome],
         [xf86-video-openchrome])
 
commit ccddad13c6cca0655c86b94452f06e836e97b6ac
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Wed Mar 29 01:22:08 2017 -0700

    Rewrite of viaTMDSPower
    
    Using the new inline functions.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_tmds.c b/src/via_tmds.c
index 9543665..d01808f 100644
--- a/src/via_tmds.c
+++ b/src/via_tmds.c
@@ -210,55 +210,35 @@ viaTMDSSense(ScrnInfoPtr pScrn)
     return tmdsReceiverDetected;
 }
 
+/*
+ * Sets integrated TMDS (DVI) monitor power state.
+ */
 static void
 viaTMDSPower(ScrnInfoPtr pScrn, Bool powerState)
 {
-    vgaHWPtr hwp = VGAHWPTR(pScrn);
-
     DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
                         "Entered viaTMDSPower.\n"));
 
     if (powerState) {
-        /* 3X5.91[7] - Software Direct On / Off Display Period
-                       in the Panel Path
-                       0: On
-                       1: Off */
-        ViaCrtcMask(hwp, 0x91, 0x00, 0x80);
-
-        /* 3X5.91[0] - Hardware or Software Control Power Sequence
-                       1: Software Control */
-        ViaCrtcMask(hwp, 0x91, 0x01, 0x01);
-
+        viaLVDS1SetSoftDisplayPeriod(pScrn, TRUE);
+        viaLVDS1SetPowerSeq(pScrn, TRUE);
         usleep(TD0);
-
-        /* 3X5.91[4] - Software VDD On
-                       0: Off
-                       1: On */
-        ViaCrtcMask(hwp, 0x91, 0x10, 0x10);
-
+        viaLVDS1SetSoftVdd(pScrn, TRUE);
         usleep(TD1);
-
-        /* 3X5.91[3] - Software Data On
-                       0: Off
-                       1: On */
-        ViaCrtcMask(hwp, 0x91, 0x08, 0x08);
-
-        /* 3X5.D2[3] - Power Down (Active High) for DVI
-         *             0: TMDS power on
-         *             1: TMDS power down */
-        ViaCrtcMask(hwp, 0xD2, 0x00, 0x08);
+        viaLVDS1SetSoftData(pScrn, TRUE);
+        viaTMDSSetPower(pScrn, TRUE);
     } else {
-        ViaCrtcMask(hwp, 0xD2, 0x08, 0x08);
-
-        ViaCrtcMask(hwp, 0x91, 0x00, 0x08);
-
+        viaLVDS1SetPowerSeq(pScrn, TRUE);
+        viaTMDSSetPower(pScrn, FALSE);
+        viaLVDS1SetSoftData(pScrn, FALSE);
         usleep(TD1);
-
-        ViaCrtcMask(hwp, 0x91, 0x00, 0x10);
+        viaLVDS1SetSoftVdd(pScrn, FALSE);
+        usleep(TD0);
+        viaLVDS1SetSoftDisplayPeriod(pScrn, FALSE);
     }
 
     xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-                "Integrated TMDS (DVI) Power: %s\n",
+                "DVI Monitor Power: %s\n",
                 powerState ? "On" : "Off");
 
     DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
commit 3526fcad9ecc3a48971ce579e581481f937ed00f
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Wed Mar 29 00:31:51 2017 -0700

    Added viaTMDSSetPower
    
    This inline function was added to via_ums.h.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_ums.h b/src/via_ums.h
index 6b44d01..6c4d7b2 100644
--- a/src/via_ums.h
+++ b/src/via_ums.h
@@ -280,6 +280,23 @@ viaLVDS1SetSoftDisplayPeriod(ScrnInfoPtr pScrn, Bool softOn)
                 softOn ? "On" : "Off");
 }
 
+/*
+ * Sets CX700 / VX700 and VX800 chipsets' TMDS (DVI) power state.
+ */
+static inline void
+viaTMDSSetPower(ScrnInfoPtr pScrn, Bool powerState)
+{
+    /* Set TMDS (DVI) power state. */
+    /* 3X5.D2[3] - Power Down (Active High) for DVI
+     *             0: TMDS power on
+     *             1: TMDS power down */
+    ViaCrtcMask(VGAHWPTR(pScrn), 0xD2, powerState ? 0 : BIT(3),
+                BIT(3));
+    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                "TMDS (DVI) Power State: %s\n",
+                powerState ? "On" : "Off");
+}
+
 
 /* via_ums.c */
 void viaUnmapMMIO(ScrnInfoPtr pScrn);
commit 7e1387ded57041a37f002334c39f38a595a32517
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Wed Mar 29 00:24:55 2017 -0700

    Added viaLVDS1SetSoftDisplayPeriod
    
    This inline function was added to via_ums.h.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_ums.h b/src/via_ums.h
index bcd1421..6b44d01 100644
--- a/src/via_ums.h
+++ b/src/via_ums.h
@@ -261,6 +261,25 @@ viaLVDS1SetSoftVdd(ScrnInfoPtr pScrn, Bool softOn)
                 softOn ? "On" : "Off");
 }
 
+/*
+ * Sets CX700 or later single chipset's LVDS1 software controlled
+ * display period.
+ */
+static inline void
+viaLVDS1SetSoftDisplayPeriod(ScrnInfoPtr pScrn, Bool softOn)
+{
+    /* Set LVDS1 software controlled display period state. */
+    /* 3X5.91[7] - Software Direct On / Off Display Period
+     *             in the Panel Path
+     *             0: On
+     *             1: Off */
+    ViaCrtcMask(VGAHWPTR(pScrn), 0x91, softOn ? 0 : BIT(7),
+                BIT(7));
+    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                "LVDS1 Software Controlled Display Period: %s\n",
+                softOn ? "On" : "Off");
+}
+
 
 /* via_ums.c */
 void viaUnmapMMIO(ScrnInfoPtr pScrn);
commit 27f05a5d558ca63b758adfa549a6606856f49cf3
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Wed Mar 29 00:06:48 2017 -0700

    Added viaLVDS1SetSoftVdd
    
    This inline function was added to via_ums.h.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_ums.h b/src/via_ums.h
index f6c4681..bcd1421 100644
--- a/src/via_ums.h
+++ b/src/via_ums.h
@@ -244,6 +244,23 @@ viaLVDS1SetSoftData(ScrnInfoPtr pScrn, Bool softOn)
                 softOn ? "On" : "Off");
 }
 
+/*
+ * Sets CX700 or later single chipset's LVDS1 software controlled Vdd.
+ */
+static inline void
+viaLVDS1SetSoftVdd(ScrnInfoPtr pScrn, Bool softOn)
+{
+    /* Set LVDS1 software controlled Vdd. */
+    /* 3X5.91[4] - Software VDD On
+     *             0: Off
+     *             1: On */
+    ViaCrtcMask(VGAHWPTR(pScrn), 0x91, softOn ? BIT(4) : 0,
+                BIT(4));
+    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                "LVDS1 Software Controlled Vdd: %s\n",
+                softOn ? "On" : "Off");
+}
+
 
 /* via_ums.c */
 void viaUnmapMMIO(ScrnInfoPtr pScrn);
commit 959a66f68ecd90d83f2755410284d5f668763d26
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Tue Mar 28 22:58:50 2017 -0700

    Added viaLVDS1SetSoftData
    
    This inline function was added to via_ums.h.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_ums.h b/src/via_ums.h
index b747d66..f6c4681 100644
--- a/src/via_ums.h
+++ b/src/via_ums.h
@@ -226,6 +226,24 @@ viaLVDS1SetPowerSeq(ScrnInfoPtr pScrn, Bool ctrlType)
                 ctrlType ? "Software" : "Hardware");
 }
 
+/*
+ * Sets CX700 or later single chipset's LVDS1 software controlled
+ * data path state.
+ */
+static inline void
+viaLVDS1SetSoftData(ScrnInfoPtr pScrn, Bool softOn)
+{
+    /* Set LVDS1 software controlled data path state. */
+    /* 3X5.91[3] - Software Data On
+     *             0: Off
+     *             1: On */
+    ViaCrtcMask(VGAHWPTR(pScrn), 0x91, softOn ? BIT(3) : 0,
+                BIT(3));
+    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                "LVDS1 Software Controlled Data Path: %s\n",
+                softOn ? "On" : "Off");
+}
+
 
 /* via_ums.c */
 void viaUnmapMMIO(ScrnInfoPtr pScrn);
commit 582d0161293b5e7ef0e619d888e88fdec3cdf3a2
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Tue Mar 28 22:55:33 2017 -0700

    Added viaLVDS1SetPowerSeq
    
    This inline function was added to via_ums.h.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_ums.h b/src/via_ums.h
index 7fde994..b747d66 100644
--- a/src/via_ums.h
+++ b/src/via_ums.h
@@ -209,6 +209,24 @@ typedef struct
 } ViaExpireNumberTable;
 
 
+/*
+ * Sets CX700 or later single chipset's LVDS1 power sequence type.
+ */
+static inline void
+viaLVDS1SetPowerSeq(ScrnInfoPtr pScrn, Bool ctrlType)
+{
+    /* Set LVDS1 power sequence type. */
+    /* 3X5.91[0] - LVDS1 Hardware or Software Control Power Sequence
+     *             0: Hardware Control
+     *             1: Software Control */
+    ViaCrtcMask(VGAHWPTR(pScrn), 0x91, ctrlType ? BIT(0) : 0x00,
+                BIT(0));
+    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                "LVDS1 Power Sequence: %s Control\n",
+                ctrlType ? "Software" : "Hardware");
+}
+
+
 /* via_ums.c */
 void viaUnmapMMIO(ScrnInfoPtr pScrn);
 void viaDisableVQ(ScrnInfoPtr pScrn);
commit 489cd232fc08a830fb24e8d115d0898c1f65af21
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Tue Mar 28 22:09:13 2017 -0700

    Adding BIT macro
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_ums.h b/src/via_ums.h
index ec2204c..7fde994 100644
--- a/src/via_ums.h
+++ b/src/via_ums.h
@@ -125,6 +125,8 @@
 #define     VIA_TMDS_NONE           0x0
 #define     VIA_TMDS_VT1632         0x1
 
+#define BIT(x) (1 << x)
+
 
 typedef struct ViaPanelMode {
     int Width;


More information about the Openchrome-devel mailing list