From 33604187674ec78b2c0bf7f67af250acc80cf23a Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 24 Mar 2017 12:30:58 -0400 Subject: [PATCH] dpms: Consolidate a bunch of stuff into Xext/dpms.c Most of this is a legacy of the old "extmod" design where you could load _some_ extensions dynamically but only if the server had been built with support for them in the first place. Note that since we now only initialize the DPMS extension if at least one screen supports it, we no longer need DPMSCapableFlag: if it would be false, we would never read its value. Signed-off-by: Adam Jackson Reviewed-by: Eric Anholt --- Xext/dpms.c | 28 +++++++++++++++++++--------- Xext/dpmsproc.h | 11 +++++++++-- Xext/saver.c | 1 + dix/globals.c | 10 ---------- dix/main.c | 13 +------------ hw/xfree86/common/xf86Config.c | 4 +++- include/globals.h | 10 ---------- os/utils.c | 1 + 8 files changed, 34 insertions(+), 44 deletions(-) diff --git a/Xext/dpms.c b/Xext/dpms.c index abc67ef1f..efa715428 100644 --- a/Xext/dpms.c +++ b/Xext/dpms.c @@ -43,6 +43,13 @@ Equipment Corporation. #include "scrnintstr.h" #include "windowstr.h" +CARD16 DPMSPowerLevel = 0; +Bool DPMSDisabledSwitch = FALSE; +CARD32 DPMSStandbyTime; +CARD32 DPMSSuspendTime; +CARD32 DPMSOffTime; +Bool DPMSEnabled; + Bool DPMSSupported(void) { @@ -136,7 +143,7 @@ ProcDPMSCapable(ClientPtr client) .type = X_Reply, .sequenceNumber = client->sequence, .length = 0, - .capable = DPMSCapableFlag + .capable = TRUE }; REQUEST_SIZE_MATCH(xDPMSCapableReq); @@ -204,11 +211,9 @@ ProcDPMSEnable(ClientPtr client) REQUEST_SIZE_MATCH(xDPMSEnableReq); - if (DPMSCapableFlag) { - DPMSEnabled = TRUE; - if (!was_enabled) - SetScreenSaverTimer(); - } + DPMSEnabled = TRUE; + if (!was_enabled) + SetScreenSaverTimer(); return Success; } @@ -427,7 +432,12 @@ DPMSCloseDownExtension(ExtensionEntry *e) void DPMSExtensionInit(void) { - AddExtension(DPMSExtensionName, 0, 0, - ProcDPMSDispatch, SProcDPMSDispatch, - DPMSCloseDownExtension, StandardMinorOpcode); + DPMSStandbyTime = DPMSSuspendTime = DPMSOffTime = ScreenSaverTime; + DPMSPowerLevel = DPMSModeOn; + DPMSEnabled = DPMSSupported(); + + if (DPMSEnabled) + AddExtension(DPMSExtensionName, 0, 0, + ProcDPMSDispatch, SProcDPMSDispatch, + DPMSCloseDownExtension, StandardMinorOpcode); } diff --git a/Xext/dpmsproc.h b/Xext/dpmsproc.h index 82dccbd67..1e24f1f55 100644 --- a/Xext/dpmsproc.h +++ b/Xext/dpmsproc.h @@ -9,7 +9,14 @@ #include "dixstruct.h" -int _X_EXPORT DPMSSet(ClientPtr client, int level); -Bool _X_EXPORT DPMSSupported(void); +extern int DPMSSet(ClientPtr client, int level); +extern Bool DPMSSupported(void); + +extern CARD32 DPMSStandbyTime; +extern CARD32 DPMSSuspendTime; +extern CARD32 DPMSOffTime; +extern CARD16 DPMSPowerLevel; +extern Bool DPMSEnabled; +extern Bool DPMSDisabledSwitch; #endif diff --git a/Xext/saver.c b/Xext/saver.c index bf3a23d9a..09497610a 100644 --- a/Xext/saver.c +++ b/Xext/saver.c @@ -53,6 +53,7 @@ in this Software without prior written authorization from the X Consortium. #endif #ifdef DPMSExtension #include +#include "dpmsproc.h" #endif #include "protocol-versions.h" diff --git a/dix/globals.c b/dix/globals.c index f36a938f7..acd5c4412 100644 --- a/dix/globals.c +++ b/dix/globals.c @@ -93,16 +93,6 @@ CARD32 ScreenSaverInterval; int ScreenSaverBlanking; int ScreenSaverAllowExposures; -#ifdef DPMSExtension -CARD16 DPMSPowerLevel = 0; -Bool DPMSDisabledSwitch = FALSE; -Bool DPMSCapableFlag = FALSE; -CARD32 DPMSStandbyTime; -CARD32 DPMSSuspendTime; -CARD32 DPMSOffTime; -Bool DPMSEnabled; -#endif - CARD32 defaultScreenSaverTime = DEFAULT_SCREEN_SAVER_TIME; CARD32 defaultScreenSaverInterval = DEFAULT_SCREEN_SAVER_INTERVAL; int defaultScreenSaverBlanking = DEFAULT_SCREEN_SAVER_BLANKING; diff --git a/dix/main.c b/dix/main.c index 4947062a5..f98643aa5 100644 --- a/dix/main.c +++ b/dix/main.c @@ -148,11 +148,7 @@ dix_main(int argc, char *argv[], char *envp[]) ScreenSaverInterval = defaultScreenSaverInterval; ScreenSaverBlanking = defaultScreenSaverBlanking; ScreenSaverAllowExposures = defaultScreenSaverAllowExposures; -#ifdef DPMSExtension - DPMSStandbyTime = DPMSSuspendTime = DPMSOffTime = ScreenSaverTime; - DPMSEnabled = TRUE; - DPMSPowerLevel = 0; -#endif + InitBlockAndWakeupHandlers(); /* Perform any operating system dependent initializations you'd like */ OsInit(); @@ -239,13 +235,6 @@ dix_main(int argc, char *argv[], char *envp[]) defaultCursorFont); } -#ifdef DPMSExtension - /* check all screens, looking for DPMS Capabilities */ - DPMSCapableFlag = DPMSSupported(); - if (!DPMSCapableFlag) - DPMSEnabled = FALSE; -#endif - #ifdef PANORAMIX /* * Consolidate window and colourmap information for each screen diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c index 49b898da1..c2b522a18 100644 --- a/hw/xfree86/common/xf86Config.c +++ b/hw/xfree86/common/xf86Config.c @@ -64,8 +64,10 @@ #include "loaderProcs.h" #include "xkbsrv.h" - #include "picture.h" +#ifdef DPMSExtension +#include "dpmsproc.h" +#endif /* * These paths define the way the config file search is done. The escape diff --git a/include/globals.h b/include/globals.h index 693bdf4f2..44314f03f 100644 --- a/include/globals.h +++ b/include/globals.h @@ -26,16 +26,6 @@ extern _X_EXPORT char *SeatId; extern _X_EXPORT char *ConnectionInfo; extern _X_EXPORT sig_atomic_t inSignalContext; -#ifdef DPMSExtension -extern _X_EXPORT CARD32 DPMSStandbyTime; -extern _X_EXPORT CARD32 DPMSSuspendTime; -extern _X_EXPORT CARD32 DPMSOffTime; -extern _X_EXPORT CARD16 DPMSPowerLevel; -extern _X_EXPORT Bool DPMSEnabled; -extern _X_EXPORT Bool DPMSDisabledSwitch; -extern _X_EXPORT Bool DPMSCapableFlag; -#endif - #ifdef PANORAMIX extern _X_EXPORT Bool PanoramiXExtensionDisabledHack; #endif diff --git a/os/utils.c b/os/utils.c index ac55cd79f..3f8bac5c6 100644 --- a/os/utils.c +++ b/os/utils.c @@ -135,6 +135,7 @@ Bool noDamageExtension = FALSE; Bool noDbeExtension = FALSE; #endif #ifdef DPMSExtension +#include "dpmsproc.h" Bool noDPMSExtension = FALSE; #endif #ifdef GLXEXT