configure.ac | 2 - src/via_analog.c | 1 src/via_fp.c | 16 ++++----- src/via_tmds.c | 54 +++++++++++++++------------------ src/via_ums.h | 90 ++++++++++++++++++++++++++++++++++++------------------- 5 files changed, 94 insertions(+), 69 deletions(-)
New commits: commit 2d116b3128a949faa336c332875d96f184d20ca9 Author: Kevin Brace <kevinbr...@gmx.com> Date: Mon Apr 10 17:35:16 2017 -0700 Version bumped to 0.6.106 Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/configure.ac b/configure.ac index 15361e0..11f35c0 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ(2.57) AC_INIT([xf86-video-openchrome], - [0.6.105], + [0.6.106], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/openchrome], [xf86-video-openchrome]) commit e4378560c3eb6bf7923798e05b67e24a9dde18e8 Author: Kevin Brace <kevinbr...@gmx.com> Date: Mon Apr 10 17:33:10 2017 -0700 Improving TMDS transmitter initialization inside via_tmds_mode_set Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_tmds.c b/src/via_tmds.c index b8c1baa..ff1e828 100644 --- a/src/via_tmds.c +++ b/src/via_tmds.c @@ -887,12 +887,13 @@ via_tmds_mode_set(xf86OutputPtr output, DisplayModePtr mode, DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Entered via_tmds_mode_set.\n")); - /* Initialize VIA IGP integrated TMDS transmitter registers. */ - viaTMDSInitRegisters(pScrn); + if (output->crtc) { + /* Initialize VIA IGP integrated TMDS transmitter registers. */ + viaTMDSInitRegisters(pScrn); - viaTMDSSyncPolarity(pScrn, adjusted_mode->Flags); + /* Set integrated TMDS transmitter sync polarity. */ + viaTMDSSyncPolarity(pScrn, adjusted_mode->Flags); - if (output->crtc) { viaTMDSSetSource(pScrn, iga->index ? 0x01 : 0x00); } commit fe61d3ee8052381b374f6b4e6e05bc5a51aea7cb Author: Kevin Brace <kevinbr...@gmx.com> Date: Mon Apr 10 17:26:37 2017 -0700 Made changes to viaTMDSSyncPolarity Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_tmds.c b/src/via_tmds.c index aa62479..b8c1baa 100644 --- a/src/via_tmds.c +++ b/src/via_tmds.c @@ -106,34 +106,28 @@ viaTMDSInitRegisters(ScrnInfoPtr pScrn) * synchronization. */ static void -viaTMDSSyncPolarity(ScrnInfoPtr pScrn, DisplayModePtr mode) +viaTMDSSyncPolarity(ScrnInfoPtr pScrn, unsigned int flags) { - vgaHWPtr hwp = VGAHWPTR(pScrn); - CARD8 cr97; + CARD8 syncPolarity = 0x00; DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Entered viaTMDSSyncPolarity.\n")); - /* 3X5.97[6] - DVI (TMDS) VSYNC Polarity - * 0: Positive - * 1: Negative - * 3X5.97[5] - DVI (TMDS) HSYNC Polarity - * 0: Positive - * 1: Negative */ - cr97 = hwp->readCrtc(hwp, 0x97); - if (mode->Flags & V_NHSYNC) { - cr97 |= 0x20; - } else { - cr97 &= (~0x20); + if (flags & V_NHSYNC) { + syncPolarity |= BIT(0); } - if (mode->Flags & V_NVSYNC) { - cr97 |= 0x40; - } else { - cr97 &= (~0x40); + if (flags & V_NHSYNC) { + syncPolarity |= BIT(1); } - ViaCrtcMask(hwp, 0x97, cr97, 0x60); + viaTMDSSetSyncPolarity(pScrn, syncPolarity); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "TMDS (DVI) Horizontal Sync Polarity: %s\n", + (syncPolarity & BIT(0)) ? "-" : "+"); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "TMDS (DVI) Vertical Sync Polarity: %s\n", + (syncPolarity & BIT(1)) ? "-" : "+"); DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Exiting viaTMDSSyncPolarity.\n")); @@ -896,9 +890,7 @@ via_tmds_mode_set(xf86OutputPtr output, DisplayModePtr mode, /* Initialize VIA IGP integrated TMDS transmitter registers. */ viaTMDSInitRegisters(pScrn); - /* Set integrated TMDS transmitter synchronization polarity for - * both horizontal synchronization and vertical synchronization. */ - viaTMDSSyncPolarity(pScrn, adjusted_mode); + viaTMDSSyncPolarity(pScrn, adjusted_mode->Flags); if (output->crtc) { viaTMDSSetSource(pScrn, iga->index ? 0x01 : 0x00); commit a6326d620c39d39e496e65ffa91a9613a52baaf2 Author: Kevin Brace <kevinbr...@gmx.com> Date: Mon Apr 10 16:25:39 2017 -0700 Added viaTMDSSetSyncPolarity This inline function was added to via_ums.h. Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_ums.h b/src/via_ums.h index a340fb1..519c3eb 100644 --- a/src/via_ums.h +++ b/src/via_ums.h @@ -273,6 +273,25 @@ viaAnalogSetDisplaySource(ScrnInfoPtr pScrn, CARD8 displaySource) (displaySource & 0x01) + 1)); } +static inline void +viaTMDSSetSyncPolarity(ScrnInfoPtr pScrn, CARD8 syncPolarity) +{ + /* Set TMDS (DVI) sync polarity. */ + /* 3X5.97[6] - DVI (TMDS) VSYNC Polarity + * 0: Positive + * 1: Negative + * 3X5.97[5] - DVI (TMDS) HSYNC Polarity + * 0: Positive + * 1: Negative */ + ViaCrtcMask(VGAHWPTR(pScrn), 0x97, syncPolarity << 5, BIT(6) | BIT(5)); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "TMDS (DVI) Horizontal Sync Polarity: %s\n", + (syncPolarity & BIT(0)) ? "-" : "+")); + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "TMDS (DVI) Vertical Sync Polarity: %s\n", + (syncPolarity & BIT(1)) ? "-" : "+")); +} + /* * Sets CX700 or later single chipset's LVDS1 power sequence type. */ commit d7790d2f20ab0fe4471385a175630c82df51f72c Author: Kevin Brace <kevinbr...@gmx.com> Date: Mon Apr 10 16:12:36 2017 -0700 Renamed viaTMDSSetSyncPolarity as viaTMDSSyncPolarity Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_tmds.c b/src/via_tmds.c index cf093bd..aa62479 100644 --- a/src/via_tmds.c +++ b/src/via_tmds.c @@ -106,13 +106,13 @@ viaTMDSInitRegisters(ScrnInfoPtr pScrn) * synchronization. */ static void -viaTMDSSetSyncPolarity(ScrnInfoPtr pScrn, DisplayModePtr mode) +viaTMDSSyncPolarity(ScrnInfoPtr pScrn, DisplayModePtr mode) { vgaHWPtr hwp = VGAHWPTR(pScrn); CARD8 cr97; DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Entered viaTMDSSetSyncPolarity.\n")); + "Entered viaTMDSSyncPolarity.\n")); /* 3X5.97[6] - DVI (TMDS) VSYNC Polarity * 0: Positive @@ -136,7 +136,7 @@ viaTMDSSetSyncPolarity(ScrnInfoPtr pScrn, DisplayModePtr mode) ViaCrtcMask(hwp, 0x97, cr97, 0x60); DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Exiting viaTMDSSetSyncPolarity.\n")); + "Exiting viaTMDSSyncPolarity.\n")); } /* @@ -898,7 +898,7 @@ via_tmds_mode_set(xf86OutputPtr output, DisplayModePtr mode, /* Set integrated TMDS transmitter synchronization polarity for * both horizontal synchronization and vertical synchronization. */ - viaTMDSSetSyncPolarity(pScrn, adjusted_mode); + viaTMDSSyncPolarity(pScrn, adjusted_mode); if (output->crtc) { viaTMDSSetSource(pScrn, iga->index ? 0x01 : 0x00); commit 1b38d6044c183f0191de8826ffa1e9b44aab4734 Author: Kevin Brace <kevinbr...@gmx.com> Date: Mon Apr 10 16:01:27 2017 -0700 Added diPortType variable to VIATMDSRec record Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_tmds.c b/src/via_tmds.c index a2dd121..cf093bd 100644 --- a/src/via_tmds.c +++ b/src/via_tmds.c @@ -1086,6 +1086,11 @@ viaTMDSInit(ScrnInfoPtr pScrn) goto exit; } + /* Leaving a hint for mode setting and DPMS to know which port + * to access. For CX700 / VX700 and VX800 integrated TMDS + * transmitter, it is fixed to LVDS1 (TMDS uses LVDS1 wires). */ + pVIATMDSRec->diPortType = VIA_DI_PORT_TMDS; + /* The code to dynamically designate the particular DVI (i.e., DVI-1, * DVI-2, etc.) for xrandr was borrowed from xf86-video-r128 DDX. */ sprintf(outputNameBuffer, "DVI-%d", (pVia->numberDVI + 1)); diff --git a/src/via_ums.h b/src/via_ums.h index 2133c1e..a340fb1 100644 --- a/src/via_ums.h +++ b/src/via_ums.h @@ -205,6 +205,7 @@ typedef struct _viaFPRec { typedef struct _VIATMDSRec { I2CBusPtr pVIATMDSI2CBus; + CARD8 diPortType; } VIATMDSRec, *VIATMDSRecPtr; typedef struct commit 583498e6801b96dca63e893b69dabeed0576a2dc Author: Kevin Brace <kevinbr...@gmx.com> Date: Mon Apr 10 14:42:39 2017 -0700 Consolidating per FP (Flat Panel) private memory storage Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_fp.c b/src/via_fp.c index 7811d93..3a33537 100644 --- a/src/via_fp.c +++ b/src/via_fp.c @@ -831,7 +831,7 @@ ViaLCDPowerSequence(vgaHWPtr hwp, VIALCDPowerSeqRec Sequence) static void ViaLCDPower(xf86OutputPtr output, Bool Power_On) { - ViaPanelInfoPtr Panel = output->driver_private; + viaFPRecPtr Panel = output->driver_private; ScrnInfoPtr pScrn = output->scrn; vgaHWPtr hwp = VGAHWPTR(pScrn); VIAPtr pVia = VIAPTR(pScrn); @@ -997,7 +997,7 @@ viaLVDSGetFPInfoFromScratchPad(xf86OutputPtr output) { ScrnInfoPtr pScrn = output->scrn; vgaHWPtr hwp = VGAHWPTR(pScrn); - ViaPanelInfoPtr panel = output->driver_private; + viaFPRecPtr panel = output->driver_private; CARD8 index; DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, @@ -1235,7 +1235,7 @@ static int via_lvds_mode_valid(xf86OutputPtr output, DisplayModePtr pMode) { ScrnInfoPtr pScrn = output->scrn; - ViaPanelInfoPtr Panel = output->driver_private; + viaFPRecPtr Panel = output->driver_private; if (Panel->NativeWidth < pMode->HDisplay || Panel->NativeHeight < pMode->VDisplay) @@ -1255,7 +1255,7 @@ static Bool via_lvds_mode_fixup(xf86OutputPtr output, DisplayModePtr mode, DisplayModePtr adjusted_mode) { - ViaPanelInfoPtr Panel = output->driver_private; + viaFPRecPtr Panel = output->driver_private; xf86SetModeCrtc(adjusted_mode, 0); if (!Panel->Center && (mode->HDisplay < Panel->NativeWidth || @@ -1290,7 +1290,7 @@ static void via_lvds_mode_set(xf86OutputPtr output, DisplayModePtr mode, DisplayModePtr adjusted_mode) { - ViaPanelInfoPtr Panel = output->driver_private; + viaFPRecPtr Panel = output->driver_private; ScrnInfoPtr pScrn = output->scrn; drmmode_crtc_private_ptr iga = output->crtc->driver_private; VIAPtr pVia = VIAPTR(pScrn); @@ -1368,7 +1368,7 @@ via_lvds_detect(xf86OutputPtr output) xf86OutputStatus status = XF86OutputStatusDisconnected; ScrnInfoPtr pScrn = output->scrn; VIAPtr pVia = VIAPTR(pScrn); - ViaPanelInfoPtr panel = output->driver_private; + viaFPRecPtr panel = output->driver_private; DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Entered via_lvds_detect.\n")); @@ -1400,7 +1400,7 @@ exit: static DisplayModePtr via_lvds_get_modes(xf86OutputPtr output) { - ViaPanelInfoPtr pPanel = output->driver_private; + viaFPRecPtr pPanel = output->driver_private; ScrnInfoPtr pScrn = output->scrn; DisplayModePtr pDisplay_Mode = NULL; @@ -1506,7 +1506,7 @@ static const xf86OutputFuncsRec via_lvds_funcs = { void via_lvds_init(ScrnInfoPtr pScrn) { - ViaPanelInfoPtr Panel = (ViaPanelInfoPtr) xnfcalloc(sizeof(ViaPanelInfoRec), 1); + viaFPRecPtr Panel = (viaFPRecPtr) xnfcalloc(sizeof(viaFPRec), 1); OptionInfoPtr Options = xnfalloc(sizeof(ViaPanelOptions)); MessageType from = X_DEFAULT; VIAPtr pVia = VIAPTR(pScrn); diff --git a/src/via_ums.h b/src/via_ums.h index be6b66b..2133c1e 100644 --- a/src/via_ums.h +++ b/src/via_ums.h @@ -138,32 +138,6 @@ typedef struct ViaPanelMode { Bool useDithering; } ViaPanelModeRec, *ViaPanelModePtr ; -typedef struct ViaPanelInfo { - Bool IsActive ; - /* Native physical resolution */ - int NativeHeight; - int NativeWidth; - Bool useDualEdge; - Bool useDithering; - - /* Native resolution index, see via_panel.c */ - CARD8 NativeModeIndex; - /* Determine if we must use the hardware scaler - * It might be false even if the "Center" option - * was specified - */ - Bool Scale; - - /* Panel/LCD entries */ - CARD16 ResolutionIndex; - int PanelIndex; - Bool Center; - Bool SetDVI; - /* LCD Simultaneous Expand Mode HWCursor Y Scale */ - Bool scaleY; - int resY; -} ViaPanelInfoRec, *ViaPanelInfoPtr ; - typedef struct _VIABIOSINFO { xf86OutputPtr analog; xf86OutputPtr tv; @@ -202,6 +176,30 @@ typedef struct _VIABIOSINFO { * Record for storing FP (Flat Panel) specific information. */ typedef struct _viaFPRec { + Bool IsActive ; + /* Native physical resolution */ + int NativeHeight; + int NativeWidth; + Bool useDualEdge; + Bool useDithering; + + /* Native resolution index, see via_panel.c */ + CARD8 NativeModeIndex; + /* Determine if we must use the hardware scaler + * It might be false even if the "Center" option + * was specified + */ + Bool Scale; + + /* Panel/LCD entries */ + CARD16 ResolutionIndex; + int PanelIndex; + Bool Center; + Bool SetDVI; + /* LCD Simultaneous Expand Mode HWCursor Y Scale */ + Bool scaleY; + int resY; + I2CBusPtr pVIAFPI2CBus; } viaFPRec, *viaFPRecPtr; commit c2f76b51e96e57d28b0c3dfbdc265999b8cfcf27 Author: Kevin Brace <kevinbr...@gmx.com> Date: Mon Apr 10 01:02:25 2017 -0700 Removed reference to via_bios.h inside via_ums.h Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_ums.h b/src/via_ums.h index 83c359f..be6b66b 100644 --- a/src/via_ums.h +++ b/src/via_ums.h @@ -26,8 +26,8 @@ * DEALINGS IN THE SOFTWARE. */ -#ifndef _VIA_BIOS_H_ -#define _VIA_BIOS_H_ 1 +#ifndef _VIA_UMS_H_ +#define _VIA_UMS_H_ 1 #include "via_vgahw.h" @@ -447,4 +447,4 @@ void ViaVT162xInit(ScrnInfoPtr pScrn); I2CDevPtr ViaCH7xxxDetect(ScrnInfoPtr pScrn, I2CBusPtr pBus, CARD8 Address); void ViaCH7xxxInit(ScrnInfoPtr pScrn); -#endif /* _VIA_BIOS_H_ */ +#endif /* _VIA_UMS_H_ */ commit 627d3c74db928481552fe7cde58740814b202c51 Author: Kevin Brace <kevinbr...@gmx.com> Date: Mon Apr 10 00:43:50 2017 -0700 Defined new external digital ports Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_ums.h b/src/via_ums.h index 13319e4..83c359f 100644 --- a/src/via_ums.h +++ b/src/via_ums.h @@ -113,12 +113,15 @@ /* Digital Port */ #define VIA_DI_PORT_NONE 0x0 +#define VIA_DI_PORT_DIP0 0x1 #define VIA_DI_PORT_DVP0 0x1 +#define VIA_DI_PORT_DIP1 0x2 #define VIA_DI_PORT_DVP1 0x2 -#define VIA_DI_PORT_DFPLOW 0x4 +#define VIA_DI_PORT_FPDPLOW 0x4 +#define VIA_DI_PORT_DVP2 0x4 #define VIA_DI_PORT_LVDS1 0x4 #define VIA_DI_PORT_TMDS 0x4 -#define VIA_DI_PORT_DFPHIGH 0x8 +#define VIA_DI_PORT_FPDPHIGH 0x8 #define VIA_DI_PORT_LVDS2 0x8 /* External TMDS (DVI) Transmitter Type */ commit cb00e7e8bbf6c23cc40aeae75172356431fb96f3 Author: Kevin Brace <kevinbr...@gmx.com> Date: Mon Apr 10 00:38:08 2017 -0700 Added FP (Flat Panel) specific record to via_ums.h Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_ums.h b/src/via_ums.h index 4d9c8b3..13319e4 100644 --- a/src/via_ums.h +++ b/src/via_ums.h @@ -195,6 +195,13 @@ typedef struct _VIABIOSINFO { } VIABIOSInfoRec, *VIABIOSInfoPtr; +/* + * Record for storing FP (Flat Panel) specific information. + */ +typedef struct _viaFPRec { + I2CBusPtr pVIAFPI2CBus; +} viaFPRec, *viaFPRecPtr; + typedef struct _VIATMDSRec { I2CBusPtr pVIATMDSI2CBus; } VIATMDSRec, *VIATMDSRecPtr; commit 87123c64a85b132de89fcf6b26503634280218ce Author: Kevin Brace <kevinbr...@gmx.com> Date: Sun Apr 9 19:44:18 2017 -0700 Removing unnecessary variable from viaAnalogDisplaySource Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_analog.c b/src/via_analog.c index c0ca6dc..12ff95a 100644 --- a/src/via_analog.c +++ b/src/via_analog.c @@ -65,7 +65,6 @@ viaAnalogOutput(ScrnInfoPtr pScrn, Bool outputState) static void viaAnalogDisplaySource(ScrnInfoPtr pScrn, int index) { - vgaHWPtr hwp = VGAHWPTR(pScrn); CARD8 displaySource = index; DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, _______________________________________________ Openchrome-devel mailing list Openchrome-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/openchrome-devel