The message from Moritz Bunkus says about everything. He sent me the attached enhancement to the XF86/suncg6 driver to test on a system other than his, and on a SparcSataion 5 (SuSE 7.0, kernel=2.2.18) it does the same thing as it does for him on an Ultra1. There is no change in the XF4.2.0 version of this driver (that I can see) from 4.1.99, and suncg6 with this change builds fine in that environment.
(What he does is implement the blanking function so that it goes immediately into Standby mode, which (if I recall correctly) is what Solaris did, as he says. For me, at least, I can only second his statement and say this is what I want it to do, and in any case it is better that what it does as distributed, which is nothing.) Regards, Ferris -- Ferris McCormick (P44646, MI) <[EMAIL PROTECTED]> Phone: (703) 392-0303 Fax: (703) 392-0401 ---------- Forwarded message ---------- Date: Tue, 15 Jan 2002 13:58:34 +0100 From: Moritz Bunkus <[EMAIL PROTECTED]> To: Ferris McCormick <[EMAIL PROTECTED]> Subject: Re: [Xpert]Re: Screen blanking/DPMS with Sun Ultra1 Hello Ferris, I finally got around to implementing the CG6 screen blanking function as you suggested. It works perfectly - thanks a lot. I played around a bit with the various CG6_THC_MISC_* bits and found out that unsetting CG6_THC_MISC_SYNC_ENABLE really turns the sync off and the monitor goes into suspend mode (screen is turned off, the standby LED is orange). So that's all I need (and that is what Solaris does, I think). I've attached a patch for the XFree sources. Perhaps you might want to send it to the XFree people so they can include it in the official source distribution. You seem to have a deeper understanding of XFree/video hardware issues, that's why I suggest that you send that patch. Thanks again for your help, it is greatly appreciated. -- ==> Ciao, Mosu
--- xfree86/xc/programs/Xserver/hw/xfree86/drivers/suncg6/cg6_driver.c Wed May 16 08:48:11 2001 +++ xfree86-cg6blank/xc/programs/Xserver/hw/xfree86/drivers/suncg6/cg6_driver.c Tue +Jan 15 13:43:55 2002 @@ -662,7 +662,28 @@ unblank it when unblank is TRUE -- it doesn't actually seem to be used for much though */ { - return TRUE; + ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + Cg6Ptr pCg6; + unsigned int tmp; + + pCg6 = GET_CG6_FROM_SCRN(pScrn); + tmp = pCg6->thc->thc_misc; + switch(mode) + { + case SCREEN_SAVER_ON: + case SCREEN_SAVER_CYCLE: + tmp &= ~CG6_THC_MISC_SYNC_ENAB; + break; + case SCREEN_SAVER_OFF: + case SCREEN_SAVER_FORCER: + tmp |= CG6_THC_MISC_SYNC_ENAB; + break; + default: + return FALSE; + } + pCg6->thc->thc_misc = tmp; + + return TRUE; } /*