[Openchrome-devel] xf86-video-openchrome: 2 commits - configure.ac src/via_display.c
Kevin Brace
kevinbrace at kemper.freedesktop.org
Sat Oct 22 00:59:11 UTC 2016
configure.ac | 2 -
src/via_display.c | 57 ++++++++++++++++++++++++++++++++++++++++--------------
2 files changed, 44 insertions(+), 15 deletions(-)
New commits:
commit dc83f3f70b32de616ca03ef5d2dfcf1b95c58b9a
Author: Kevin Brace <kevinbrace at gmx.com>
Date: Fri Oct 21 17:55:38 2016 -0700
Version bumped to 0.5.165
Signed-off-by: Kevin Brace <kevinbrace at gmx.com>
diff --git a/configure.ac b/configure.ac
index c404060..5c300f6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
# Initialize Autoconf
AC_PREREQ(2.57)
AC_INIT([xf86-video-openchrome],
- [0.5.164],
+ [0.5.165],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/openchrome],
[xf86-video-openchrome])
commit 6f8cd73f7ad83ec21735d0b3c288a34910ad76f2
Author: Kevin Brace <kevinbrace at gmx.com>
Date: Fri Oct 21 17:54:29 2016 -0700
Altered the IGA2 HW reset sequence during mode setting
Signed-off-by: Kevin Brace <kevinbrace at gmx.com>
diff --git a/src/via_display.c b/src/via_display.c
index d60c4a7..de2b76f 100644
--- a/src/via_display.c
+++ b/src/via_display.c
@@ -247,6 +247,29 @@ viaIGA1SetHIDisplayLocation(ScrnInfoPtr pScrn,
}
/*
+ * Resets IGA2 hardware.
+ */
+static void
+viaIGA2HWReset(ScrnInfoPtr pScrn, CARD8 resetState)
+{
+ vgaHWPtr hwp = VGAHWPTR(pScrn);
+
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Entered viaIGA2HWReset.\n"));
+
+ /* 3X5.6A[6] - Second Display Channel Reset
+ * 0: Reset
+ * 1: Normal Operation */
+ ViaCrtcMask(hwp, 0x6A, resetState << 6, 0x40);
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "IGA2 HW Reset: %s\n",
+ (resetState & 0x01) ? "Off" : "On");
+
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Exiting viaIGA2HWReset.\n"));
+}
+
+/*
* Controls IGA2 display output on or off state.
*/
static void
@@ -280,11 +303,8 @@ viaIGA2DisplayChannel(ScrnInfoPtr pScrn, Bool channelState)
DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"Entered viaIGA2DisplayChannel.\n"));
- /* 3X5.6A[7] - Second Display Channel Enable
- * 3X5.6A[6] - Second Display Channel Reset (0 for reset) */
- ViaCrtcMask(hwp, 0x6A, 0x00, 0x40);
- ViaCrtcMask(hwp, 0x6A, channelState ? 0x80 : 0x00, 0x80);
- ViaCrtcMask(hwp, 0x6A, 0x40, 0x40);
+ /* 3X5.6A[7] - Second Display Channel Enable */
+ ViaCrtcMask(hwp, 0x6A, channelState << 7, 0x80);
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"IGA2 Display Channel: %s\n",
@@ -3599,13 +3619,17 @@ iga2_crtc_mode_set(xf86CrtcPtr crtc, DisplayModePtr mode,
DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"Entered iga2_crtc_mode_set.\n"));
- if (!vgaHWInit(pScrn, adjusted_mode)) {
- DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "vgaHWInit failed.\n"));
- DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "Exiting iga2_crtc_mode_set.\n"));
- return;
- }
+ /* Put IGA2 into a reset state. */
+ viaIGA2HWReset(pScrn, 0x00);
+
+ /* Disable IGA2 display channel. */
+ viaIGA2DisplayChannel(pScrn, FALSE);
+
+// if (!vgaHWInit(pScrn, adjusted_mode)) {
+// DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+// "vgaHWInit failed.\n"));
+// goto exit;
+// }
viaIGAInitCommon(pScrn);
viaIGA2Init(pScrn);
@@ -3620,11 +3644,16 @@ iga2_crtc_mode_set(xf86CrtcPtr crtc, DisplayModePtr mode,
hwp->disablePalette(hwp);
- viaIGA2DisplayChannel(pScrn, TRUE);
-
viaIGA2SetFBStartingAddress(crtc, x, y);
VIAVidAdjustFrame(pScrn, x, y);
+exit:
+ /* Enable IGA2 display channel. */
+ viaIGA2DisplayChannel(pScrn, TRUE);
+
+ /* Put IGA2 back into a normal operating state. */
+ viaIGA2HWReset(pScrn, 0x01);
+
DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"Exiting iga2_crtc_mode_set.\n"));
}
More information about the Openchrome-devel
mailing list