Bug 3369

Summary: RADEON doesn't unblank DPMS on shutdown
Product: xorg Reporter: Egbert Eich <eich>
Component: Driver/RadeonAssignee: Egbert Eich <eich>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: high CC: alexdeucher, esigra
Version: git   
Hardware: All   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Turn off DPMS when shutting down/ make register 'masking' symmetric. eich: 6.8-branch?

Description Egbert Eich 2005-05-23 02:36:38 UTC
The Radeon chipset exhibits a strange behavior on shutdown: 
- When the DPMS registers were programmed such that the screen was blanked at 
  startup the screen remains blank after the server is shut down - no matter what   
  the state was while X was running.
- When the text console was not blank prior to the start of X but X was in a DPMS  
  power save mode when it was shut down the screen remains blank in console mode.

This exhibits two problems:
- Mode pragramming seems to be 'asymetric'
- DPMS powersave state isn't disabled during shutdown.

The patch that is going to be attached does two things:
1. It fixes the asymetry in register programming.
2. It disables any power save state prior to server shutdown regardless of the
   text console state.
The second step may be debateable as we don't restore DPMS to the state it was
in before X was started, on the other hand a visible text console seems to be
what most people want.
Comment 1 Egbert Eich 2005-05-23 02:38:44 UTC
Created attachment 2745 [details] [review]
Turn off DPMS when shutting down/ make register 'masking' symmetric.
Comment 2 Egbert Eich 2005-05-23 02:50:47 UTC
2005-05-23  Egbert Eich  <eich-at-freedesktop-dot-org>

        * programs/Xserver/hw/xfree86/drivers/ati/r128_reg.h:
        * programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:
        (RADEONCloseScreen), (RADEONDisplayPowerManagementSet):
        * programs/Xserver/hw/xfree86/drivers/ati/radeon_macros.h:
        Explicitely disable DPMS power states during close screen.
        Fix macro that takes a value and a mask of bits to modify
        to be behave evquvalently if the bits that should remain unchanged
        are set or unset in the value (Bugzilla #3369).

Committed.
Comment 3 Alex Deucher 2005-06-05 14:24:15 UTC
the macro change seems to break dualhead for one user.  See bug 2273

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.