[Openchrome-devel] xf86-video-openchrome: 2 commits - configure.ac src/via_fp.c
Kevin Brace
kevinbrace at kemper.freedesktop.org
Mon Apr 24 06:49:26 UTC 2017
configure.ac | 2 -
src/via_fp.c | 85 +++++++++++++++++++++++++++++++++++++++++++++++------------
2 files changed, 69 insertions(+), 18 deletions(-)
New commits:
commit 16f71176657a269e312fec0a2c5843a6899e7eb1
Author: Kevin Brace <kevinbrace at gmx.com>
Date: Sun Apr 23 17:59:17 2017 -0700
Version bumped to 0.6.109
Signed-off-by: Kevin Brace <kevinbrace at gmx.com>
diff --git a/configure.ac b/configure.ac
index 76637fe..5aae79b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
# Initialize Autoconf
AC_PREREQ(2.57)
AC_INIT([xf86-video-openchrome],
- [0.6.108],
+ [0.6.109],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/openchrome],
[xf86-video-openchrome])
commit dcaf1d38e86fffae0f7e3a6366d917357cf10e97
Author: Kevin Brace <kevinbrace at gmx.com>
Date: Sun Apr 23 17:57:06 2017 -0700
Temporary code to improve FP display source during mode setting
While the code is not perfect, this commit should improve the mode
setting of flat panels.
Signed-off-by: Kevin Brace <kevinbrace at gmx.com>
diff --git a/src/via_fp.c b/src/via_fp.c
index 3a33537..833dbb2 100644
--- a/src/via_fp.c
+++ b/src/via_fp.c
@@ -602,6 +602,73 @@ viaFPIOPadSetting(ScrnInfoPtr pScrn, Bool ioPadOn)
}
static void
+viaFPDisplaySource(ScrnInfoPtr pScrn, int index)
+{
+ vgaHWPtr hwp = VGAHWPTR(pScrn);
+ VIAPtr pVia = VIAPTR(pScrn);
+ CARD8 sr12, sr13;
+ CARD8 displaySource = index & 0x01;
+
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Entered viaFPDisplaySource.\n"));
+
+ sr12 = hwp->readSeq(hwp, 0x12);
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "SR12: 0x%02X\n", sr12));
+ sr13 = hwp->readSeq(hwp, 0x13);
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "SR13: 0x%02X\n", sr13));
+
+ switch (pVia->Chipset) {
+ case VIA_KM400:
+ case VIA_K8M800:
+ case VIA_PM800:
+ case VIA_P4M800PRO:
+ /* 3C5.12[4] - DVP0D4 pin strapping
+ * 0: 12-bit flat panel interface
+ * 1: 24-bit flat panel interface */
+ if (sr12 & 0x10) {
+ viaDFPHighSetDisplaySource(pScrn, displaySource);
+ viaDFPLowSetDisplaySource(pScrn, displaySource);
+ }
+
+ break;
+ case VIA_P4M890:
+ case VIA_K8M890:
+ case VIA_P4M900:
+ /* 3C5.12[4] - DVP0D4 pin strapping
+ * 0: 12-bit flat panel interface
+ * 1: 24-bit flat panel interface */
+ if (sr12 & 0x10) {
+ viaDFPHighSetDisplaySource(pScrn, displaySource);
+ }
+
+ viaDFPLowSetDisplaySource(pScrn, displaySource);
+ viaDVP1SetDisplaySource(pScrn, displaySource);
+ break;
+ case VIA_CX700:
+ case VIA_VX800:
+ /* The code will be reworked later. */
+ viaLVDS2SetDisplaySource(pScrn, displaySource);
+ break;
+ case VIA_VX855:
+ case VIA_VX900:
+ viaLVDS1SetDisplaySource(pScrn, displaySource);
+ break;
+ default:
+ break;
+
+ }
+
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "FP Display Source: IGA%d\n",
+ displaySource + 1);
+
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Exiting viaFPDisplaySource.\n"));
+}
+
+static void
ViaLVDSSoftwarePowerFirstSequence(ScrnInfoPtr pScrn, Bool on)
{
vgaHWPtr hwp = VGAHWPTR(pScrn);
@@ -1315,25 +1382,11 @@ via_lvds_mode_set(xf86OutputPtr output, DisplayModePtr mode,
break;
}
+ viaFPDisplaySource(pScrn, iga->index);
switch (pVia->Chipset) {
- case VIA_KM400:
- case VIA_K8M800:
- case VIA_PM800:
- case VIA_P4M800PRO:
- viaDFPLowSetDisplaySource(pScrn, iga->index ? 0x01 : 0x00);
- viaDFPHighSetDisplaySource(pScrn, iga->index ? 0x01 : 0x00);
- break;
- case VIA_P4M890:
- 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:
- viaLVDS2SetDisplaySource(pScrn, iga->index ? 0x01 : 0x00);
-
/* Set LVDS2 output color dithering. */
viaLVDS2SetDithering(pScrn, Panel->useDithering ? TRUE : FALSE);
@@ -1345,8 +1398,6 @@ via_lvds_mode_set(xf86OutputPtr output, DisplayModePtr mode,
break;
case VIA_VX855:
case VIA_VX900:
- viaLVDS1SetDisplaySource(pScrn, iga->index ? 0x01 : 0x00);
-
/* Set LVDS1 output color dithering. */
viaLVDS1SetDithering(pScrn, Panel->useDithering ? TRUE : FALSE);
More information about the Openchrome-devel
mailing list