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

Kevin Brace kevinbrace at kemper.freedesktop.org
Mon May 23 05:24:51 UTC 2016


 configure.ac      |    2 
 src/via_display.c |  173 ++++++++++++++++++++++++++++++++++++++++++++++++++----
 2 files changed, 164 insertions(+), 11 deletions(-)

New commits:
commit 9243d288410857a8c38d11c391af2734d8d482cf
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Sun May 22 22:24:16 2016 -0700

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

diff --git a/configure.ac b/configure.ac
index a92df76..135c921 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ(2.57)
 AC_INIT([xf86-video-openchrome],
-        [0.4.151],
+        [0.4.152],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/openchrome],
         [xf86-video-openchrome])
 
commit 7738d22741cd7cce32b6d3df1e809e7403f74bc5
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Sun May 22 22:22:03 2016 -0700

    Major rewrite of viaIGAInitCommon
    
    Reorganized viaIGAInitCommon function, and add initialization code
    for a few registers. This function is located inside via_display.c.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_display.c b/src/via_display.c
index ce1c621..6b157dc 100644
--- a/src/via_display.c
+++ b/src/via_display.c
@@ -293,7 +293,9 @@ void
 viaIGAInitCommon(ScrnInfoPtr pScrn)
 {
     vgaHWPtr hwp = VGAHWPTR(pScrn);
+#ifdef HAVE_DEBUG
     CARD8 temp;
+#endif
 
     DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
                         "Entered viaIGAInitCommon.\n"));
@@ -307,11 +309,34 @@ viaIGAInitCommon(ScrnInfoPtr pScrn)
     ViaCRTCSetGraphicsRegisters(pScrn);
     ViaCRTCSetAttributeRegisters(pScrn);
 
+#ifdef HAVE_DEBUG
     temp = hwp->readSeq(hwp, 0x15);
     DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
                         "SR15: 0x%02X\n", temp));
+    temp = hwp->readSeq(hwp, 0x19);
+    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                        "SR19: 0x%02X\n", temp));
+    temp = hwp->readSeq(hwp, 0x1A);
+    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                        "SR1A: 0x%02X\n", temp));
+    temp = hwp->readSeq(hwp, 0x1E);
+    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                        "SR1E: 0x%02X\n", temp));
+    temp = hwp->readSeq(hwp, 0x2A);
+    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                        "SR2A: 0x%02X\n", temp));
+    temp = hwp->readSeq(hwp, 0x2D);
+    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                        "SR2D: 0x%02X\n", temp));
+    temp = hwp->readSeq(hwp, 0x2E);
+    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                        "SR2E: 0x%02X\n", temp));
+    temp = hwp->readSeq(hwp, 0x3F);
+    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+                        "SR3F: 0x%02X\n", temp));
+#endif
 
-    /* Be careful with 3C5.15[5].
+    /* Be careful with 3C5.15[5] - Wrap Around Disable.
      * It must be set to 1 for correct operation. */
     /* 3C5.15[7]   - 8/6 Bits LUT
      *               0: 6-bit
@@ -336,17 +361,145 @@ viaIGAInitCommon(ScrnInfoPtr pScrn)
      * 3C5.15[0]   - Reserved */
     ViaSeqMask(hwp, 0x15, 0x22, 0x62);
 
-    temp = hwp->readSeq(hwp, 0x1A);
-    DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-                        "SR1A: 0x%02X\n", temp));
-    /* 3C5.1A[7]: Read Cache Enable
-     *            0 = Disable
-     *            1 = Enable
-     * 3C5.1A[3]: Extended Mode Memory Access Enable
-     *            0 = Disable
-     *            1 = Enable */
+    /* 3C5.19[7] - Reserved
+     * 3C5.19[6] - MIU/AGP Interface Clock Control
+     *             0: Clocks always on
+     *             1: Enable clock gating
+     * 3C5.19[5] - P-Arbiter Interface Clock Control
+     *             0: Clocks always on
+     *             1: Enable clock gating
+     * 3C5.19[4] - AGP Interface Clock Control
+     *             0: Clocks always on
+     *             1: Enable clock gating
+     * 3C5.19[3] - Typical Arbiter Interface Clock Control
+     *             0: Clocks always on
+     *             1: Enable clock gating
+     * 3C5.19[2] - MC Interface Clock Control
+     *             0: Clocks always on
+     *             1: Enable clock gating
+     * 3C5.19[1] - Display Interface Clock Control
+     *             0: Clocks always on
+     *             1: Enable clock gating
+     * 3C5.19[0] - CPU Interface Clock Control
+     *             0: Clocks always on
+     *             1: Enable clock gating */
+    ViaSeqMask(hwp, 0x19, 0x7F, 0x7F);
+
+    /* 3C5.1A[7] - Read Cache Enable
+     *             0: Disable
+     *             1: Enable
+     * 3C5.1A[6] - Software Reset
+     *             0: Default value
+     *             1: Reset
+     * 3C5.1A[5] - DVI Sense
+     *             0: No connect
+     *             1: Connected
+     * 3C5.1A[4] - Second DVI Sense
+     *             0: No connect
+     *             1: Connected
+     * 3C5.1A[3] - Extended Mode Memory Access Enable
+     *             0: Disable
+     *             1: Enable
+     * 3C5.1A[2] - PCI Burst Write Wait State Select
+     *             0: 0 Wait state
+     *             1: 1 Wait state
+     * 3C5.1A[1] - Reserved
+     * 3C5.1A[0] - LUT Shadow Access
+     *             0: 3C6/3C7/3C8/3C9 addresses map to
+     *                Primary Display’s LUT
+     *             1: 3C6/3C7/3C8/3C9 addresses map to
+     *                Secondary Display’s LUT */
     ViaSeqMask(hwp, 0x1A, 0x88, 0x88);
 
+    /* 3C5.1E[7:6] - Video Capture Port Power Control
+     *               0x: Pad always off
+     *               10: Depend on the other control signal
+     *               11: Pad on/off according to the PMS
+     * 3C5.1E[5:4] - Digital Video Port 1 Power Control
+     *               0x: Pad always off
+     *               10: Depend on the other control signal
+     *               11: Pad on/off according to the PMS
+     * 3C5.1E[3]   - Spread Spectrum On/Off
+     *               0: Off
+     *               1: On
+     * 3C5.1E[2]   - Reserved
+     * 3C5.1E[1]   - Replace ECK by MCK
+     *               For BIST purpose.
+     * 3C5.1E[0]   - On/Off ROC ECK
+     *               0: Off
+     *               1: On */
+    ViaSeqMask(hwp, 0x1E, 0xF0, 0xF0);
+
+    /* 3C5.2A[7]   - Reserved
+     * 3C5.2A[6]   - The Spread Spectrum Type Control
+     *               0: Original Type
+     *               1: FIFO Type
+     * 3C5.2A[5:4] - Reserved
+     * 3C5.2A[3:2] - LVDS Channel 2 I/O Pad Control
+     *               0x: Pad always off
+     *               10: Depend on the other control signal
+     *               11: Pad on/off according to the PMS
+     * 3C5.2A[1:0] - LVDS Channel 1 and DVI I/O Pad Control
+     *               0x: Pad always off
+     *               10: Depend on the other control signal
+     *               11: Pad on/off according to the PMS */
+    ViaSeqMask(hwp, 0x2A, 0x0F, 0x0F);
+
+    /* 3C5.2D[7:6] - E3_ECK_N Selection
+     *               00: E3_ECK_N
+     *               01: E3_ECK
+     *               10: delayed E3_ECK_N
+     *               11: delayed E3_ECK
+     * 3C5.2D[5:4] - VCK (Primary Display Clock) PLL Power Control
+     *               0x: PLL power-off
+     *               10: PLL always on
+     *               11: PLL on/off according to the PMS
+     * 3C5.2D[3:2] - LCK (Secondary Display Clock) PLL Power Control
+     *               0x: PLL power-off
+     *               10: PLL always on
+     *               11: PLL on/off according to the PMS
+     * 3C5.2D[1:0] - ECK (Engine Clock) PLL Power Control
+     *               0x: PLL power-off
+     *               10: PLL always on
+     *               11: PLL on/off according to the PMS */
+    ViaSeqMask(hwp, 0x2D, 0x03, 0xC3);
+
+    /* 3C5.2E[7:6] - Capturer (Gated Clock <ECK>)
+     *               0x: Clock off
+     *               10: Clock always on
+     *               11: Clock on/off according to the engine IDLE status
+     * 3C5.2E[5:4] - Video Processor (Gated Clock <ECK>)
+     *               0x: Clock off
+     *               10: Clock always on
+     *               11: Clock on/off according to the engine IDLE status
+     * 3C5.2E[3:2] - PCI Master/DMA (Gated Clock <ECK/CPUCK>)
+     *               0x: Clock off
+     *               10: Clock always on
+     *               11: Clock on/off according to the engine IDLE status
+     * 3C5.2E[1:0] - Video Playback Engine (V3/V4 Gated Clock <VCK>)
+     *               0x: Clock off
+     *               10: Clock always on
+     *               11: Clock on/off according to the engine IDLE status */
+    ViaSeqMask(hwp, 0x2E, 0xFF, 0xFF);
+
+    /* 3C5.3F[7:6] - CR Clock Control (Gated Clock <ECK>)
+     *               0x: Clock off
+     *               10: Clock always on
+     *               11: Clock on/off according to the engine IDLE status
+     * 3C5.3F[5:4] - 3D Clock Control (Gated Clock <ECK>)
+     *               0x: Clock off
+     *               10: Clock always on
+     *               11: Clock on/off according to the engine IDLE status
+     * 3C5.3F[3:2] - 2D Clock Control (Gated Clock <ECK/CPUCK>)
+     *               0x: Clock off
+     *               10: Clock always on
+     *               11: Clock on/off according to the engine IDLE status
+     * 3C5.3F[1:0] - Video Clock Control (Gated Clock <ECK>)
+     *               0x: Clock off
+     *               10: Clock always on
+     *               11: Clock on/off according to each engine IDLE status */
+    ViaSeqMask(hwp, 0x3F, 0xFF, 0xFF);
+
     DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
                         "Exiting viaIGAInitCommon.\n"));
 }


More information about the Openchrome-devel mailing list