Summary: | dpms stops working after disabling and re-enabling it | ||
---|---|---|---|
Product: | xorg | Reporter: | Gilles Hamel <hamelg> |
Component: | Server/General | Assignee: | Xorg Project Team <xorg-team> |
Status: | RESOLVED FIXED | QA Contact: | Xorg Project Team <xorg-team> |
Severity: | normal | ||
Priority: | medium | CC: | alexdeucher, esigra, tiagomatos, yuri |
Version: | 7.3 (2007.09) | ||
Hardware: | x86 (IA32) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Bug Depends on: | |||
Bug Blocks: | 10101 |
Description
Gilles Hamel
2008-01-07 23:26:13 UTC
Bug found ! If the timeout occurs when dpms is disabled, ScreenSaverTimeoutExpire() is called and return nextTimeout=0. When you re-enable dpms, ScreenSaverTimeoutExpire() is no more called and dpms stops working until you force or change settings. To fix that, I have modified ProcDPMSEnable() in Xext/dpms.c. replace : if (DPMSCapableFlag) DPMSEnabled = TRUE; by : if (DPMSCapableFlag) { DPMSEnabled = TRUE; // Reset Timer SetScreenSaverTimer(); } *** Bug 11922 has been marked as a duplicate of this bug. *** Can somebody review this patch and push it if it looks good? Looks ok to me, but I don't really know the server side dpms code at all. I'll apply it if no one has any objections over the next few days. This is the bug that has annoyed me for a long time! making a 7.4 blocker Fixed in master with a slight tweak. We'll only re-arm the timer if we were disabled before entering ProcDPMSEnable(). Thanks! |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.