configure.ac | 2 src/via_analog.c | 78 ++------- src/via_display.c | 58 ++++--- src/via_lvds.c | 433 +++++++++++++++++++++++------------------------------- src/via_memcpy.c | 1 src/via_mode.h | 64 ------- src/via_outputs.c | 34 ---- src/via_tv.c | 18 -- src/via_ums.c | 2 9 files changed, 254 insertions(+), 436 deletions(-)
New commits: commit 60b8773e1d7a25ac0f62331d2238b90b0b88404e Author: Kevin Brace <kevinbr...@gmx.com> Date: Thu Aug 25 03:15:40 2016 -0700 Version bumped to 0.5.139 Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/configure.ac b/configure.ac index ebf5b36..ad96eed 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ(2.57) AC_INIT([xf86-video-openchrome], - [0.5.138], + [0.5.139], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/openchrome], [xf86-video-openchrome]) commit 433d2a06bd169e93ed38d1cd06552697752e7dc1 Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Aug 24 18:21:52 2016 -0700 Removing ViaDisplayDisableDVO from via_tv.c Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_tv.c b/src/via_tv.c index 09ca4d2..56e943b 100644 --- a/src/via_tv.c +++ b/src/via_tv.c @@ -221,23 +221,6 @@ ViaDisplayEnableDVO(ScrnInfoPtr pScrn, int port) } static void -ViaDisplayDisableDVO(ScrnInfoPtr pScrn, int port) -{ - vgaHWPtr hwp = VGAHWPTR(pScrn); - - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "ViaDisplayDisableDVO, port: %d\n", - port)); - switch (port) { - case VIA_DI_PORT_DVP0: - ViaSeqMask(hwp, 0x1E, 0x00, 0xC0); - break; - case VIA_DI_PORT_DVP1: - ViaSeqMask(hwp, 0x1E, 0x00, 0x30); - break; - } -} - -static void ViaDisplaySetStreamOnDVO(ScrnInfoPtr pScrn, int port, int iga) { vgaHWPtr hwp = VGAHWPTR(pScrn); commit 90077cd187657b5207a98be1361878b842a36318 Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Aug 24 18:16:50 2016 -0700 Moving ViaPrintMode from via_outputs.c to via_display.c Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_display.c b/src/via_display.c index eac9e64..d982161 100644 --- a/src/via_display.c +++ b/src/via_display.c @@ -31,6 +31,41 @@ #include "via_driver.h" + +static void +ViaPrintMode(ScrnInfoPtr pScrn, DisplayModePtr mode) +{ + xf86PrintModeline(pScrn->scrnIndex, mode); + + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcHDisplay: 0x%x\n", + mode->CrtcHDisplay); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcHBlankStart: 0x%x\n", + mode->CrtcHBlankStart); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcHSyncStart: 0x%x\n", + mode->CrtcHSyncStart); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcHSyncEnd: 0x%x\n", + mode->CrtcHSyncEnd); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcHBlankEnd: 0x%x\n", + mode->CrtcHBlankEnd); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcHTotal: 0x%x\n", + mode->CrtcHTotal); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcHSkew: 0x%x\n", + mode->CrtcHSkew); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcVDisplay: 0x%x\n", + mode->CrtcVDisplay); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcVBlankStart: 0x%x\n", + mode->CrtcVBlankStart); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcVSyncStart: 0x%x\n", + mode->CrtcVSyncStart); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcVSyncEnd: 0x%x\n", + mode->CrtcVSyncEnd); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcVBlankEnd: 0x%x\n", + mode->CrtcVBlankEnd); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcVTotal: 0x%x\n", + mode->CrtcVTotal); + +} + /* * Controls IGA1 DPMS State. */ @@ -3012,6 +3047,7 @@ iga1_crtc_mode_set(xf86CrtcPtr crtc, DisplayModePtr mode, /* Disable IGA1 */ ViaSeqMask(hwp, 0x59, 0x00, 0x80); + ViaPrintMode(pScrn, adjusted_mode); viaIGA1SetDisplayRegister(pScrn, adjusted_mode); ViaSetPrimaryFIFO(pScrn, adjusted_mode); @@ -3440,6 +3476,7 @@ iga2_crtc_mode_set(xf86CrtcPtr crtc, DisplayModePtr mode, viaIGA2Init(pScrn); ViaCRTCInit(pScrn); + ViaPrintMode(pScrn, adjusted_mode); viaIGA2SetDisplayRegister(pScrn, adjusted_mode); ViaSetSecondaryFIFO(pScrn, adjusted_mode); pBIOSInfo->Clock = ViaModeDotClockTranslate(pScrn, adjusted_mode); diff --git a/src/via_outputs.c b/src/via_outputs.c index ca85839..e6cc824 100644 --- a/src/via_outputs.c +++ b/src/via_outputs.c @@ -46,40 +46,6 @@ */ #include "via_mode.h" -static void -ViaPrintMode(ScrnInfoPtr pScrn, DisplayModePtr mode) -{ - xf86PrintModeline(pScrn->scrnIndex, mode); - - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcHDisplay: 0x%x\n", - mode->CrtcHDisplay); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcHBlankStart: 0x%x\n", - mode->CrtcHBlankStart); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcHSyncStart: 0x%x\n", - mode->CrtcHSyncStart); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcHSyncEnd: 0x%x\n", - mode->CrtcHSyncEnd); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcHBlankEnd: 0x%x\n", - mode->CrtcHBlankEnd); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcHTotal: 0x%x\n", - mode->CrtcHTotal); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcHSkew: 0x%x\n", - mode->CrtcHSkew); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcVDisplay: 0x%x\n", - mode->CrtcVDisplay); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcVBlankStart: 0x%x\n", - mode->CrtcVBlankStart); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcVSyncStart: 0x%x\n", - mode->CrtcVSyncStart); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcVSyncEnd: 0x%x\n", - mode->CrtcVSyncEnd); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcVBlankEnd: 0x%x\n", - mode->CrtcVBlankEnd); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcVTotal: 0x%x\n", - mode->CrtcVTotal); - -} - /* * Sets IGA1 or IGA2 as the display output source for DVP0 * (Digital Video Port) interface. commit 28c2e12f89b81bf345d6ca3740a4c08197bdc3fb Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Aug 24 18:12:13 2016 -0700 Removing ViaPrintMode from via_analog.c Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_analog.c b/src/via_analog.c index ea82f7d..ed73194 100644 --- a/src/via_analog.c +++ b/src/via_analog.c @@ -41,40 +41,6 @@ #include <unistd.h> -static void -ViaPrintMode(ScrnInfoPtr pScrn, DisplayModePtr mode) -{ - xf86PrintModeline(pScrn->scrnIndex, mode); - - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcHDisplay: 0x%x\n", - mode->CrtcHDisplay); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcHBlankStart: 0x%x\n", - mode->CrtcHBlankStart); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcHSyncStart: 0x%x\n", - mode->CrtcHSyncStart); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcHSyncEnd: 0x%x\n", - mode->CrtcHSyncEnd); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcHBlankEnd: 0x%x\n", - mode->CrtcHBlankEnd); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcHTotal: 0x%x\n", - mode->CrtcHTotal); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcHSkew: 0x%x\n", - mode->CrtcHSkew); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcVDisplay: 0x%x\n", - mode->CrtcVDisplay); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcVBlankStart: 0x%x\n", - mode->CrtcVBlankStart); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcVSyncStart: 0x%x\n", - mode->CrtcVSyncStart); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcVSyncEnd: 0x%x\n", - mode->CrtcVSyncEnd); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcVBlankEnd: 0x%x\n", - mode->CrtcVBlankEnd); - xf86DrvMsg(pScrn->scrnIndex, X_INFO, "CrtcVTotal: 0x%x\n", - mode->CrtcVTotal); - -} - /* * Enables or disables analog VGA output by controlling DAC * (Digital to Analog Converter) output state. commit e9b14c38ac4b36e62d2dbe66bee06cd9b3be9719 Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Aug 24 17:58:35 2016 -0700 Discontinued ViaPanelLookUpModeIndex This function is located inside via_lvds.c. Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_lvds.c b/src/via_lvds.c index 0a1b750..fa81adb 100644 --- a/src/via_lvds.c +++ b/src/via_lvds.c @@ -886,23 +886,6 @@ viaSetLVDSOutput(ScrnInfoPtr pScrn) "Exiting viaSetLVDSOutput.\n")); } -static int -ViaPanelLookUpModeIndex(int width, int height) -{ - int i, index = VIA_PANEL_INVALID; - int length = sizeof(ViaPanelNativeModes) / sizeof(ViaPanelModeRec); - - - for (i = 0; i < length; i++) { - if (ViaPanelNativeModes[i].Width == width - && ViaPanelNativeModes[i].Height == height) { - index = i; - break; - } - } - return index; -} - static void via_lvds_create_resources(xf86OutputPtr output) { commit 140a0c726aef13f3a7cb7354dca6499e3fdbd1ba Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Aug 24 17:56:22 2016 -0700 Removed a compilation warning from viaVidCopyInit Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_memcpy.c b/src/via_memcpy.c index 8ef0e9f..85db0ef 100644 --- a/src/via_memcpy.c +++ b/src/via_memcpy.c @@ -528,7 +528,6 @@ viaVidCopyInit(char *copyType, ScreenPtr pScreen) McFuncData *curData; FILE *cpuInfoFile; double cpuFreq; - VIAPtr pVia = VIAPTR(pScrn); if (NULL == (cpuInfoFile = fopen("/proc/cpuinfo", "r"))) { return libc_YUV42X; commit 4243c19abe933efe7abdfef979ae7eeece29c91a Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Aug 24 17:53:32 2016 -0700 Removed a compilation warning from via_tv_mode_valid Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_tv.c b/src/via_tv.c index 276543c..09ca4d2 100644 --- a/src/via_tv.c +++ b/src/via_tv.c @@ -176,7 +176,6 @@ static int via_tv_mode_valid(xf86OutputPtr output, DisplayModePtr pMode) { ScrnInfoPtr pScrn = output->scrn; - VIAPtr pVia = VIAPTR(pScrn); int ret = MODE_OK; if (!ViaModeDotClockTranslate(pScrn, pMode)) commit 1a680374b48c2b8914f028f2c7e06ed1c41b3387 Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Aug 24 17:45:34 2016 -0700 Version bumped to 0.5.138 Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/configure.ac b/configure.ac index c5c0d1b..ebf5b36 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ(2.57) AC_INIT([xf86-video-openchrome], - [0.5.137], + [0.5.138], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/openchrome], [xf86-video-openchrome]) commit dd809da78fd302bf5c8095e6a7164052b6f170a1 Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Aug 24 17:43:58 2016 -0700 Major rewriting of via_lvds_detect callback function Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_lvds.c b/src/via_lvds.c index a6f1055..0a1b750 100644 --- a/src/via_lvds.c +++ b/src/via_lvds.c @@ -1070,85 +1070,52 @@ static xf86OutputStatus via_lvds_detect(xf86OutputPtr output) { xf86OutputStatus status = XF86OutputStatusDisconnected; - ViaPanelInfoPtr panel = output->driver_private; ScrnInfoPtr pScrn = output->scrn; - VIAPtr pVia = VIAPTR(pScrn); vgaHWPtr hwp = VGAHWPTR(pScrn); - CARD8 cr3b = 0x00; - CARD8 cr3b_mask = 0x00; + VIAPtr pVia = VIAPTR(pScrn); + ViaPanelInfoPtr panel = output->driver_private; + CARD8 cr3b; + CARD8 cr3b_mask; DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Entered via_lvds_detect.\n")); - /* Hardcode panel size for the XO */ + /* Hardcode panel size for the OLPC XO-1.5. */ if (pVia->IsOLPCXO15) { + xf86DrvMsg(pScrn->scrnIndex, X_PROBED, + "Setting up OLPC XO-1.5 flat panel.\n"); panel->NativeWidth = 1200; panel->NativeHeight = 900; status = XF86OutputStatusConnected; - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_PROBED, - "Setting up OLPC XO-1.5 flat panel.\n")); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_PROBED, - "Detected Flat Panel Screen Resolution: " - "%dx%d\n", - panel->NativeWidth, panel->NativeHeight)); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Exiting via_lvds_detect.\n")); - return status; + goto exit; } - if (!panel->NativeWidth || !panel->NativeHeight) { - int width, height; - Bool ret; - - /* Disable reading off EDID from I2C bus 2 since it is often - * used by DVI as well. For now, this is how DVI and LVDS FP will - * coexist. */ + /* Disable reading off EDID from I2C bus 2 since it is often + * used by DVI as well. For now, this is how DVI and LVDS FP will + * coexist. */ /* - ret = ViaPanelGetSizeFromDDCv1(output, &width, &height); + if (ViaPanelGetSizeFromDDCv1(output, &width, &height)) { */ - ret = FALSE; - if (ret) { - panel->NativeModeIndex = ViaPanelLookUpModeIndex(width, height); - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_PROBED, - "ViaPanelLookUpModeIndex: Width %d, " - "Height %d, NativeModeIndex%d\n", - width, height, panel->NativeModeIndex)); - if (panel->NativeModeIndex != VIA_PANEL_INVALID) { - panel->NativeWidth = width; - panel->NativeHeight = height; - status = XF86OutputStatusConnected; - } + if (FALSE) { + status = XF86OutputStatusConnected; + } else { + /* Apparently this is the way VIA Technologies passes */ + /* the presence of a flat panel to the device driver */ + /* via BIOS setup. */ + if (pVia->Chipset == VIA_CLE266) { + cr3b_mask = 0x08; } else { - /* Apparently this is the way VIA Technologies passes */ - /* the presence of a flat panel to the device driver */ - /* via BIOS setup. */ - if (pVia->Chipset == VIA_CLE266) { - cr3b_mask = 0x08; - } else { - cr3b_mask = 0x02; - } - - cr3b = hwp->readCrtc(hwp, 0x3B) & cr3b_mask; - - if (cr3b) { - viaLVDSGetFPInfoFromScratchPad(output); - - if (panel->NativeWidth && panel->NativeHeight) { - status = XF86OutputStatusConnected; - } - } + cr3b_mask = 0x02; } - if (status == XF86OutputStatusConnected) { - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_PROBED, - "Detected Flat Panel Screen Resolution: " - "%dx%d\n", - panel->NativeWidth, panel->NativeHeight)); + cr3b = hwp->readCrtc(hwp, 0x3B) & cr3b_mask; + if (cr3b) { + viaLVDSGetFPInfoFromScratchPad(output); + status = XF86OutputStatusConnected; } - } else { - status = XF86OutputStatusConnected; } +exit: DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Exiting via_lvds_detect.\n")); return status; commit dc57b925d0b75bdd43635b07783d3af968650092 Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Aug 24 17:13:03 2016 -0700 Added missing RANDR_13_INTERFACE conditional compilation It was added to via_analog_get_property callback function. Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_analog.c b/src/via_analog.c index 12f26f6..ea82f7d 100644 --- a/src/via_analog.c +++ b/src/via_analog.c @@ -345,7 +345,9 @@ via_analog_set_property(xf86OutputPtr output, Atom property, { return TRUE; } +#endif +#ifdef RANDR_13_INTERFACE static Bool via_analog_get_property(xf86OutputPtr output, Atom property) { commit f3ab6ae7e1e2803a9bca84f0bf9a6bb4db058a86 Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Aug 24 17:10:40 2016 -0700 Rearranging code inside via_analog.c Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_analog.c b/src/via_analog.c index 1ce1d98..12f26f6 100644 --- a/src/via_analog.c +++ b/src/via_analog.c @@ -171,21 +171,6 @@ via_analog_create_resources(xf86OutputPtr output) { } -#ifdef RANDR_12_INTERFACE -static Bool -via_analog_set_property(xf86OutputPtr output, Atom property, - RRPropertyValuePtr value) -{ - return TRUE; -} - -static Bool -via_analog_get_property(xf86OutputPtr output, Atom property) -{ - return FALSE; -} -#endif - static void via_analog_dpms(xf86OutputPtr output, int mode) { @@ -353,6 +338,21 @@ via_analog_detect(xf86OutputPtr output) return status; } +#ifdef RANDR_12_INTERFACE +static Bool +via_analog_set_property(xf86OutputPtr output, Atom property, + RRPropertyValuePtr value) +{ + return TRUE; +} + +static Bool +via_analog_get_property(xf86OutputPtr output, Atom property) +{ + return FALSE; +} +#endif + static void via_analog_destroy(xf86OutputPtr output) { @@ -360,12 +360,6 @@ via_analog_destroy(xf86OutputPtr output) static const xf86OutputFuncsRec via_analog_funcs = { .create_resources = via_analog_create_resources, -#ifdef RANDR_12_INTERFACE - .set_property = via_analog_set_property, -#endif -#ifdef RANDR_13_INTERFACE - .get_property = via_analog_get_property, -#endif .dpms = via_analog_dpms, .save = via_analog_save, .restore = via_analog_restore, @@ -376,6 +370,12 @@ static const xf86OutputFuncsRec via_analog_funcs = { .mode_set = via_analog_mode_set, .detect = via_analog_detect, .get_modes = xf86OutputGetEDIDModes, +#ifdef RANDR_12_INTERFACE + .set_property = via_analog_set_property, +#endif +#ifdef RANDR_13_INTERFACE + .get_property = via_analog_get_property, +#endif .destroy = via_analog_destroy, }; commit fe530e16e79219024cc3dd08854de73be5443dc0 Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Aug 24 17:04:51 2016 -0700 Removed more legacy panel table code Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_lvds.c b/src/via_lvds.c index a4a1d1d..a6f1055 100644 --- a/src/via_lvds.c +++ b/src/via_lvds.c @@ -689,29 +689,6 @@ ViaPanelGetSizeFromDDCv1(xf86OutputPtr output, int *width, int *height) return TRUE; } -static Bool -ViaGetResolutionIndex(ScrnInfoPtr pScrn, ViaPanelInfoPtr Panel, - DisplayModePtr mode) -{ - int i; - - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "ViaGetResolutionIndex: Looking for %dx%d\n", - mode->CrtcHDisplay, mode->CrtcVDisplay)); - for (i = 0; ViaResolutionTable[i].Index != VIA_RES_INVALID; i++) { - if ((ViaResolutionTable[i].X == mode->CrtcHDisplay) - && (ViaResolutionTable[i].Y == mode->CrtcVDisplay)) { - Panel->ResolutionIndex = ViaResolutionTable[i].Index; - DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "ViaGetResolutionIndex:" - " %d\n", Panel->ResolutionIndex)); - return TRUE; - } - } - - Panel->ResolutionIndex = VIA_RES_INVALID; - return FALSE; -} - /* * Gets the native panel resolution from scratch pad registers. */ diff --git a/src/via_mode.h b/src/via_mode.h index f0c6a78..5e18266 100644 --- a/src/via_mode.h +++ b/src/via_mode.h @@ -132,70 +132,6 @@ static struct ViaDotClock { #define VIA_RES_1200X900 23 #define VIA_RES_INVALID 0xFF -/* - * simple lookuptable for PanelIndex selection - */ - -static struct { - int Index; - int PanelIndex; - int X; - int Y; -} ViaResolutionTable[] = { - {VIA_RES_640X480, VIA_PANEL6X4, 640, 480}, - {VIA_RES_800X600, VIA_PANEL8X6, 800, 600}, - {VIA_RES_1024X768, VIA_PANEL10X7, 1024, 768}, - {VIA_RES_1152X864, VIA_PANEL_INVALID, 1152, 864}, - {VIA_RES_1280X1024, VIA_PANEL12X10, 1280, 1024}, - {VIA_RES_1600X1200, VIA_PANEL16X12, 1600, 1200}, - {VIA_RES_1440X1050, VIA_PANEL_INVALID, 1440, 1050}, - {VIA_RES_1280X768, VIA_PANEL12X7, 1280, 768}, - {VIA_RES_1280X800, VIA_PANEL12X8, 1280, 800}, - {VIA_RES_1280X960, VIA_PANEL_INVALID, 1280, 960}, - /* {VIA_RES_1920X1440, VIA_PANEL_INVALID, 1920, 1140}, */ - {VIA_RES_848X480, VIA_PANEL_INVALID, 848, 480}, - {VIA_RES_1400X1050, VIA_PANEL14X10, 1400, 1050}, - {VIA_RES_720X480, VIA_PANEL_INVALID, 720, 480}, - {VIA_RES_720X576, VIA_PANEL_INVALID, 720, 576}, - {VIA_RES_1024X512, VIA_PANEL_INVALID, 1024, 512}, - {VIA_RES_856X480, VIA_PANEL_INVALID, 856, 480}, - {VIA_RES_1024X576, VIA_PANEL_INVALID, 1024, 576}, - {VIA_RES_800X480, VIA_PANEL8X4, 800, 480}, - {VIA_RES_1200X900, VIA_PANEL12X9, 1200, 900}, - {VIA_RES_INVALID, VIA_PANEL_INVALID, 0, 0} -}; - -static struct { - CARD16 Width; - CARD16 Height; - CARD8 mode_8b; - CARD8 mode_16b; - CARD8 mode_32b; -} ViaVesaModes[] = { - { 400, 300, 0x22, 0x23, 0x24 }, - { 512, 384, 0x25, 0x26, 0x27 }, - { 640, 400, 0x30, 0x2E, 0x2F }, - { 640, 480, 0x31, 0x33, 0x34 }, - { 800, 600, 0x36, 0x38, 0x39 }, - { 1024, 768, 0x3B, 0x3D, 0x3E }, - { 1152, 864, 0x40, 0x42, 0x43 }, - { 1280, 1024, 0x45, 0x47, 0x48 }, - { 1600, 1200, 0x4A, 0x4C, 0x4D }, - { 1440, 1050, 0x50, 0x52, 0x53 }, - { 1280, 768, 0x54, 0x56, 0x57 }, - { 1280, 960, 0x58, 0x5A, 0x5B }, - { 320, 200, 0x5C, 0x5D, 0x5E }, - { 1920, 1440, 0x60, 0x61, 0x62 }, - { 848, 480, 0x63, 0x64, 0x65 }, - { 1400, 1050, 0x66, 0x67, 0x68 }, - { 720, 480, 0x70, 0x71, 0x72 }, - { 720, 576, 0x73, 0x74, 0x75 }, - { 1024, 512, 0x76, 0x77, 0x78 }, - { 856, 480, 0x79, 0x7A, 0x7B }, - { 320, 240, 0x7C, 0x7D, 0x7E }, - { 0, 0, 0, 0, 0 }, -}; - #define VIA_BIOS_REG_LCD_MAX_NUM 48 #define VIA_BIOS_NUM_LCD_SUPPORT_MASK 8 #define VIA_BIOS_NUM_PANEL 7 commit 37147d9e42cc6a2a8935e36b7f52ee85b60e51db Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Aug 24 16:39:51 2016 -0700 Removing a compilation warning from via_ums.c Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_ums.c b/src/via_ums.c index 4820c3c..95b9e5b 100644 --- a/src/via_ums.c +++ b/src/via_ums.c @@ -186,7 +186,7 @@ viaMapMMIO(ScrnInfoPtr pScrn) xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "Mapping the frame buffer at address 0x%lX with " - "size %u KB.\n", + "size %lu KB.\n", pVia->FrameBufferBase, pVia->videoRambytes / 1024); #ifdef HAVE_PCIACCESS commit 24d8ddc7ea1639250bbea0d15969726ba1ab0c15 Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Aug 24 16:23:45 2016 -0700 Version bumped to 0.5.137 Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/configure.ac b/configure.ac index c62e027..c5c0d1b 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ(2.57) AC_INIT([xf86-video-openchrome], - [0.5.136], + [0.5.137], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/openchrome], [xf86-video-openchrome]) commit 6b66a9ec3c0c3caf75e804f0abe19871df014c4b Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Aug 24 16:21:22 2016 -0700 Fixing FP (Flat Panel) display controller to IGA2 Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_lvds.c b/src/via_lvds.c index 891d4c0..a4a1d1d 100644 --- a/src/via_lvds.c +++ b/src/via_lvds.c @@ -1330,10 +1330,12 @@ via_lvds_init(ScrnInfoPtr pScrn) if (output) { output->driver_private = Panel; - if (pVia->Chipset == VIA_VX900) - output->possible_crtcs = 0x3; - else - output->possible_crtcs = 0x2; + /* While there are two (2) display controllers registered with the + * X.Org Server, it is often desirable to fix FP (Flat Panel) to + * IGA2 since only IGA2 contains panel resolution scaling + * functionality. IGA1 does not have this. */ + output->possible_crtcs = 1 << 1; + output->possible_clones = 0; output->interlaceAllowed = FALSE; output->doubleScanAllowed = FALSE; commit 87319d7d54fa548ab48b1b156a43caa3e588a0e9 Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Aug 24 16:15:22 2016 -0700 Removed unused variable and comment warning from via_lvds.c Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_lvds.c b/src/via_lvds.c index ed8f463..891d4c0 100644 --- a/src/via_lvds.c +++ b/src/via_lvds.c @@ -118,7 +118,7 @@ viaLVDS1SetDisplaySource(ScrnInfoPtr pScrn, CARD8 displaySource) DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Entered viaLVDS1SetDisplaySource.\n")); - /* Set LVDS1 integrated LVDS transmitter display output source. + /* Set LVDS1 integrated LVDS transmitter display output source. */ /* 3X5.99[4] - LVDS Channel 1 Data Source Selection * 0: Primary Display * 1: Secondary Display */ @@ -145,7 +145,7 @@ viaLVDS2SetDisplaySource(ScrnInfoPtr pScrn, CARD8 displaySource) DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Entered viaLVDS2SetDisplaySource.\n")); - /* Set LVDS2 integrated LVDS transmitter display output source. + /* Set LVDS2 integrated LVDS transmitter display output source. */ /* 3X5.97[4] - LVDS Channel 2 Data Source Selection * 0: Primary Display * 1: Secondary Display */ @@ -170,7 +170,7 @@ viaLVDS2SetDelayTap(ScrnInfoPtr pScrn, CARD8 delayTap) DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Entered viaLVDS2SetDelayTap.\n")); - /* Set LVDS2 delay tap. + /* Set LVDS2 delay tap. */ /* 3X5.97[3:0] - LVDS2 Delay Tap */ ViaCrtcMask(hwp, 0x97, delayTap, 0x0F); @@ -195,7 +195,7 @@ viaDFPLowSetDisplaySource(ScrnInfoPtr pScrn, CARD8 displaySource) DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Entered viaDFPLowSetDisplaySource.\n")); - /* Set DFP Low display output source. + /* Set DFP Low display output source. */ /* 3X5.99[4] - DFP Low Data Source Selection * 0: Primary Display * 1: Secondary Display */ @@ -221,7 +221,7 @@ viaDFPHighSetDisplaySource(ScrnInfoPtr pScrn, CARD8 displaySource) DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Entered viaDFPHighSetDisplaySource.\n")); - /* Set DFP High display output source. + /* Set DFP High display output source. */ /* 3X5.97[4] - DFP High Data Source Selection * 0: Primary Display * 1: Secondary Display */ @@ -245,7 +245,7 @@ viaDFPLowSetDelayTap(ScrnInfoPtr pScrn, CARD8 delayTap) DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Entered viaDFPLowSetDelayTap.\n")); - /* Set DFP Low interface delay tap. + /* Set DFP Low interface delay tap. */ /* 3X5.99[3:0] - DFP Low Delay Tap */ ViaCrtcMask(hwp, 0x99, delayTap, 0x0F); xf86DrvMsg(pScrn->scrnIndex, X_INFO, @@ -267,7 +267,7 @@ viaDFPHighSetDelayTap(ScrnInfoPtr pScrn, CARD8 delayTap) DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Entered viaDFPHighSetDelayTap.\n")); - /* Set DFP High interface delay tap. + /* Set DFP High interface delay tap. */ /* 3X5.97[3:0] - DFP High Delay Tap */ ViaCrtcMask(hwp, 0x97, delayTap, 0x0F); xf86DrvMsg(pScrn->scrnIndex, X_INFO, @@ -983,8 +983,6 @@ static int via_lvds_mode_valid(xf86OutputPtr output, DisplayModePtr pMode) { ScrnInfoPtr pScrn = output->scrn; - VIAPtr pVia = VIAPTR(pScrn); - ViaPanelInfoPtr Panel = output->driver_private; if (Panel->NativeWidth < pMode->HDisplay || @@ -1291,7 +1289,6 @@ via_lvds_init(ScrnInfoPtr pScrn) ViaPanelInfoPtr Panel = (ViaPanelInfoPtr) xnfcalloc(sizeof(ViaPanelInfoRec), 1); OptionInfoPtr Options = xnfalloc(sizeof(ViaPanelOptions)); MessageType from = X_DEFAULT; - const char *s = NULL; VIAPtr pVia = VIAPTR(pScrn); xf86OutputPtr output = NULL; vgaHWPtr hwp = VGAHWPTR(pScrn); commit d6ea17c6a701c31cdb263a595ec9e09c9e59a21d Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Aug 24 15:40:59 2016 -0700 Removed the last known compilation warnings from via_display.c. Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_display.c b/src/via_display.c index 0d1a8de..eac9e64 100644 --- a/src/via_display.c +++ b/src/via_display.c @@ -3046,7 +3046,6 @@ iga1_crtc_gamma_set(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue, ScrnInfoPtr pScrn = crtc->scrn; vgaHWPtr hwp = VGAHWPTR(pScrn); VIAPtr pVia = VIAPTR(pScrn); - int SR1A, SR1B, CR67, CR6A; LOCO colors[size]; int i; @@ -3071,12 +3070,6 @@ iga1_crtc_gamma_set(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue, VIALoadRgbLut(pScrn, 0, size, colors); } else { - - SR1A = hwp->readSeq(hwp, 0x1A); - SR1B = hwp->readSeq(hwp, 0x1B); - CR67 = hwp->readCrtc(hwp, 0x67); - CR6A = hwp->readCrtc(hwp, 0x6A); - for (i = 0; i < size; i++) { hwp->writeDacWriteAddr(hwp, i); hwp->writeDacData(hwp, colors[i].red); commit 95f23d34819debb6beb008ce4e67af752614450c Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Aug 24 15:18:10 2016 -0700 Removed most compilation warnings inside via_display.c A few more remain. Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_display.c b/src/via_display.c index 4a25cbf..0d1a8de 100644 --- a/src/via_display.c +++ b/src/via_display.c @@ -2832,8 +2832,6 @@ static void iga1_crtc_dpms(xf86CrtcPtr crtc, int mode) { ScrnInfoPtr pScrn = crtc->scrn; - VIAPtr pVia = VIAPTR(pScrn); - VIABIOSInfoPtr pBIOSInfo = pVia->pBIOSInfo; DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Entered iga1_crtc_dpms.\n")); @@ -2871,7 +2869,6 @@ iga1_crtc_save(xf86CrtcPtr crtc) { ScrnInfoPtr pScrn = crtc->scrn; vgaHWPtr hwp = VGAHWPTR(pScrn); - VIAPtr pVia = VIAPTR(pScrn); DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Entered iga1_crtc_save.\n")); @@ -2891,8 +2888,6 @@ iga1_crtc_restore(xf86CrtcPtr crtc) { ScrnInfoPtr pScrn = crtc->scrn; vgaHWPtr hwp = VGAHWPTR(pScrn); - VIAPtr pVia = VIAPTR(pScrn); - CARD8 tmp; DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Entered iga1_crtc_restore.\n")); @@ -2972,7 +2967,6 @@ static void iga1_crtc_set_origin(xf86CrtcPtr crtc, int x, int y) { ScrnInfoPtr pScrn = crtc->scrn; - VIAPtr pVia = VIAPTR(pScrn); DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Entered iga1_crtc_set_origin.\n")); @@ -3305,8 +3299,6 @@ static void iga2_crtc_dpms(xf86CrtcPtr crtc, int mode) { ScrnInfoPtr pScrn = crtc->scrn; - VIAPtr pVia = VIAPTR(pScrn); - VIABIOSInfoPtr pBIOSInfo = pVia->pBIOSInfo; DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Entered iga2_crtc_dpms.\n")); @@ -3337,8 +3329,6 @@ static void iga2_crtc_save(xf86CrtcPtr crtc) { ScrnInfoPtr pScrn = crtc->scrn; - vgaHWPtr hwp = VGAHWPTR(pScrn); - VIAPtr pVia = VIAPTR(pScrn); DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Entered iga2_crtc_save.\n")); @@ -3353,9 +3343,6 @@ static void iga2_crtc_restore(xf86CrtcPtr crtc) { ScrnInfoPtr pScrn = crtc->scrn; - vgaHWPtr hwp = VGAHWPTR(pScrn); - VIAPtr pVia = VIAPTR(pScrn); - CARD8 tmp; DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Entered iga2_crtc_restore.\n")); @@ -3422,7 +3409,6 @@ static void iga2_crtc_set_origin(xf86CrtcPtr crtc, int x, int y) { ScrnInfoPtr pScrn = crtc->scrn; - VIAPtr pVia = VIAPTR(pScrn); DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Entered iga2_crtc_set_origin.\n")); commit 490bb555517cb045a126a4b1eab7d29ac61cdf88 Author: Kevin Brace <kevinbr...@gmx.com> Date: Tue Aug 23 16:51:57 2016 -0700 Set LVDS2 output format from via_lvds_mode_set Rather than setting LVDS2 output format from viaSetLVDSOutput function, it will now be set from via_lvds_mode_set callback function. Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_lvds.c b/src/via_lvds.c index 3914060..ed8f463 100644 --- a/src/via_lvds.c +++ b/src/via_lvds.c @@ -902,9 +902,6 @@ viaSetLVDSOutput(ScrnInfoPtr pScrn) /* Do not power down LVDS Channel 2. */ /* For now, use OPENLDI mode for LVDS Channel 2. */ ViaCrtcMask(hwp, 0xD2, 0x01, 0x41); - - /* Sequential mode for LVDS Channel 2 output format. */ - ViaCrtcMask(hwp, 0xD4, 0x80, 0x80); break; } @@ -1084,6 +1081,9 @@ via_lvds_mode_set(xf86OutputPtr output, DisplayModePtr mode, /* Set LVDS2 output color dithering. */ viaLVDS2SetDithering(pScrn, Panel->useDithering ? TRUE : FALSE); + + /* Set LVDS2 output format to sequential mode. */ + viaLVDS2SetOutputFormat(pScrn, 0x01); break; default: break; commit 941098ae9afae311a5ecc1ed589636ce9de03657 Author: Kevin Brace <kevinbr...@gmx.com> Date: Tue Aug 23 16:20:01 2016 -0700 Added viaLVDS2SetOutputFormat viaLVDS2SetOutputFormat function sets output format of LVDS2 (LVDS Channel 2) integrated LVDS transmitter to rotation or sequential mode. This function is located inside via_lvds.c. Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_lvds.c b/src/via_lvds.c index 4286641..3914060 100644 --- a/src/via_lvds.c +++ b/src/via_lvds.c @@ -304,6 +304,31 @@ viaLVDS2SetDithering(ScrnInfoPtr pScrn, CARD8 ditheringStatus) "Exiting viaLVDS2SetDithering.\n")); } +/* + * Sets output format of LVDS2 to rotation or sequential mode. + */ +static void +viaLVDS2SetOutputFormat(ScrnInfoPtr pScrn, CARD8 outputFormat) +{ + vgaHWPtr hwp = VGAHWPTR(pScrn); + + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Entered viaLVDS2SetOutputFormat.\n")); + + /* Set LVDS2 output format. */ + /* 3X5.D4[7] - LVDS Channel 2 Output Format + * 0: Rotation + * 1: Sequential */ + ViaCrtcMask(hwp, 0xD4, outputFormat ? 0x80 : 0x00, 0x80); + + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "LVDS2 Output Format: %s\n", + outputFormat ? "Sequential" : "Rotation"); + + DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Exiting viaLVDS2SetOutputFormat.\n")); +} + static void ViaLVDSSoftwarePowerFirstSequence(ScrnInfoPtr pScrn, Bool on) { commit 79860b7e95218dbfe19bdc6634042d4d4809b999 Author: Kevin Brace <kevinbr...@gmx.com> Date: Tue Aug 23 11:58:45 2016 -0700 Reorganizing via_lvds.c Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/src/via_lvds.c b/src/via_lvds.c index 3966a64..4286641 100644 --- a/src/via_lvds.c +++ b/src/via_lvds.c @@ -491,26 +491,6 @@ ViaLVDSPower(ScrnInfoPtr pScrn, Bool Power_On) } static void -via_lvds_create_resources(xf86OutputPtr output) -{ -} - -#ifdef RANDR_12_INTERFACE -static Bool -via_lvds_set_property(xf86OutputPtr output, Atom property, - RRPropertyValuePtr value) -{ - return FALSE; -} - -static Bool -via_lvds_get_property(xf86OutputPtr output, Atom property) -{ - return FALSE; -} -#endif - -static void ViaLCDPowerSequence(vgaHWPtr hwp, VIALCDPowerSeqRec Sequence) { int i; @@ -574,54 +554,6 @@ ViaLCDPower(xf86OutputPtr output, Bool Power_On) "Exiting ViaLCDPower.\n")); } -static void -via_lvds_dpms(xf86OutputPtr output, int mode) -{ - ScrnInfoPtr pScrn = output->scrn; - VIAPtr pVia = VIAPTR(pScrn); - - switch (mode) { - case DPMSModeOn: - switch (pVia->Chipset) { - case VIA_P4M900: - case VIA_CX700: - case VIA_VX800: - case VIA_VX855: - case VIA_VX900: - ViaLVDSPower(pScrn, TRUE); - break; - } - ViaLCDPower(output, TRUE); - break; - - case DPMSModeStandby: - case DPMSModeSuspend: - case DPMSModeOff: - switch (pVia->Chipset) { - case VIA_P4M900: - case VIA_CX700: - case VIA_VX800: - case VIA_VX855: - case VIA_VX900: - ViaLVDSPower(pScrn, FALSE); - break; - } - ViaLCDPower(output, FALSE); - break; - } -} - -static void -via_lvds_save(xf86OutputPtr output) -{ -} - -static void -via_lvds_restore(xf86OutputPtr output) -{ - ViaLCDPower(output, TRUE); -} - /* * Try to interpret EDID ourselves. */ @@ -795,28 +727,6 @@ viaLVDSGetFPInfoFromScratchPad(xf86OutputPtr output) "Exiting viaLVDSGetFPInfoFromScratchPad.\n")); } -static int -via_lvds_mode_valid(xf86OutputPtr output, DisplayModePtr pMode) -{ - ScrnInfoPtr pScrn = output->scrn; - VIAPtr pVia = VIAPTR(pScrn); - - ViaPanelInfoPtr Panel = output->driver_private; - - if (Panel->NativeWidth < pMode->HDisplay || - Panel->NativeHeight < pMode->VDisplay) - return MODE_PANEL; - - if (!Panel->Scale && Panel->NativeHeight != pMode->VDisplay && - Panel->NativeWidth != pMode->HDisplay) - return MODE_PANEL; - - if (!ViaModeDotClockTranslate(pScrn, pMode)) - return MODE_NOCLOCK; - - return MODE_OK; -} - static void ViaPanelCenterMode(DisplayModePtr mode, DisplayModePtr adjusted_mode) { @@ -848,35 +758,6 @@ ViaPanelCenterMode(DisplayModePtr mode, DisplayModePtr adjusted_mode) adjusted_mode->CrtcVSyncEnd = adjusted_mode->VSyncEnd; } -static Bool -via_lvds_mode_fixup(xf86OutputPtr output, DisplayModePtr mode, - DisplayModePtr adjusted_mode) -{ - ViaPanelInfoPtr Panel = output->driver_private; - - xf86SetModeCrtc(adjusted_mode, 0); - if (!Panel->Center && (mode->HDisplay < Panel->NativeWidth || - mode->VDisplay < Panel->NativeHeight)) { - Panel->Scale = TRUE; - } else { - Panel->Scale = FALSE; - ViaPanelCenterMode(mode, adjusted_mode); - } - return TRUE; -} - -static void -via_lvds_prepare(xf86OutputPtr output) -{ - via_lvds_dpms(output, DPMSModeOff); -} - -static void -via_lvds_commit(xf86OutputPtr output) -{ - via_lvds_dpms(output, DPMSModeOn); -} - static void ViaPanelScale(ScrnInfoPtr pScrn, int resWidth, int resHeight, int panelWidth, int panelHeight) @@ -1006,9 +887,130 @@ viaSetLVDSOutput(ScrnInfoPtr pScrn) "Exiting viaSetLVDSOutput.\n")); } +static int +ViaPanelLookUpModeIndex(int width, int height) +{ + int i, index = VIA_PANEL_INVALID; + int length = sizeof(ViaPanelNativeModes) / sizeof(ViaPanelModeRec); + + + for (i = 0; i < length; i++) { + if (ViaPanelNativeModes[i].Width == width + && ViaPanelNativeModes[i].Height == height) { + index = i; + break; + } + } + return index; +} + +static void +via_lvds_create_resources(xf86OutputPtr output) +{ +} + +static void +via_lvds_dpms(xf86OutputPtr output, int mode) +{ + ScrnInfoPtr pScrn = output->scrn; + VIAPtr pVia = VIAPTR(pScrn); + + switch (mode) { + case DPMSModeOn: + switch (pVia->Chipset) { + case VIA_P4M900: + case VIA_CX700: + case VIA_VX800: + case VIA_VX855: + case VIA_VX900: + ViaLVDSPower(pScrn, TRUE); + break; + } + ViaLCDPower(output, TRUE); + break; + + case DPMSModeStandby: + case DPMSModeSuspend: + case DPMSModeOff: + switch (pVia->Chipset) { + case VIA_P4M900: + case VIA_CX700: + case VIA_VX800: + case VIA_VX855: + case VIA_VX900: + ViaLVDSPower(pScrn, FALSE); + break; + } + ViaLCDPower(output, FALSE); + break; + } +} + +static void +via_lvds_save(xf86OutputPtr output) +{ +} + +static void +via_lvds_restore(xf86OutputPtr output) +{ + ViaLCDPower(output, TRUE); +} + +static int +via_lvds_mode_valid(xf86OutputPtr output, DisplayModePtr pMode) +{ + ScrnInfoPtr pScrn = output->scrn; + VIAPtr pVia = VIAPTR(pScrn); + + ViaPanelInfoPtr Panel = output->driver_private; + + if (Panel->NativeWidth < pMode->HDisplay || + Panel->NativeHeight < pMode->VDisplay) + return MODE_PANEL; + + if (!Panel->Scale && Panel->NativeHeight != pMode->VDisplay && + Panel->NativeWidth != pMode->HDisplay) + return MODE_PANEL; + + if (!ViaModeDotClockTranslate(pScrn, pMode)) + return MODE_NOCLOCK; + + return MODE_OK; +} + +static Bool +via_lvds_mode_fixup(xf86OutputPtr output, DisplayModePtr mode, + DisplayModePtr adjusted_mode) +{ + ViaPanelInfoPtr Panel = output->driver_private; + + xf86SetModeCrtc(adjusted_mode, 0); + if (!Panel->Center && (mode->HDisplay < Panel->NativeWidth || + mode->VDisplay < Panel->NativeHeight)) { + Panel->Scale = TRUE; + } else { + Panel->Scale = FALSE; + ViaPanelCenterMode(mode, adjusted_mode); + } + return TRUE; +} + +static void +via_lvds_prepare(xf86OutputPtr output) +{ + via_lvds_dpms(output, DPMSModeOff); +} + +static void +via_lvds_commit(xf86OutputPtr output) +{ + via_lvds_dpms(output, DPMSModeOn); +} + static void via_lvds_mode_set(xf86OutputPtr output, DisplayModePtr mode, - DisplayModePtr adjusted_mode) + DisplayModePtr adjusted_mode) { ViaPanelInfoPtr Panel = output->driver_private; ScrnInfoPtr pScrn = output->scrn; @@ -1064,23 +1066,6 @@ via_lvds_mode_set(xf86OutputPtr output, DisplayModePtr mode, } } -static int -ViaPanelLookUpModeIndex(int width, int height) -{ - int i, index = VIA_PANEL_INVALID; - int length = sizeof(ViaPanelNativeModes) / sizeof(ViaPanelModeRec); - - - for (i = 0; i < length; i++) { - if (ViaPanelNativeModes[i].Width == width - && ViaPanelNativeModes[i].Height == height) { - index = i; - break; - } - } - return index; -} - static xf86OutputStatus via_lvds_detect(xf86OutputPtr output) { @@ -1230,6 +1215,21 @@ via_lvds_get_modes(xf86OutputPtr output) return pDisplay_Mode; } +#ifdef RANDR_12_INTERFACE +static Bool +via_lvds_set_property(xf86OutputPtr output, Atom property, + RRPropertyValuePtr value) +{ + return FALSE; +} + +static Bool +via_lvds_get_property(xf86OutputPtr output, Atom property) +{ + return FALSE; +} +#endif + static void via_lvds_destroy(xf86OutputPtr output) { @@ -1240,12 +1240,6 @@ via_lvds_destroy(xf86OutputPtr output) static const xf86OutputFuncsRec via_lvds_funcs = { .create_resources = via_lvds_create_resources, -#ifdef RANDR_12_INTERFACE - .set_property = via_lvds_set_property, -#endif -#ifdef RANDR_13_INTERFACE - .get_property = via_lvds_get_property, -#endif .dpms = via_lvds_dpms, .save = via_lvds_save, .restore = via_lvds_restore, @@ -1256,7 +1250,13 @@ static const xf86OutputFuncsRec via_lvds_funcs = { .mode_set = via_lvds_mode_set, .detect = via_lvds_detect, .get_modes = via_lvds_get_modes, - .destroy = via_lvds_destroy, +#ifdef RANDR_12_INTERFACE + .set_property = via_lvds_set_property, +#endif +#ifdef RANDR_13_INTERFACE + .get_property = via_lvds_get_property, +#endif + .destroy = via_lvds_destroy }; _______________________________________________ Openchrome-devel mailing list Openchrome-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/openchrome-devel