DPMS Broken: ATI Radeon + Flat Panel w/ Digital DVI Connection

"david j. dubinski" <[email protected]> Wed, 1 Jan 2003 16:57:10 -0800 (PST)
Newsgroups gmane.comp.xfree86.expert
Message-ID <[email protected]>
I have a working flat panel that was originally in analog mode with ATI 
All-In-Wonder Radeon.  DPMS was working great.  Upon removing the 
DVI-analog connector and going straight digital, DPMS does not function, 
though in XFree86.log does indicate DPMS extension loaded, card and 
monitor capable of it.  (tried sleep 2; xset dpms force off, etc... so 
fairly certain it was broken)

	Using ver 4.2.99.3 (also had problems w/ 4.2.99.2, 4.2.0, 4.2.1)
	ATI AiW Radeon DVI connection
	Dell 1900FP in digital mode

Tested pre-built binary, and built from source w/o success.

After research, seems others have run into it:
	http://www.spinics.net/lists/xf-xpert/msg08034.html
	http://www.spinics.net/lists/xf-xpert/msg06429.html (proposes fix)

Reading through the second article, and applying the patch (for 4.2.99.2) 
to my 4.2.99.3 source by hand, it does work for my setup.

Are there any plans to include this fix in future builds? Is there a 
maintainer of the radeon_driver.c source that I should contact?

--thanks, david

----------------------------------
Patch by NABEYA Kenichi:  (diff'd against 4.2.99.2)
http://www.spinics.net/lists/xf-xpert/msg06429.html	

*** radeon_driver.c	Wed Oct 16 13:53:15 2002
--- radeon_driver.c.new	Sun Oct 27 01:01:29 2002
***************
*** 5493,5496 ****
--- 5493,5508 ----
  	}
  	break;
      }
+     if (info->DisplayType == MT_DFP) {
+       switch (PowerManagementMode) {
+       case DPMSModeOn:
+ 	OUTREG(RADEON_FP_GEN_CNTL, INREG(RADEON_FP_GEN_CNTL) | 
(RADEON_FP_FPON | RADEON_FP_TMDS_EN));
+ 	break;
+       case DPMSModeStandby:
+       case DPMSModeSuspend:
+       case DPMSModeOff:
+ 	OUTREG(RADEON_FP_GEN_CNTL, INREG(RADEON_FP_GEN_CNTL) & 
~(RADEON_FP_FPON | RADEON_FP_TMDS_EN));
+ 	break;
+       }
+     }
  }
------------------------------------

------------------------------------
snippet of XFree86.log (before applying patch -- after similar)

(II) Loading /usr/X11R6/lib/modules/libvbe.a
(II) Module vbe: vendor="The XFree86 Project"
        compiled for 4.2.99.3, module version = 1.1.0
        ABI class: XFree86 Video Driver, version 0.6
.....
(II) LoadModule: "ddc"
(II) Reloading /usr/X11R6/lib/modules/libddc.a
....
(II) RADEON(0): Year: 2002  Week: 50
(II) RADEON(0): EDID Version: 1.3
(II) RADEON(0): Digital Display Input
(II) RADEON(0): Max H-Image Size [cm]: horiz.: 38  vert.: 31
(II) RADEON(0): Gamma: 2.40
(II) RADEON(0): DPMS capabilities: StandBy Suspend Off; RGB/Color Display
.....

(**) Option "dpms"
(**) RADEON(0): DPMS enabled
-------------------------------------