configure.ac | 2 +- src/via_tmds.c | 19 +++++++++---------- 2 files changed, 10 insertions(+), 11 deletions(-)
New commits: commit dc661c59257e855cd9b29c14b91a8ee2d9b86ccb Author: Kevin Brace <kevinbr...@bracecomputerlab.com> Date: Sat Jul 9 20:52:50 2022 -0500 Version bumped to 0.6.501 Put in a small fix for DVI on AGP based UniChrome (Pro) graphics. Signed-off-by: Kevin Brace <kevinbr...@bracecomputerlab.com> diff --git a/configure.ac b/configure.ac index 5309970..7af9956 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-video-openchrome], - [0.6.500], + [0.6.501], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/openchrome], [xf86-video-openchrome]) commit 2d34b73f979721856accbe9c9ab4738cccfd1e8c Author: Kevin Brace <kevinbr...@bracecomputerlab.com> Date: Sat Jul 9 20:31:40 2022 -0500 Fix for DVI on AGP based UniChrome (Pro) graphics Even with the use of strapping resistors, it is quite challenging to automatically detect an external flat panel, TV encoder, or DVI transmitter properly. It turns out that there are complicated rules to figure out if DVP0 is configured for DVI transmitter use. The configuration is not well documented even inside VIA Technologies official documentation. The code was tested on Wyse V10LE thin client. This model does not support ACPI S3 State (Suspend to RAM), so it is not clear if the screen will recover properly when coming out of standby. Reported-by: Eric Kudzin <knoppix1...@yahoo.com> Signed-off-by: Kevin Brace <kevinbr...@bracecomputerlab.com> diff --git a/src/via_tmds.c b/src/via_tmds.c index 749955b..32d6dfa 100644 --- a/src/via_tmds.c +++ b/src/via_tmds.c @@ -799,18 +799,17 @@ viaExtTMDSProbe(ScrnInfoPtr pScrn) case VIA_P4M800PRO: case VIA_PM800: case VIA_K8M800: - /* 3C5.12[6] - DVP0D6 pin strapping - * 0: Disable DVP0 (Digital Video Port 0) for - * DVI or TV out use - * 1: Enable DVP0 (Digital Video Port 0) for - * DVI or TV out use - * 3C5.12[5] - DVP0D5 pin strapping - * 0: TMDS transmitter (DVI) - * 1: TV encoder */ - if ((sr12 & BIT(6)) && (!(sr12 & BIT(5)))) { + /* + * For DVP0 to be configured to not be used for a TV + * encoder, DVP0D[6] (SR12[6]) needs to be strapped + * low (0). In addition, DVP0D[5] (SR12[5]) also needs + * to be strapped low (0) for DVP0 to be configured for + * DVI transmitter use. + */ + if (!(sr12 & BIT(6)) && (!(sr12 & BIT(5)))) { pVIADisplay->extTMDSDIPort = VIA_DI_PORT_DVP0; } else { - pVIADisplay->extTMDSDIPort = VIA_DI_PORT_DVP1; + pVIADisplay->extTMDSDIPort = VIA_DI_PORT_NONE; } break;