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;
 }
 
 /*

Reply via email to