configure.ac | 2 +- src/via_analog.c | 25 ++++++++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-)
New commits: commit 2dbff5e58c897bd946dc8cf295f72c9c6576ab32 Author: Kevin Brace <kevinbr...@gmx.com> Date: Tue Jan 9 00:01:25 2018 -0800 Version bumped to 0.6.170 Put in a fix for single chip Chrome IGP not detecting a VGA connector from time to time. Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/configure.ac b/configure.ac index 9a9859a..457eec3 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ(2.57) AC_INIT([xf86-video-openchrome], - [0.6.169], + [0.6.170], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/openchrome], [xf86-video-openchrome]) commit 17dc6fe1f414f0d630ca2a15fc906bffa3328e79 Author: Kevin Brace <kevinbr...@gmx.com> Date: Mon Jan 8 23:56:23 2018 -0800 Fix for single chip Chrome IGP not detecting a VGA connector sometimes It was observed that VX900 chipset was having issues with detecting a VGA connector after standby resume fairly frequently. This also affected VX855 chipset as well. Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_analog.c b/src/via_analog.c index 7394e66..473b7aa 100644 --- a/src/via_analog.c +++ b/src/via_analog.c @@ -145,6 +145,7 @@ viaAnalogInitReg(ScrnInfoPtr pScrn) case VIA_VX900: /* Make sure 3C5.01[5] does not turn off analog (VGA) DAC. */ viaAnalogSetDACOff(pScrn, FALSE); + break; default: break; @@ -167,16 +168,28 @@ viaAnalogDetectConnector(ScrnInfoPtr pScrn) vgaHWPtr hwp = VGAHWPTR(pScrn); VIAPtr pVia = VIAPTR(pScrn); Bool connectorDetected = FALSE; - CARD8 sr40, cr36, cr47; + CARD8 sr40, cr36, cr37, cr43, cr44, cr47; DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Entered viaAnalogDetectConnector.\n")); sr40 = hwp->readSeq(hwp, 0x40); cr36 = hwp->readCrtc(hwp, 0x36); + cr37 = hwp->readCrtc(hwp, 0x37); + cr43 = hwp->readCrtc(hwp, 0x43); + cr44 = hwp->readCrtc(hwp, 0x44); cr47 = hwp->readCrtc(hwp, 0x47); + if ((pVia->Chipset == VIA_CX700) + || (pVia->Chipset == VIA_VX800) + || (pVia->Chipset == VIA_VX855) + || (pVia->Chipset == VIA_VX900)) { + ViaCrtcMask(hwp, 0x43, 0x90, BIT(7) | BIT(6) | BIT(5) | BIT(4)); + hwp->writeCrtc(hwp, 0x44, 0x00); + } + /* Turn on DAC. */ + ViaCrtcMask(hwp, 0x37, 0x04, 0xff); ViaCrtcMask(hwp, 0x47, 0x00, BIT(2)); /* Power On DPMS. */ @@ -217,6 +230,16 @@ viaAnalogDetectConnector(ScrnInfoPtr pScrn) /* Restore */ hwp->writeCrtc(hwp, 0x47, cr47); + + if ((pVia->Chipset == VIA_CX700) + || (pVia->Chipset == VIA_VX800) + || (pVia->Chipset == VIA_VX855) + || (pVia->Chipset == VIA_VX900)) { + hwp->writeCrtc(hwp, 0x44, cr44); + hwp->writeCrtc(hwp, 0x43, cr43); + } + + hwp->writeCrtc(hwp, 0x37, cr37); hwp->writeCrtc(hwp, 0x36, cr36); hwp->writeSeq(hwp, 0x40, sr40); _______________________________________________ Openchrome-devel mailing list Openchrome-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/openchrome-devel