configure.ac | 2 src/via_analog.c | 10 - src/via_sii164.c | 490 +------------------------------------------------------ src/via_tmds.c | 490 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- src/via_ums.h | 6 src/via_vt1632.c | 482 +----------------------------------------------------- 6 files changed, 514 insertions(+), 966 deletions(-)
New commits: commit c4c17e8e3395221dccb8e6f922e55b7fc3037ea0 Author: Kevin Brace <kevinbr...@gmx.com> Date: Thu Sep 22 01:07:52 2016 -0700 Version bumped to 0.5.159 Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/configure.ac b/configure.ac index 8192014..f93bb42 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ(2.57) AC_INIT([xf86-video-openchrome], - [0.5.158], + [0.5.159], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/openchrome], [xf86-video-openchrome]) commit e43dc9078336ea6f2ede9d48f0f5159eb92dede1 Author: Kevin Brace <kevinbr...@gmx.com> Date: Thu Sep 22 01:06:37 2016 -0700 Changed the way integrated TMDS transmitter detects DVI presence Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_tmds.c b/src/via_tmds.c index 8c0cdbb..21b6cac 100644 --- a/src/via_tmds.c +++ b/src/via_tmds.c @@ -192,24 +192,31 @@ static Bool viaTMDSSense(ScrnInfoPtr pScrn) { vgaHWPtr hwp = VGAHWPTR(pScrn); - CARD8 sr1a; - Bool tmdsReceiverDetected = FALSE; + VIAPtr pVia = VIAPTR(pScrn); + CARD8 tmdsReceiverDetected = 0x00; DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Entered viaTMDSSense.\n")); - /* Detect the presence of DVI. */ - /* 3C5.1A[4] - DVI Sense - * 0: No connect - * 1: Connected */ - sr1a = hwp->readSeq(hwp, 0x1A); - if (sr1a & 0x10) { - tmdsReceiverDetected = TRUE; + if (pVia->Chipset == VIA_CX700) { + /* Detect the presence of DVI. */ + /* 3C5.1A[4] - DVI Sense + * 0: No connect + * 1: Connected */ + tmdsReceiverDetected = (hwp->readSeq(hwp, 0x1A) >> 4) & 0x01; + } else if ((pVia->Chipset == VIA_VX800) + || (pVia->Chipset == VIA_VX855) + || (pVia->Chipset == VIA_VX900)) { + /* Detect the presence of DVI. */ + /* 3C5.3E[5] - Integrated DVI Sense + * 0: No connect + * 1: Connected */ + tmdsReceiverDetected = (hwp->readSeq(hwp, 0x3E) >> 5) & 0x01; } xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Integrated TMDS transmitter %s a TMDS receiver.\n", - tmdsReceiverDetected ? "detected" : "did not detect"); + (tmdsReceiverDetected & 0x01) ? "detected" : "did not detect"); DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Exiting viaTMDSSense.\n")); commit c907c1c8552a814d9f4a183d9851b3b39255c86d Author: Kevin Brace <kevinbr...@gmx.com> Date: Thu Sep 22 00:32:54 2016 -0700 Version bumped to 0.5.158 Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/configure.ac b/configure.ac index 6f58d60..8192014 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ(2.57) AC_INIT([xf86-video-openchrome], - [0.5.157], + [0.5.158], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/openchrome], [xf86-video-openchrome]) commit 5f01c7e1df141f6fb1a62041950fdf3113abab89 Author: Kevin Brace <kevinbr...@gmx.com> Date: Thu Sep 22 00:28:27 2016 -0700 Created viaExtTMDSSetDataDriveStrength viaExtTMDSSetDataDriveStrength function is meant to replace viaVT1632SetDataDriveStrength and viaSiI164SetDataDriveStrength functions. Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_sii164.c b/src/via_sii164.c index f8432a3..0f49258 100644 --- a/src/via_sii164.c +++ b/src/via_sii164.c @@ -33,106 +33,6 @@ #include "via_sii164.h" static void -viaSiI164SetDataDriveStrength(ScrnInfoPtr pScrn, CARD8 dataDriveStrength) -{ - vgaHWPtr hwp = VGAHWPTR(pScrn); - VIAPtr pVia = VIAPTR(pScrn); - CARD8 sr12, sr13, sr5a; - - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Entered viaSiI164SetDataDriveStrength.\n")); - - if ((pVia->Chipset == VIA_CX700) - || (pVia->Chipset == VIA_VX800) - || (pVia->Chipset == VIA_VX855) - || (pVia->Chipset == VIA_VX900)) { - - sr5a = hwp->readSeq(hwp, 0x5A); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "SR5A: 0x%02X\n", sr5a)); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Setting 3C5.5A[0] to 0.\n")); - ViaSeqMask(hwp, 0x5A, sr5a & 0xFE, 0x01); - } - - 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_CLE266: - /* 3C5.12[5] - FPD18 pin strapping - * 0: DIP0 (Digital Interface Port 0) is used by - * a TMDS transmitter (DVI) - * 1: DIP0 (Digital Interface Port 0) is used by - * a TV encoder */ - if (!(sr12 & 0x20)) { - viaDIP0SetDataDriveStrength(pScrn, dataDriveStrength); - } - - break; - case VIA_KM400: - case VIA_K8M800: - case VIA_PM800: - case VIA_P4M800PRO: - /* 3C5.12[6] - DVP0D6 pin strapping - * 0: Disable DVP0 (Digital Video Port 0) - * 1: Enable DVP0 (Digital Video Port 0) - * 3C5.12[5] - DVP0D5 pin strapping - * 0: DVP0 is used by a TMDS transmitter (DVI) - * 1: DVP0 is used by a TV encoder */ - if ((sr12 & 0x40) && (!(sr12 & 0x20))) { - viaDVP0SetDataDriveStrength(pScrn, dataDriveStrength); - } - - break; - case VIA_P4M890: - case VIA_K8M890: - case VIA_P4M900: - /* 3C5.12[6] - FPD6 pin strapping - * 0: Disable DVP0 (Digital Video Port 0) - * 1: Enable DVP0 (Digital Video Port 0) - * 3C5.12[5] - FPD5 pin strapping - * 0: DVP0 is used by a TMDS transmitter (DVI) - * 1: DVP0 is used by a TV encoder */ - if ((sr12 & 0x40) && (!(sr12 & 0x20))) { - viaDVP0SetDataDriveStrength(pScrn, dataDriveStrength); - } - - break; - case VIA_CX700: - case VIA_VX800: - case VIA_VX855: - case VIA_VX900: - /* 3C5.13[6] - DVP1 DVP / capture port selection - * 0: DVP1 is used as a DVP (Digital Video Port) - * 1: DVP1 is used as a capture port */ - if (!(sr13 & 0x40)) { - viaDVP1SetDataDriveStrength(pScrn, dataDriveStrength); - } - - break; - default: - break; - } - - if ((pVia->Chipset == VIA_CX700) - || (pVia->Chipset == VIA_VX800) - || (pVia->Chipset == VIA_VX855) - || (pVia->Chipset == VIA_VX900)) { - - hwp->writeSeq(hwp, 0x5A, sr5a); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Restoring 3C5.5A[0].\n")); - } - - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Exiting viaSiI164SetDataDriveStrength.\n")); -} - -static void viaSiI164DumpRegisters(ScrnInfoPtr pScrn, I2CDevPtr pDev) { int i; @@ -374,7 +274,7 @@ via_sii164_mode_set(xf86OutputPtr output, DisplayModePtr mode, if (output->crtc) { viaExtTMDSSetClockDriveStrength(pScrn, 0x03); - viaSiI164SetDataDriveStrength(pScrn, 0x03); + viaExtTMDSSetDataDriveStrength(pScrn, 0x03); viaExtTMDSEnableIOPads(pScrn, 0x03); viaSiI164DumpRegisters(pScrn, pSiI164Rec->SiI164I2CDev); diff --git a/src/via_tmds.c b/src/via_tmds.c index d326bf7..8c0cdbb 100644 --- a/src/via_tmds.c +++ b/src/via_tmds.c @@ -634,6 +634,106 @@ viaExtTMDSSetClockDriveStrength(ScrnInfoPtr pScrn, CARD8 clockDriveStrength) "Exiting viaExtTMDSSetClockDriveStrength.\n")); } +void +viaExtTMDSSetDataDriveStrength(ScrnInfoPtr pScrn, CARD8 dataDriveStrength) +{ + vgaHWPtr hwp = VGAHWPTR(pScrn); + VIAPtr pVia = VIAPTR(pScrn); + CARD8 sr12, sr13, sr5a; + + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Entered viaExtTMDSSetDataDriveStrength.\n")); + + if ((pVia->Chipset == VIA_CX700) + || (pVia->Chipset == VIA_VX800) + || (pVia->Chipset == VIA_VX855) + || (pVia->Chipset == VIA_VX900)) { + + sr5a = hwp->readSeq(hwp, 0x5A); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "SR5A: 0x%02X\n", sr5a)); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Setting 3C5.5A[0] to 0.\n")); + ViaSeqMask(hwp, 0x5A, sr5a & 0xFE, 0x01); + } + + 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_CLE266: + /* 3C5.12[5] - FPD18 pin strapping + * 0: DIP0 (Digital Interface Port 0) is used by + * a TMDS transmitter (DVI) + * 1: DIP0 (Digital Interface Port 0) is used by + * a TV encoder */ + if (!(sr12 & 0x20)) { + viaDIP0SetDataDriveStrength(pScrn, dataDriveStrength); + } + + break; + case VIA_KM400: + case VIA_K8M800: + case VIA_PM800: + case VIA_P4M800PRO: + /* 3C5.12[6] - DVP0D6 pin strapping + * 0: Disable DVP0 (Digital Video Port 0) + * 1: Enable DVP0 (Digital Video Port 0) + * 3C5.12[5] - DVP0D5 pin strapping + * 0: DVP0 is used by a TMDS transmitter (DVI) + * 1: DVP0 is used by a TV encoder */ + if ((sr12 & 0x40) && (!(sr12 & 0x20))) { + viaDVP0SetDataDriveStrength(pScrn, dataDriveStrength); + } + + break; + case VIA_P4M890: + case VIA_K8M890: + case VIA_P4M900: + /* 3C5.12[6] - FPD6 pin strapping + * 0: Disable DVP0 (Digital Video Port 0) + * 1: Enable DVP0 (Digital Video Port 0) + * 3C5.12[5] - FPD5 pin strapping + * 0: DVP0 is used by a TMDS transmitter (DVI) + * 1: DVP0 is used by a TV encoder */ + if ((sr12 & 0x40) && (!(sr12 & 0x20))) { + viaDVP0SetDataDriveStrength(pScrn, dataDriveStrength); + } + + break; + case VIA_CX700: + case VIA_VX800: + case VIA_VX855: + case VIA_VX900: + /* 3C5.13[6] - DVP1 DVP / capture port selection + * 0: DVP1 is used as a DVP (Digital Video Port) + * 1: DVP1 is used as a capture port */ + if (!(sr13 & 0x40)) { + viaDVP1SetDataDriveStrength(pScrn, dataDriveStrength); + } + + break; + default: + break; + } + + if ((pVia->Chipset == VIA_CX700) + || (pVia->Chipset == VIA_VX800) + || (pVia->Chipset == VIA_VX855) + || (pVia->Chipset == VIA_VX900)) { + + hwp->writeSeq(hwp, 0x5A, sr5a); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Restoring 3C5.5A[0].\n")); + } + + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting viaExtTMDSSetDataDriveStrength.\n")); +} + static void via_tmds_create_resources(xf86OutputPtr output) { diff --git a/src/via_ums.h b/src/via_ums.h index fed6ea6..83c6d63 100644 --- a/src/via_ums.h +++ b/src/via_ums.h @@ -267,6 +267,8 @@ void viaExtTMDSSetDisplaySource(ScrnInfoPtr pScrn, CARD8 displaySource); void viaExtTMDSEnableIOPads(ScrnInfoPtr pScrn, CARD8 ioPadState); void viaExtTMDSSetClockDriveStrength(ScrnInfoPtr pScrn, CARD8 clockDriveStrength); +void viaExtTMDSSetDataDriveStrength(ScrnInfoPtr pScrn, + CARD8 dataDriveStrength); void via_dvi_init(ScrnInfoPtr pScrn); /*via_tv.c */ diff --git a/src/via_vt1632.c b/src/via_vt1632.c index e8902db..2369f5f 100644 --- a/src/via_vt1632.c +++ b/src/via_vt1632.c @@ -33,106 +33,6 @@ #include "via_vt1632.h" static void -viaVT1632SetDataDriveStrength(ScrnInfoPtr pScrn, CARD8 dataDriveStrength) -{ - vgaHWPtr hwp = VGAHWPTR(pScrn); - VIAPtr pVia = VIAPTR(pScrn); - CARD8 sr12, sr13, sr5a; - - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Entered viaVT1632SetDataDriveStrength.\n")); - - if ((pVia->Chipset == VIA_CX700) - || (pVia->Chipset == VIA_VX800) - || (pVia->Chipset == VIA_VX855) - || (pVia->Chipset == VIA_VX900)) { - - sr5a = hwp->readSeq(hwp, 0x5A); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "SR5A: 0x%02X\n", sr5a)); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Setting 3C5.5A[0] to 0.\n")); - ViaSeqMask(hwp, 0x5A, sr5a & 0xFE, 0x01); - } - - 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_CLE266: - /* 3C5.12[5] - FPD18 pin strapping - * 0: DIP0 (Digital Interface Port 0) is used by - * a TMDS transmitter (DVI) - * 1: DIP0 (Digital Interface Port 0) is used by - * a TV encoder */ - if (!(sr12 & 0x20)) { - viaDIP0SetDataDriveStrength(pScrn, dataDriveStrength); - } - - break; - case VIA_KM400: - case VIA_K8M800: - case VIA_PM800: - case VIA_P4M800PRO: - /* 3C5.12[6] - DVP0D6 pin strapping - * 0: Disable DVP0 (Digital Video Port 0) - * 1: Enable DVP0 (Digital Video Port 0) - * 3C5.12[5] - DVP0D5 pin strapping - * 0: DVP0 is used by a TMDS transmitter (DVI) - * 1: DVP0 is used by a TV encoder */ - if ((sr12 & 0x40) && (!(sr12 & 0x20))) { - viaDVP0SetDataDriveStrength(pScrn, dataDriveStrength); - } - - break; - case VIA_P4M890: - case VIA_K8M890: - case VIA_P4M900: - /* 3C5.12[6] - FPD6 pin strapping - * 0: Disable DVP0 (Digital Video Port 0) - * 1: Enable DVP0 (Digital Video Port 0) - * 3C5.12[5] - FPD5 pin strapping - * 0: DVP0 is used by a TMDS transmitter (DVI) - * 1: DVP0 is used by a TV encoder */ - if ((sr12 & 0x40) && (!(sr12 & 0x20))) { - viaDVP0SetDataDriveStrength(pScrn, dataDriveStrength); - } - - break; - case VIA_CX700: - case VIA_VX800: - case VIA_VX855: - case VIA_VX900: - /* 3C5.13[6] - DVP1 DVP / capture port selection - * 0: DVP1 is used as a DVP (Digital Video Port) - * 1: DVP1 is used as a capture port */ - if (!(sr13 & 0x40)) { - viaDVP1SetDataDriveStrength(pScrn, dataDriveStrength); - } - - break; - default: - break; - } - - if ((pVia->Chipset == VIA_CX700) - || (pVia->Chipset == VIA_VX800) - || (pVia->Chipset == VIA_VX855) - || (pVia->Chipset == VIA_VX900)) { - - hwp->writeSeq(hwp, 0x5A, sr5a); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Restoring 3C5.5A[0].\n")); - } - - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Exiting viaVT1632SetDataDriveStrength.\n")); -} - -static void viaVT1632DumpRegisters(ScrnInfoPtr pScrn, I2CDevPtr pDev) { int i; @@ -387,7 +287,7 @@ via_vt1632_mode_set(xf86OutputPtr output, DisplayModePtr mode, if (output->crtc) { viaExtTMDSSetClockDriveStrength(pScrn, 0x03); - viaVT1632SetDataDriveStrength(pScrn, 0x03); + viaExtTMDSSetDataDriveStrength(pScrn, 0x03); viaExtTMDSEnableIOPads(pScrn, 0x03); viaVT1632DumpRegisters(pScrn, pVIAVT1632Rec->VT1632I2CDev); commit ac234b827c899613e900a7baeb64ec8f09c4cd2d Author: Kevin Brace <kevinbr...@gmx.com> Date: Thu Sep 22 00:09:01 2016 -0700 Created viaExtTMDSSetClockDriveStrength viaExtTMDSSetClockDriveStrength function is meant to replace viaVT1632SetClockDriveStrength and viaSiI164SetClockDriveStrength functions. Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_sii164.c b/src/via_sii164.c index ccef26a..f8432a3 100644 --- a/src/via_sii164.c +++ b/src/via_sii164.c @@ -33,106 +33,6 @@ #include "via_sii164.h" static void -viaSiI164SetClockDriveStrength(ScrnInfoPtr pScrn, CARD8 clockDriveStrength) -{ - vgaHWPtr hwp = VGAHWPTR(pScrn); - VIAPtr pVia = VIAPTR(pScrn); - CARD8 sr12, sr13, sr5a; - - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Entered viaSiI164SetClockDriveStrength.\n")); - - if ((pVia->Chipset == VIA_CX700) - || (pVia->Chipset == VIA_VX800) - || (pVia->Chipset == VIA_VX855) - || (pVia->Chipset == VIA_VX900)) { - - sr5a = hwp->readSeq(hwp, 0x5A); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "SR5A: 0x%02X\n", sr5a)); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Setting 3C5.5A[0] to 0.\n")); - ViaSeqMask(hwp, 0x5A, sr5a & 0xFE, 0x01); - } - - 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_CLE266: - /* 3C5.12[5] - FPD18 pin strapping - * 0: DIP0 (Digital Interface Port 0) is used by - * a TMDS transmitter (DVI) - * 1: DIP0 (Digital Interface Port 0) is used by - * a TV encoder */ - if (!(sr12 & 0x20)) { - viaDIP0SetClockDriveStrength(pScrn, clockDriveStrength); - } - - break; - case VIA_KM400: - case VIA_K8M800: - case VIA_PM800: - case VIA_P4M800PRO: - /* 3C5.12[6] - DVP0D6 pin strapping - * 0: Disable DVP0 (Digital Video Port 0) - * 1: Enable DVP0 (Digital Video Port 0) - * 3C5.12[5] - DVP0D5 pin strapping - * 0: DVP0 is used by a TMDS transmitter (DVI) - * 1: DVP0 is used by a TV encoder */ - if ((sr12 & 0x40) && (!(sr12 & 0x20))) { - viaDVP0SetClockDriveStrength(pScrn, clockDriveStrength); - } - - break; - case VIA_P4M890: - case VIA_K8M890: - case VIA_P4M900: - /* 3C5.12[6] - FPD6 pin strapping - * 0: Disable DVP0 (Digital Video Port 0) - * 1: Enable DVP0 (Digital Video Port 0) - * 3C5.12[5] - FPD5 pin strapping - * 0: DVP0 is used by a TMDS transmitter (DVI) - * 1: DVP0 is used by a TV encoder */ - if ((sr12 & 0x40) && (!(sr12 & 0x20))) { - viaDVP0SetClockDriveStrength(pScrn, clockDriveStrength); - } - - break; - case VIA_CX700: - case VIA_VX800: - case VIA_VX855: - case VIA_VX900: - /* 3C5.13[6] - DVP1 DVP / capture port selection - * 0: DVP1 is used as a DVP (Digital Video Port) - * 1: DVP1 is used as a capture port */ - if (!(sr13 & 0x40)) { - viaDVP1SetClockDriveStrength(pScrn, clockDriveStrength); - } - - break; - default: - break; - } - - if ((pVia->Chipset == VIA_CX700) - || (pVia->Chipset == VIA_VX800) - || (pVia->Chipset == VIA_VX855) - || (pVia->Chipset == VIA_VX900)) { - - hwp->writeSeq(hwp, 0x5A, sr5a); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Restoring 3C5.5A[0].\n")); - } - - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Exiting viaSiI164SetClockDriveStrength.\n")); -} - -static void viaSiI164SetDataDriveStrength(ScrnInfoPtr pScrn, CARD8 dataDriveStrength) { vgaHWPtr hwp = VGAHWPTR(pScrn); @@ -473,7 +373,7 @@ via_sii164_mode_set(xf86OutputPtr output, DisplayModePtr mode, "Entered via_sii164_mode_set.\n")); if (output->crtc) { - viaSiI164SetClockDriveStrength(pScrn, 0x03); + viaExtTMDSSetClockDriveStrength(pScrn, 0x03); viaSiI164SetDataDriveStrength(pScrn, 0x03); viaExtTMDSEnableIOPads(pScrn, 0x03); diff --git a/src/via_tmds.c b/src/via_tmds.c index d37e779..d326bf7 100644 --- a/src/via_tmds.c +++ b/src/via_tmds.c @@ -534,6 +534,106 @@ viaExtTMDSEnableIOPads(ScrnInfoPtr pScrn, CARD8 ioPadState) "Exiting viaExtTMDSEnableIOPads.\n")); } +void +viaExtTMDSSetClockDriveStrength(ScrnInfoPtr pScrn, CARD8 clockDriveStrength) +{ + vgaHWPtr hwp = VGAHWPTR(pScrn); + VIAPtr pVia = VIAPTR(pScrn); + CARD8 sr12, sr13, sr5a; + + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Entered viaExtTMDSSetClockDriveStrength.\n")); + + if ((pVia->Chipset == VIA_CX700) + || (pVia->Chipset == VIA_VX800) + || (pVia->Chipset == VIA_VX855) + || (pVia->Chipset == VIA_VX900)) { + + sr5a = hwp->readSeq(hwp, 0x5A); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "SR5A: 0x%02X\n", sr5a)); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Setting 3C5.5A[0] to 0.\n")); + ViaSeqMask(hwp, 0x5A, sr5a & 0xFE, 0x01); + } + + 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_CLE266: + /* 3C5.12[5] - FPD18 pin strapping + * 0: DIP0 (Digital Interface Port 0) is used by + * a TMDS transmitter (DVI) + * 1: DIP0 (Digital Interface Port 0) is used by + * a TV encoder */ + if (!(sr12 & 0x20)) { + viaDIP0SetClockDriveStrength(pScrn, clockDriveStrength); + } + + break; + case VIA_KM400: + case VIA_K8M800: + case VIA_PM800: + case VIA_P4M800PRO: + /* 3C5.12[6] - DVP0D6 pin strapping + * 0: Disable DVP0 (Digital Video Port 0) + * 1: Enable DVP0 (Digital Video Port 0) + * 3C5.12[5] - DVP0D5 pin strapping + * 0: DVP0 is used by a TMDS transmitter (DVI) + * 1: DVP0 is used by a TV encoder */ + if ((sr12 & 0x40) && (!(sr12 & 0x20))) { + viaDVP0SetClockDriveStrength(pScrn, clockDriveStrength); + } + + break; + case VIA_P4M890: + case VIA_K8M890: + case VIA_P4M900: + /* 3C5.12[6] - FPD6 pin strapping + * 0: Disable DVP0 (Digital Video Port 0) + * 1: Enable DVP0 (Digital Video Port 0) + * 3C5.12[5] - FPD5 pin strapping + * 0: DVP0 is used by a TMDS transmitter (DVI) + * 1: DVP0 is used by a TV encoder */ + if ((sr12 & 0x40) && (!(sr12 & 0x20))) { + viaDVP0SetClockDriveStrength(pScrn, clockDriveStrength); + } + + break; + case VIA_CX700: + case VIA_VX800: + case VIA_VX855: + case VIA_VX900: + /* 3C5.13[6] - DVP1 DVP / capture port selection + * 0: DVP1 is used as a DVP (Digital Video Port) + * 1: DVP1 is used as a capture port */ + if (!(sr13 & 0x40)) { + viaDVP1SetClockDriveStrength(pScrn, clockDriveStrength); + } + + break; + default: + break; + } + + if ((pVia->Chipset == VIA_CX700) + || (pVia->Chipset == VIA_VX800) + || (pVia->Chipset == VIA_VX855) + || (pVia->Chipset == VIA_VX900)) { + + hwp->writeSeq(hwp, 0x5A, sr5a); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Restoring 3C5.5A[0].\n")); + } + + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting viaExtTMDSSetClockDriveStrength.\n")); +} + static void via_tmds_create_resources(xf86OutputPtr output) { diff --git a/src/via_ums.h b/src/via_ums.h index a1fc507..fed6ea6 100644 --- a/src/via_ums.h +++ b/src/via_ums.h @@ -265,6 +265,8 @@ void via_lvds_init(ScrnInfoPtr pScrn); /* via_tmds.c */ void viaExtTMDSSetDisplaySource(ScrnInfoPtr pScrn, CARD8 displaySource); void viaExtTMDSEnableIOPads(ScrnInfoPtr pScrn, CARD8 ioPadState); +void viaExtTMDSSetClockDriveStrength(ScrnInfoPtr pScrn, + CARD8 clockDriveStrength); void via_dvi_init(ScrnInfoPtr pScrn); /*via_tv.c */ diff --git a/src/via_vt1632.c b/src/via_vt1632.c index 32803af..e8902db 100644 --- a/src/via_vt1632.c +++ b/src/via_vt1632.c @@ -33,106 +33,6 @@ #include "via_vt1632.h" static void -viaVT1632SetClockDriveStrength(ScrnInfoPtr pScrn, CARD8 clockDriveStrength) -{ - vgaHWPtr hwp = VGAHWPTR(pScrn); - VIAPtr pVia = VIAPTR(pScrn); - CARD8 sr12, sr13, sr5a; - - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Entered viaVT1632SetClockDriveStrength.\n")); - - if ((pVia->Chipset == VIA_CX700) - || (pVia->Chipset == VIA_VX800) - || (pVia->Chipset == VIA_VX855) - || (pVia->Chipset == VIA_VX900)) { - - sr5a = hwp->readSeq(hwp, 0x5A); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "SR5A: 0x%02X\n", sr5a)); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Setting 3C5.5A[0] to 0.\n")); - ViaSeqMask(hwp, 0x5A, sr5a & 0xFE, 0x01); - } - - 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_CLE266: - /* 3C5.12[5] - FPD18 pin strapping - * 0: DIP0 (Digital Interface Port 0) is used by - * a TMDS transmitter (DVI) - * 1: DIP0 (Digital Interface Port 0) is used by - * a TV encoder */ - if (!(sr12 & 0x20)) { - viaDIP0SetClockDriveStrength(pScrn, clockDriveStrength); - } - - break; - case VIA_KM400: - case VIA_K8M800: - case VIA_PM800: - case VIA_P4M800PRO: - /* 3C5.12[6] - DVP0D6 pin strapping - * 0: Disable DVP0 (Digital Video Port 0) - * 1: Enable DVP0 (Digital Video Port 0) - * 3C5.12[5] - DVP0D5 pin strapping - * 0: DVP0 is used by a TMDS transmitter (DVI) - * 1: DVP0 is used by a TV encoder */ - if ((sr12 & 0x40) && (!(sr12 & 0x20))) { - viaDVP0SetClockDriveStrength(pScrn, clockDriveStrength); - } - - break; - case VIA_P4M890: - case VIA_K8M890: - case VIA_P4M900: - /* 3C5.12[6] - FPD6 pin strapping - * 0: Disable DVP0 (Digital Video Port 0) - * 1: Enable DVP0 (Digital Video Port 0) - * 3C5.12[5] - FPD5 pin strapping - * 0: DVP0 is used by a TMDS transmitter (DVI) - * 1: DVP0 is used by a TV encoder */ - if ((sr12 & 0x40) && (!(sr12 & 0x20))) { - viaDVP0SetClockDriveStrength(pScrn, clockDriveStrength); - } - - break; - case VIA_CX700: - case VIA_VX800: - case VIA_VX855: - case VIA_VX900: - /* 3C5.13[6] - DVP1 DVP / capture port selection - * 0: DVP1 is used as a DVP (Digital Video Port) - * 1: DVP1 is used as a capture port */ - if (!(sr13 & 0x40)) { - viaDVP1SetClockDriveStrength(pScrn, clockDriveStrength); - } - - break; - default: - break; - } - - if ((pVia->Chipset == VIA_CX700) - || (pVia->Chipset == VIA_VX800) - || (pVia->Chipset == VIA_VX855) - || (pVia->Chipset == VIA_VX900)) { - - hwp->writeSeq(hwp, 0x5A, sr5a); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Restoring 3C5.5A[0].\n")); - } - - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Exiting viaVT1632SetClockDriveStrength.\n")); -} - -static void viaVT1632SetDataDriveStrength(ScrnInfoPtr pScrn, CARD8 dataDriveStrength) { vgaHWPtr hwp = VGAHWPTR(pScrn); @@ -486,7 +386,7 @@ via_vt1632_mode_set(xf86OutputPtr output, DisplayModePtr mode, "Entered via_vt1632_mode_set.\n")); if (output->crtc) { - viaVT1632SetClockDriveStrength(pScrn, 0x03); + viaExtTMDSSetClockDriveStrength(pScrn, 0x03); viaVT1632SetDataDriveStrength(pScrn, 0x03); viaExtTMDSEnableIOPads(pScrn, 0x03); commit 64f1dc0a974906a99448294c57378eacbacecccf Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Sep 21 23:54:26 2016 -0700 Created viaExtTMDSEnableIOPads viaExtTMDSEnableIOPads function is meant to replace viaVT1632EnableIOPads and viaSiI164EnableIOPads functions. Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_sii164.c b/src/via_sii164.c index f623571..ccef26a 100644 --- a/src/via_sii164.c +++ b/src/via_sii164.c @@ -33,138 +33,6 @@ #include "via_sii164.h" static void -viaSiI164EnableIOPads(ScrnInfoPtr pScrn, CARD8 ioPadState) -{ - - vgaHWPtr hwp = VGAHWPTR(pScrn); - VIAPtr pVia = VIAPTR(pScrn); - CARD8 sr12, sr13, sr5a; - - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Entered viaSiI164EnableIOPads.\n")); - - if ((pVia->Chipset == VIA_CX700) - || (pVia->Chipset == VIA_VX800) - || (pVia->Chipset == VIA_VX855) - || (pVia->Chipset == VIA_VX900)) { - - sr5a = hwp->readSeq(hwp, 0x5A); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "SR5A: 0x%02X\n", sr5a)); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Setting 3C5.5A[0] to 0.\n")); - ViaSeqMask(hwp, 0x5A, sr5a & 0xFE, 0x01); - } - - 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_CLE266: - /* 3C5.12[5] - FPD18 pin strapping - * 0: DIP0 (Digital Interface Port 0) is used by - * a TMDS transmitter (DVI) - * 1: DIP0 (Digital Interface Port 0) is used by - * a TV encoder */ - if (!(sr12 & 0x20)) { - viaDIP0EnableIOPads(pScrn, ioPadState); - } else { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "DIP0 was not set up for " - "TMDS transmitter use.\n"); - } - - break; - case VIA_KM400: - case VIA_K8M800: - case VIA_PM800: - case VIA_P4M800PRO: - /* 3C5.13[3] - DVP0D8 pin strapping - * 0: AGP pins are used for AGP - * 1: AGP pins are used by FPDP - * (Flat Panel Display Port) - * 3C5.12[6] - DVP0D6 pin strapping - * 0: Disable DVP0 (Digital Video Port 0) - * 1: Enable DVP0 (Digital Video Port 0) - * 3C5.12[5] - DVP0D5 pin strapping - * 0: DVP0 is used by a TMDS transmitter (DVI) - * 1: DVP0 is used by a TV encoder - * 3C5.12[4] - DVP0D4 pin strapping - * 0: Dual 12-bit FPDP (Flat Panel Display Port) - * 1: 24-bit FPDP (Flat Panel Display Port) */ - if ((sr12 & 0x40) && (!(sr12 & 0x20))) { - viaDVP0EnableIOPads(pScrn, ioPadState); - } else if ((sr13 & 0x08) && (!(sr12 & 0x10))) { - viaDFPLowEnableIOPads(pScrn, ioPadState); - } else { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "None of the external ports were set up for " - "TMDS transmitter use.\n"); - } - - break; - case VIA_P4M890: - case VIA_K8M890: - case VIA_P4M900: - /* 3C5.12[6] - FPD6 pin strapping - * 0: Disable DVP0 (Digital Video Port 0) - * 1: Enable DVP0 (Digital Video Port 0) - * 3C5.12[5] - FPD5 pin strapping - * 0: DVP0 is used by a TMDS transmitter (DVI) - * 1: DVP0 is used by a TV encoder */ - if ((sr12 & 0x40) && (!(sr12 & 0x20))) { - viaDVP0EnableIOPads(pScrn, ioPadState); - } else if (!(sr12 & 0x10)) { - viaDFPLowEnableIOPads(pScrn, ioPadState); - } else { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "None of the external ports were set up for " - "TMDS transmitter use.\n"); - } - - break; - case VIA_CX700: - case VIA_VX800: - case VIA_VX855: - case VIA_VX900: - /* 3C5.13[6] - DVP1 DVP / capture port selection - * 0: DVP1 is used as a DVP (Digital Video Port) - * 1: DVP1 is used as a capture port - */ - if (!(sr13 & 0x40)) { - viaDVP1EnableIOPads(pScrn, ioPadState); - } else { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "DVP1 is not set up for TMDS " - "transmitter use.\n"); - } - - break; - default: - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "Unrecognized IGP for " - "TMDS transmitter use.\n"); - break; - } - - if ((pVia->Chipset == VIA_CX700) - || (pVia->Chipset == VIA_VX800) - || (pVia->Chipset == VIA_VX855) - || (pVia->Chipset == VIA_VX900)) { - - hwp->writeSeq(hwp, 0x5A, sr5a); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Restoring 3C5.5A[0].\n")); - } - - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Exiting viaSiI164EnableIOPads.\n")); -} - -static void viaSiI164SetClockDriveStrength(ScrnInfoPtr pScrn, CARD8 clockDriveStrength) { vgaHWPtr hwp = VGAHWPTR(pScrn); @@ -607,7 +475,7 @@ via_sii164_mode_set(xf86OutputPtr output, DisplayModePtr mode, if (output->crtc) { viaSiI164SetClockDriveStrength(pScrn, 0x03); viaSiI164SetDataDriveStrength(pScrn, 0x03); - viaSiI164EnableIOPads(pScrn, 0x03); + viaExtTMDSEnableIOPads(pScrn, 0x03); viaSiI164DumpRegisters(pScrn, pSiI164Rec->SiI164I2CDev); viaSiI164InitRegisters(pScrn, pSiI164Rec->SiI164I2CDev); diff --git a/src/via_tmds.c b/src/via_tmds.c index 7fc7575..d37e779 100644 --- a/src/via_tmds.c +++ b/src/via_tmds.c @@ -402,6 +402,138 @@ viaExtTMDSSetDisplaySource(ScrnInfoPtr pScrn, CARD8 displaySource) "Exiting viaExtTMDSSetDisplaySource.\n")); } +void +viaExtTMDSEnableIOPads(ScrnInfoPtr pScrn, CARD8 ioPadState) +{ + + vgaHWPtr hwp = VGAHWPTR(pScrn); + VIAPtr pVia = VIAPTR(pScrn); + CARD8 sr12, sr13, sr5a; + + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Entered viaExtTMDSEnableIOPads.\n")); + + if ((pVia->Chipset == VIA_CX700) + || (pVia->Chipset == VIA_VX800) + || (pVia->Chipset == VIA_VX855) + || (pVia->Chipset == VIA_VX900)) { + + sr5a = hwp->readSeq(hwp, 0x5A); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "SR5A: 0x%02X\n", sr5a)); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Setting 3C5.5A[0] to 0.\n")); + ViaSeqMask(hwp, 0x5A, sr5a & 0xFE, 0x01); + } + + 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_CLE266: + /* 3C5.12[5] - FPD18 pin strapping + * 0: DIP0 (Digital Interface Port 0) is used by + * a TMDS transmitter (DVI) + * 1: DIP0 (Digital Interface Port 0) is used by + * a TV encoder */ + if (!(sr12 & 0x20)) { + viaDIP0EnableIOPads(pScrn, ioPadState); + } else { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "DIP0 was not set up for " + "TMDS transmitter use.\n"); + } + + break; + case VIA_KM400: + case VIA_K8M800: + case VIA_PM800: + case VIA_P4M800PRO: + /* 3C5.13[3] - DVP0D8 pin strapping + * 0: AGP pins are used for AGP + * 1: AGP pins are used by FPDP + * (Flat Panel Display Port) + * 3C5.12[6] - DVP0D6 pin strapping + * 0: Disable DVP0 (Digital Video Port 0) + * 1: Enable DVP0 (Digital Video Port 0) + * 3C5.12[5] - DVP0D5 pin strapping + * 0: DVP0 is used by a TMDS transmitter (DVI) + * 1: DVP0 is used by a TV encoder + * 3C5.12[4] - DVP0D4 pin strapping + * 0: Dual 12-bit FPDP (Flat Panel Display Port) + * 1: 24-bit FPDP (Flat Panel Display Port) */ + if ((sr12 & 0x40) && (!(sr12 & 0x20))) { + viaDVP0EnableIOPads(pScrn, ioPadState); + } else if ((sr13 & 0x08) && (!(sr12 & 0x10))) { + viaDFPLowEnableIOPads(pScrn, ioPadState); + } else { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "None of the external ports were set up for " + "TMDS transmitter use.\n"); + } + + break; + case VIA_P4M890: + case VIA_K8M890: + case VIA_P4M900: + /* 3C5.12[6] - FPD6 pin strapping + * 0: Disable DVP0 (Digital Video Port 0) + * 1: Enable DVP0 (Digital Video Port 0) + * 3C5.12[5] - FPD5 pin strapping + * 0: DVP0 is used by a TMDS transmitter (DVI) + * 1: DVP0 is used by a TV encoder */ + if ((sr12 & 0x40) && (!(sr12 & 0x20))) { + viaDVP0EnableIOPads(pScrn, ioPadState); + } else if (!(sr12 & 0x10)) { + viaDFPLowEnableIOPads(pScrn, ioPadState); + } else { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "None of the external ports were set up for " + "TMDS transmitter use.\n"); + } + + break; + case VIA_CX700: + case VIA_VX800: + case VIA_VX855: + case VIA_VX900: + /* 3C5.13[6] - DVP1 DVP / capture port selection + * 0: DVP1 is used as a DVP (Digital Video Port) + * 1: DVP1 is used as a capture port + */ + if (!(sr13 & 0x40)) { + viaDVP1EnableIOPads(pScrn, ioPadState); + } else { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "DVP1 is not set up for TMDS " + "transmitter use.\n"); + } + + break; + default: + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "Unrecognized IGP for " + "TMDS transmitter use.\n"); + break; + } + + if ((pVia->Chipset == VIA_CX700) + || (pVia->Chipset == VIA_VX800) + || (pVia->Chipset == VIA_VX855) + || (pVia->Chipset == VIA_VX900)) { + + hwp->writeSeq(hwp, 0x5A, sr5a); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Restoring 3C5.5A[0].\n")); + } + + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting viaExtTMDSEnableIOPads.\n")); +} + static void via_tmds_create_resources(xf86OutputPtr output) { diff --git a/src/via_ums.h b/src/via_ums.h index 094b902..a1fc507 100644 --- a/src/via_ums.h +++ b/src/via_ums.h @@ -264,6 +264,7 @@ void via_lvds_init(ScrnInfoPtr pScrn); /* via_tmds.c */ void viaExtTMDSSetDisplaySource(ScrnInfoPtr pScrn, CARD8 displaySource); +void viaExtTMDSEnableIOPads(ScrnInfoPtr pScrn, CARD8 ioPadState); void via_dvi_init(ScrnInfoPtr pScrn); /*via_tv.c */ diff --git a/src/via_vt1632.c b/src/via_vt1632.c index bf810df..32803af 100644 --- a/src/via_vt1632.c +++ b/src/via_vt1632.c @@ -33,138 +33,6 @@ #include "via_vt1632.h" static void -viaVT1632EnableIOPads(ScrnInfoPtr pScrn, CARD8 ioPadState) -{ - - vgaHWPtr hwp = VGAHWPTR(pScrn); - VIAPtr pVia = VIAPTR(pScrn); - CARD8 sr12, sr13, sr5a; - - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Entered viaVT1632EnableIOPads.\n")); - - if ((pVia->Chipset == VIA_CX700) - || (pVia->Chipset == VIA_VX800) - || (pVia->Chipset == VIA_VX855) - || (pVia->Chipset == VIA_VX900)) { - - sr5a = hwp->readSeq(hwp, 0x5A); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "SR5A: 0x%02X\n", sr5a)); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Setting 3C5.5A[0] to 0.\n")); - ViaSeqMask(hwp, 0x5A, sr5a & 0xFE, 0x01); - } - - 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_CLE266: - /* 3C5.12[5] - FPD18 pin strapping - * 0: DIP0 (Digital Interface Port 0) is used by - * a TMDS transmitter (DVI) - * 1: DIP0 (Digital Interface Port 0) is used by - * a TV encoder */ - if (!(sr12 & 0x20)) { - viaDIP0EnableIOPads(pScrn, ioPadState); - } else { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "DIP0 was not set up for " - "TMDS transmitter use.\n"); - } - - break; - case VIA_KM400: - case VIA_K8M800: - case VIA_PM800: - case VIA_P4M800PRO: - /* 3C5.13[3] - DVP0D8 pin strapping - * 0: AGP pins are used for AGP - * 1: AGP pins are used by FPDP - * (Flat Panel Display Port) - * 3C5.12[6] - DVP0D6 pin strapping - * 0: Disable DVP0 (Digital Video Port 0) - * 1: Enable DVP0 (Digital Video Port 0) - * 3C5.12[5] - DVP0D5 pin strapping - * 0: DVP0 is used by a TMDS transmitter (DVI) - * 1: DVP0 is used by a TV encoder - * 3C5.12[4] - DVP0D4 pin strapping - * 0: Dual 12-bit FPDP (Flat Panel Display Port) - * 1: 24-bit FPDP (Flat Panel Display Port) */ - if ((sr12 & 0x40) && (!(sr12 & 0x20))) { - viaDVP0EnableIOPads(pScrn, ioPadState); - } else if ((sr13 & 0x08) && (!(sr12 & 0x10))) { - viaDFPLowEnableIOPads(pScrn, ioPadState); - } else { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "None of the external ports were set up for " - "TMDS transmitter use.\n"); - } - - break; - case VIA_P4M890: - case VIA_K8M890: - case VIA_P4M900: - /* 3C5.12[6] - FPD6 pin strapping - * 0: Disable DVP0 (Digital Video Port 0) - * 1: Enable DVP0 (Digital Video Port 0) - * 3C5.12[5] - FPD5 pin strapping - * 0: DVP0 is used by a TMDS transmitter (DVI) - * 1: DVP0 is used by a TV encoder */ - if ((sr12 & 0x40) && (!(sr12 & 0x20))) { - viaDVP0EnableIOPads(pScrn, ioPadState); - } else if (!(sr12 & 0x10)) { - viaDFPLowEnableIOPads(pScrn, ioPadState); - } else { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "None of the external ports were set up for " - "TMDS transmitter use.\n"); - } - - break; - case VIA_CX700: - case VIA_VX800: - case VIA_VX855: - case VIA_VX900: - /* 3C5.13[6] - DVP1 DVP / capture port selection - * 0: DVP1 is used as a DVP (Digital Video Port) - * 1: DVP1 is used as a capture port - */ - if (!(sr13 & 0x40)) { - viaDVP1EnableIOPads(pScrn, ioPadState); - } else { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "DVP1 is not set up for TMDS " - "transmitter use.\n"); - } - - break; - default: - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "Unrecognized IGP for " - "TMDS transmitter use.\n"); - break; - } - - if ((pVia->Chipset == VIA_CX700) - || (pVia->Chipset == VIA_VX800) - || (pVia->Chipset == VIA_VX855) - || (pVia->Chipset == VIA_VX900)) { - - hwp->writeSeq(hwp, 0x5A, sr5a); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Restoring 3C5.5A[0].\n")); - } - - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Exiting viaVT1632EnableIOPads.\n")); -} - -static void viaVT1632SetClockDriveStrength(ScrnInfoPtr pScrn, CARD8 clockDriveStrength) { vgaHWPtr hwp = VGAHWPTR(pScrn); @@ -620,7 +488,7 @@ via_vt1632_mode_set(xf86OutputPtr output, DisplayModePtr mode, if (output->crtc) { viaVT1632SetClockDriveStrength(pScrn, 0x03); viaVT1632SetDataDriveStrength(pScrn, 0x03); - viaVT1632EnableIOPads(pScrn, 0x03); + viaExtTMDSEnableIOPads(pScrn, 0x03); viaVT1632DumpRegisters(pScrn, pVIAVT1632Rec->VT1632I2CDev); viaVT1632InitRegisters(pScrn, pVIAVT1632Rec->VT1632I2CDev); commit d00f60c800e65d3e93bac8fb3cf169209d629bc5 Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Sep 21 22:22:03 2016 -0700 Created viaExtTMDSSetDisplaySource viaExtTMDSSetDisplaySource function is meant to replace viaVT1632SetDisplaySource and viaSiI164SetDisplaySource functions. Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_sii164.c b/src/via_sii164.c index 1fe3997..f623571 100644 --- a/src/via_sii164.c +++ b/src/via_sii164.c @@ -33,138 +33,6 @@ #include "via_sii164.h" static void -viaSiI164SetDisplaySource(ScrnInfoPtr pScrn, CARD8 displaySource) -{ - - vgaHWPtr hwp = VGAHWPTR(pScrn); - VIAPtr pVia = VIAPTR(pScrn); - CARD8 sr12, sr13, sr5a; - - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Entered viaSiI164SetDisplaySource.\n")); - - if ((pVia->Chipset == VIA_CX700) - || (pVia->Chipset == VIA_VX800) - || (pVia->Chipset == VIA_VX855) - || (pVia->Chipset == VIA_VX900)) { - - sr5a = hwp->readSeq(hwp, 0x5A); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "SR5A: 0x%02X\n", sr5a)); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Setting 3C5.5A[0] to 0.\n")); - ViaSeqMask(hwp, 0x5A, sr5a & 0xFE, 0x01); - } - - 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_CLE266: - /* 3C5.12[5] - FPD18 pin strapping - * 0: DIP0 (Digital Interface Port 0) is used by - * a TMDS transmitter (DVI) - * 1: DIP0 (Digital Interface Port 0) is used by - * a TV encoder */ - if (!(sr12 & 0x20)) { - viaDIP0SetDisplaySource(pScrn, displaySource); - } else { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "DIP0 was not set up for " - "TMDS transmitter use.\n"); - } - - break; - case VIA_KM400: - case VIA_K8M800: - case VIA_PM800: - case VIA_P4M800PRO: - /* 3C5.13[3] - DVP0D8 pin strapping - * 0: AGP pins are used for AGP - * 1: AGP pins are used by FPDP - * (Flat Panel Display Port) - * 3C5.12[6] - DVP0D6 pin strapping - * 0: Disable DVP0 (Digital Video Port 0) - * 1: Enable DVP0 (Digital Video Port 0) - * 3C5.12[5] - DVP0D5 pin strapping - * 0: DVP0 is used by a TMDS transmitter (DVI) - * 1: DVP0 is used by a TV encoder - * 3C5.12[4] - DVP0D4 pin strapping - * 0: Dual 12-bit FPDP (Flat Panel Display Port) - * 1: 24-bit FPDP (Flat Panel Display Port) */ - if ((sr12 & 0x40) && (!(sr12 & 0x20))) { - viaDVP0SetDisplaySource(pScrn, displaySource); - } else if ((sr13 & 0x08) && (!(sr12 & 0x10))) { - viaDFPLowSetDisplaySource(pScrn, displaySource); - } else { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "None of the external ports were set up for " - "TMDS transmitter use.\n"); - } - - break; - case VIA_P4M890: - case VIA_K8M890: - case VIA_P4M900: - /* 3C5.12[6] - FPD6 pin strapping - * 0: Disable DVP0 (Digital Video Port 0) - * 1: Enable DVP0 (Digital Video Port 0) - * 3C5.12[5] - FPD5 pin strapping - * 0: DVP0 is used by a TMDS transmitter (DVI) - * 1: DVP0 is used by a TV encoder */ - if ((sr12 & 0x40) && (!(sr12 & 0x20))) { - viaDVP0SetDisplaySource(pScrn, displaySource); - } else if (!(sr12 & 0x10)) { - viaDFPLowSetDisplaySource(pScrn, displaySource); - } else { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "None of the external ports were set up for " - "TMDS transmitter use.\n"); - } - - break; - case VIA_CX700: - case VIA_VX800: - case VIA_VX855: - case VIA_VX900: - /* 3C5.13[6] - DVP1 DVP / capture port selection - * 0: DVP1 is used as a DVP (Digital Video Port) - * 1: DVP1 is used as a capture port - */ - if (!(sr13 & 0x40)) { - viaDVP1SetDisplaySource(pScrn, displaySource); - } else { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "DVP1 is not set up for TMDS " - "transmitter use.\n"); - } - - break; - default: - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "Unrecognized IGP for " - "TMDS transmitter use.\n"); - break; - } - - if ((pVia->Chipset == VIA_CX700) - || (pVia->Chipset == VIA_VX800) - || (pVia->Chipset == VIA_VX855) - || (pVia->Chipset == VIA_VX900)) { - - hwp->writeSeq(hwp, 0x5A, sr5a); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Restoring 3C5.5A[0].\n")); - } - - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Exiting viaSiI164SetDisplaySource.\n")); -} - -static void viaSiI164EnableIOPads(ScrnInfoPtr pScrn, CARD8 ioPadState) { @@ -745,7 +613,7 @@ via_sii164_mode_set(xf86OutputPtr output, DisplayModePtr mode, viaSiI164InitRegisters(pScrn, pSiI164Rec->SiI164I2CDev); viaSiI164DumpRegisters(pScrn, pSiI164Rec->SiI164I2CDev); - viaSiI164SetDisplaySource(pScrn, iga->index ? 0x01 : 0x00); + viaExtTMDSSetDisplaySource(pScrn, iga->index ? 0x01 : 0x00); } DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, diff --git a/src/via_tmds.c b/src/via_tmds.c index 805f4fb..7fc7575 100644 --- a/src/via_tmds.c +++ b/src/via_tmds.c @@ -271,6 +271,137 @@ viaTMDSPower(ScrnInfoPtr pScrn, Bool powerState) "Exiting viaTMDSPower.\n")); } +void +viaExtTMDSSetDisplaySource(ScrnInfoPtr pScrn, CARD8 displaySource) +{ + vgaHWPtr hwp = VGAHWPTR(pScrn); + VIAPtr pVia = VIAPTR(pScrn); + CARD8 sr12, sr13, sr5a; + + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Entered viaExtTMDSSetDisplaySource.\n")); + + if ((pVia->Chipset == VIA_CX700) + || (pVia->Chipset == VIA_VX800) + || (pVia->Chipset == VIA_VX855) + || (pVia->Chipset == VIA_VX900)) { + + sr5a = hwp->readSeq(hwp, 0x5A); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "SR5A: 0x%02X\n", sr5a)); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Setting 3C5.5A[0] to 0.\n")); + ViaSeqMask(hwp, 0x5A, sr5a & 0xFE, 0x01); + } + + 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_CLE266: + /* 3C5.12[5] - FPD18 pin strapping + * 0: DIP0 (Digital Interface Port 0) is used by + * a TMDS transmitter (DVI) + * 1: DIP0 (Digital Interface Port 0) is used by + * a TV encoder */ + if (!(sr12 & 0x20)) { + viaDIP0SetDisplaySource(pScrn, displaySource); + } else { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "DIP0 was not set up for " + "TMDS transmitter use.\n"); + } + + break; + case VIA_KM400: + case VIA_K8M800: + case VIA_PM800: + case VIA_P4M800PRO: + /* 3C5.13[3] - DVP0D8 pin strapping + * 0: AGP pins are used for AGP + * 1: AGP pins are used by FPDP + * (Flat Panel Display Port) + * 3C5.12[6] - DVP0D6 pin strapping + * 0: Disable DVP0 (Digital Video Port 0) + * 1: Enable DVP0 (Digital Video Port 0) + * 3C5.12[5] - DVP0D5 pin strapping + * 0: DVP0 is used by a TMDS transmitter (DVI) + * 1: DVP0 is used by a TV encoder + * 3C5.12[4] - DVP0D4 pin strapping + * 0: Dual 12-bit FPDP (Flat Panel Display Port) + * 1: 24-bit FPDP (Flat Panel Display Port) */ + if ((sr12 & 0x40) && (!(sr12 & 0x20))) { + viaDVP0SetDisplaySource(pScrn, displaySource); + } else if ((sr13 & 0x08) && (!(sr12 & 0x10))) { + viaDFPLowSetDisplaySource(pScrn, displaySource); + } else { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "None of the external ports were set up for " + "TMDS transmitter use.\n"); + } + + break; + case VIA_P4M890: + case VIA_K8M890: + case VIA_P4M900: + /* 3C5.12[6] - FPD6 pin strapping + * 0: Disable DVP0 (Digital Video Port 0) + * 1: Enable DVP0 (Digital Video Port 0) + * 3C5.12[5] - FPD5 pin strapping + * 0: DVP0 is used by a TMDS transmitter (DVI) + * 1: DVP0 is used by a TV encoder */ + if ((sr12 & 0x40) && (!(sr12 & 0x20))) { + viaDVP0SetDisplaySource(pScrn, displaySource); + } else if (!(sr12 & 0x10)) { + viaDFPLowSetDisplaySource(pScrn, displaySource); + } else { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "None of the external ports were set up for " + "TMDS transmitter use.\n"); + } + + break; + case VIA_CX700: + case VIA_VX800: + case VIA_VX855: + case VIA_VX900: + /* 3C5.13[6] - DVP1 DVP / capture port selection + * 0: DVP1 is used as a DVP (Digital Video Port) + * 1: DVP1 is used as a capture port + */ + if (!(sr13 & 0x40)) { + viaDVP1SetDisplaySource(pScrn, displaySource); + } else { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "DVP1 is not set up for TMDS " + "transmitter use.\n"); + } + + break; + default: + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "Unrecognized IGP for " + "TMDS transmitter use.\n"); + break; + } + + if ((pVia->Chipset == VIA_CX700) + || (pVia->Chipset == VIA_VX800) + || (pVia->Chipset == VIA_VX855) + || (pVia->Chipset == VIA_VX900)) { + + hwp->writeSeq(hwp, 0x5A, sr5a); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Restoring 3C5.5A[0].\n")); + } + + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting viaExtTMDSSetDisplaySource.\n")); +} + static void via_tmds_create_resources(xf86OutputPtr output) { diff --git a/src/via_ums.h b/src/via_ums.h index 8e1e9af..094b902 100644 --- a/src/via_ums.h +++ b/src/via_ums.h @@ -263,6 +263,7 @@ void via_analog_init(ScrnInfoPtr pScrn); void via_lvds_init(ScrnInfoPtr pScrn); /* via_tmds.c */ +void viaExtTMDSSetDisplaySource(ScrnInfoPtr pScrn, CARD8 displaySource); void via_dvi_init(ScrnInfoPtr pScrn); /*via_tv.c */ diff --git a/src/via_vt1632.c b/src/via_vt1632.c index ce4f41c..bf810df 100644 --- a/src/via_vt1632.c +++ b/src/via_vt1632.c @@ -33,138 +33,6 @@ #include "via_vt1632.h" static void -viaVT1632SetDisplaySource(ScrnInfoPtr pScrn, CARD8 displaySource) -{ - - vgaHWPtr hwp = VGAHWPTR(pScrn); - VIAPtr pVia = VIAPTR(pScrn); - CARD8 sr12, sr13, sr5a; - - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Entered viaVT1632SetDisplaySource.\n")); - - if ((pVia->Chipset == VIA_CX700) - || (pVia->Chipset == VIA_VX800) - || (pVia->Chipset == VIA_VX855) - || (pVia->Chipset == VIA_VX900)) { - - sr5a = hwp->readSeq(hwp, 0x5A); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "SR5A: 0x%02X\n", sr5a)); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Setting 3C5.5A[0] to 0.\n")); - ViaSeqMask(hwp, 0x5A, sr5a & 0xFE, 0x01); - } - - 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_CLE266: - /* 3C5.12[5] - FPD18 pin strapping - * 0: DIP0 (Digital Interface Port 0) is used by - * a TMDS transmitter (DVI) - * 1: DIP0 (Digital Interface Port 0) is used by - * a TV encoder */ - if (!(sr12 & 0x20)) { - viaDIP0SetDisplaySource(pScrn, displaySource); - } else { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "DIP0 was not set up for " - "TMDS transmitter use.\n"); - } - - break; - case VIA_KM400: - case VIA_K8M800: - case VIA_PM800: - case VIA_P4M800PRO: - /* 3C5.13[3] - DVP0D8 pin strapping - * 0: AGP pins are used for AGP - * 1: AGP pins are used by FPDP - * (Flat Panel Display Port) - * 3C5.12[6] - DVP0D6 pin strapping - * 0: Disable DVP0 (Digital Video Port 0) - * 1: Enable DVP0 (Digital Video Port 0) - * 3C5.12[5] - DVP0D5 pin strapping - * 0: DVP0 is used by a TMDS transmitter (DVI) - * 1: DVP0 is used by a TV encoder - * 3C5.12[4] - DVP0D4 pin strapping - * 0: Dual 12-bit FPDP (Flat Panel Display Port) - * 1: 24-bit FPDP (Flat Panel Display Port) */ - if ((sr12 & 0x40) && (!(sr12 & 0x20))) { - viaDVP0SetDisplaySource(pScrn, displaySource); - } else if ((sr13 & 0x08) && (!(sr12 & 0x10))) { - viaDFPLowSetDisplaySource(pScrn, displaySource); - } else { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "None of the external ports were set up for " - "TMDS transmitter use.\n"); - } - - break; - case VIA_P4M890: - case VIA_K8M890: - case VIA_P4M900: - /* 3C5.12[6] - FPD6 pin strapping - * 0: Disable DVP0 (Digital Video Port 0) - * 1: Enable DVP0 (Digital Video Port 0) - * 3C5.12[5] - FPD5 pin strapping - * 0: DVP0 is used by a TMDS transmitter (DVI) - * 1: DVP0 is used by a TV encoder */ - if ((sr12 & 0x40) && (!(sr12 & 0x20))) { - viaDVP0SetDisplaySource(pScrn, displaySource); - } else if (!(sr12 & 0x10)) { - viaDFPLowSetDisplaySource(pScrn, displaySource); - } else { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "None of the external ports were set up for " - "TMDS transmitter use.\n"); - } - - break; - case VIA_CX700: - case VIA_VX800: - case VIA_VX855: - case VIA_VX900: - /* 3C5.13[6] - DVP1 DVP / capture port selection - * 0: DVP1 is used as a DVP (Digital Video Port) - * 1: DVP1 is used as a capture port - */ - if (!(sr13 & 0x40)) { - viaDVP1SetDisplaySource(pScrn, displaySource); - } else { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "DVP1 is not set up for TMDS " - "transmitter use.\n"); - } - - break; - default: - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "Unrecognized IGP for " - "TMDS transmitter use.\n"); - break; - } - - if ((pVia->Chipset == VIA_CX700) - || (pVia->Chipset == VIA_VX800) - || (pVia->Chipset == VIA_VX855) - || (pVia->Chipset == VIA_VX900)) { - - hwp->writeSeq(hwp, 0x5A, sr5a); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Restoring 3C5.5A[0].\n")); - } - - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Exiting viaVT1632SetDisplaySource.\n")); -} - -static void viaVT1632EnableIOPads(ScrnInfoPtr pScrn, CARD8 ioPadState) { @@ -758,7 +626,7 @@ via_vt1632_mode_set(xf86OutputPtr output, DisplayModePtr mode, viaVT1632InitRegisters(pScrn, pVIAVT1632Rec->VT1632I2CDev); viaVT1632DumpRegisters(pScrn, pVIAVT1632Rec->VT1632I2CDev); - viaVT1632SetDisplaySource(pScrn, iga->index ? 0x01 : 0x00); + viaExtTMDSSetDisplaySource(pScrn, iga->index ? 0x01 : 0x00); } DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, commit 9eaa439a2277ffcb1040c4cc461b4ed4e2c34c52 Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Sep 21 22:01:21 2016 -0700 Changed via_sii164_dump_registers to viaSiI164DumpRegisters Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_sii164.c b/src/via_sii164.c index c345971..1fe3997 100644 --- a/src/via_sii164.c +++ b/src/via_sii164.c @@ -497,13 +497,13 @@ viaSiI164SetDataDriveStrength(ScrnInfoPtr pScrn, CARD8 dataDriveStrength) } static void -via_sii164_dump_registers(ScrnInfoPtr pScrn, I2CDevPtr pDev) +viaSiI164DumpRegisters(ScrnInfoPtr pScrn, I2CDevPtr pDev) { int i; CARD8 tmp; DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Entered via_sii164_dump_registers.\n")); + "Entered viaSiI164DumpRegisters.\n")); DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "SiI 164: dumping registers:\n")); for (i = 0; i <= 0x0f; i++) { @@ -512,7 +512,7 @@ via_sii164_dump_registers(ScrnInfoPtr pScrn, I2CDevPtr pDev) } DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Exiting via_sii164_dump_registers.\n")); + "Exiting viaSiI164DumpRegisters.\n")); } static void @@ -741,9 +741,9 @@ via_sii164_mode_set(xf86OutputPtr output, DisplayModePtr mode, viaSiI164SetDataDriveStrength(pScrn, 0x03); viaSiI164EnableIOPads(pScrn, 0x03); - via_sii164_dump_registers(pScrn, pSiI164Rec->SiI164I2CDev); + viaSiI164DumpRegisters(pScrn, pSiI164Rec->SiI164I2CDev); viaSiI164InitRegisters(pScrn, pSiI164Rec->SiI164I2CDev); - via_sii164_dump_registers(pScrn, pSiI164Rec->SiI164I2CDev); + viaSiI164DumpRegisters(pScrn, pSiI164Rec->SiI164I2CDev); viaSiI164SetDisplaySource(pScrn, iga->index ? 0x01 : 0x00); } @@ -937,7 +937,7 @@ viaSiI164Init(ScrnInfoPtr pScrn, I2CBusPtr pI2CBus) output->interlaceAllowed = FALSE; output->doubleScanAllowed = FALSE; - via_sii164_dump_registers(pScrn, pI2CDevice); + viaSiI164DumpRegisters(pScrn, pI2CDevice); pVia->numberDVI++; status = TRUE; commit 2ff109247c597cabf02134914ac83254528de020 Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Sep 21 21:57:58 2016 -0700 Changed the hardware resource initialization sequence for SiI 164 Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_sii164.c b/src/via_sii164.c index c935575..c345971 100644 --- a/src/via_sii164.c +++ b/src/via_sii164.c @@ -736,16 +736,17 @@ via_sii164_mode_set(xf86OutputPtr output, DisplayModePtr mode, DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Entered via_sii164_mode_set.\n")); - viaSiI164SetDisplaySource(pScrn, iga->index ? 0x01 : 0x00); - viaSiI164EnableIOPads(pScrn, 0x03); - viaSiI164SetClockDriveStrength(pScrn, 0x03); - viaSiI164SetDataDriveStrength(pScrn, 0x03); + if (output->crtc) { + viaSiI164SetClockDriveStrength(pScrn, 0x03); + viaSiI164SetDataDriveStrength(pScrn, 0x03); + viaSiI164EnableIOPads(pScrn, 0x03); - via_sii164_dump_registers(pScrn, pSiI164Rec->SiI164I2CDev); + via_sii164_dump_registers(pScrn, pSiI164Rec->SiI164I2CDev); + viaSiI164InitRegisters(pScrn, pSiI164Rec->SiI164I2CDev); + via_sii164_dump_registers(pScrn, pSiI164Rec->SiI164I2CDev); - viaSiI164InitRegisters(pScrn, pSiI164Rec->SiI164I2CDev); - - via_sii164_dump_registers(pScrn, pSiI164Rec->SiI164I2CDev); + viaSiI164SetDisplaySource(pScrn, iga->index ? 0x01 : 0x00); + } DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Exiting via_sii164_mode_set.\n")); commit df1dfeaf8d3d66f586b691589989522dd3b72989 Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Sep 21 21:54:10 2016 -0700 Changed the hardware resource initialization sequence for VT1632(A) Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_vt1632.c b/src/via_vt1632.c index 48bb80e..ce4f41c 100644 --- a/src/via_vt1632.c +++ b/src/via_vt1632.c @@ -749,16 +749,17 @@ via_vt1632_mode_set(xf86OutputPtr output, DisplayModePtr mode, DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Entered via_vt1632_mode_set.\n")); - viaVT1632SetDisplaySource(pScrn, iga->index ? 0x01 : 0x00); - viaVT1632EnableIOPads(pScrn, 0x03); - viaVT1632SetClockDriveStrength(pScrn, 0x03); - viaVT1632SetDataDriveStrength(pScrn, 0x03); + if (output->crtc) { + viaVT1632SetClockDriveStrength(pScrn, 0x03); + viaVT1632SetDataDriveStrength(pScrn, 0x03); + viaVT1632EnableIOPads(pScrn, 0x03); - viaVT1632DumpRegisters(pScrn, pVIAVT1632Rec->VT1632I2CDev); + viaVT1632DumpRegisters(pScrn, pVIAVT1632Rec->VT1632I2CDev); + viaVT1632InitRegisters(pScrn, pVIAVT1632Rec->VT1632I2CDev); + viaVT1632DumpRegisters(pScrn, pVIAVT1632Rec->VT1632I2CDev); - viaVT1632InitRegisters(pScrn, pVIAVT1632Rec->VT1632I2CDev); - - viaVT1632DumpRegisters(pScrn, pVIAVT1632Rec->VT1632I2CDev); + viaVT1632SetDisplaySource(pScrn, iga->index ? 0x01 : 0x00); + } DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Exiting via_vt1632_mode_set.\n")); commit f699c172910de0049e433023fd9f4aababe5da9b Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Sep 21 21:10:08 2016 -0700 Eliminated new compilation warnings Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_sii164.c b/src/via_sii164.c index c0262da..c935575 100644 --- a/src/via_sii164.c +++ b/src/via_sii164.c @@ -731,7 +731,6 @@ via_sii164_mode_set(xf86OutputPtr output, DisplayModePtr mode, { ScrnInfoPtr pScrn = output->scrn; drmmode_crtc_private_ptr iga = output->crtc->driver_private; - VIAPtr pVia = VIAPTR(pScrn); viaSiI164RecPtr pSiI164Rec = output->driver_private; DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, diff --git a/src/via_vt1632.c b/src/via_vt1632.c index ba866d6..48bb80e 100644 --- a/src/via_vt1632.c +++ b/src/via_vt1632.c @@ -744,7 +744,6 @@ via_vt1632_mode_set(xf86OutputPtr output, DisplayModePtr mode, { ScrnInfoPtr pScrn = output->scrn; drmmode_crtc_private_ptr iga = output->crtc->driver_private; - VIAPtr pVia = VIAPTR(pScrn); viaVT1632RecPtr pVIAVT1632Rec = output->driver_private; DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, commit eef0b90793b7dd59daa3db8afb01a9a3272646f4 Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Sep 21 21:05:30 2016 -0700 Changed viaAnalogSource to viaAnalogSetDisplaySource Also, made updates to the log message displayed by viaAnalogSetDisplaySource function. Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_analog.c b/src/via_analog.c index 185d31b..72c0f52 100644 --- a/src/via_analog.c +++ b/src/via_analog.c @@ -70,21 +70,21 @@ viaAnalogOutput(ScrnInfoPtr pScrn, Bool outputState) * Specifies IGA1 or IGA2 for analog VGA DAC source. */ static void -viaAnalogSource(ScrnInfoPtr pScrn, CARD8 displaySource) +viaAnalogSetDisplaySource(ScrnInfoPtr pScrn, CARD8 displaySource) { vgaHWPtr hwp = VGAHWPTR(pScrn); CARD8 value = displaySource; DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Entered viaAnalogSource.\n")); + "Entered viaAnalogSetDisplaySource.\n")); ViaSeqMask(hwp, 0x16, value << 6, 0x40); xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Analog VGA Output Source: IGA%d\n", + "Analog VGA Display Output Source: IGA%d\n", (value & 0x01) + 1); DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Exiting viaAnalogSource.\n")); + "Exiting viaAnalogSetDisplaySource.\n")); } /* @@ -249,7 +249,7 @@ via_analog_mode_set(xf86OutputPtr output, DisplayModePtr mode, if (output->crtc) { viaAnalogInit(pScrn); viaAnalogSetSyncPolarity(pScrn, adjusted_mode); - viaAnalogSource(pScrn, iga->index ? 0x01 : 0x00); + viaAnalogSetDisplaySource(pScrn, iga->index ? 0x01 : 0x00); } DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, _______________________________________________ Openchrome-devel mailing list Openchrome-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/openchrome-devel