Re: [Xpert]Re: Screen blanking/DPMS with Sun Ultra1
(More comments below -- FEM)
>
> On Mon, 3 Dec 2001, Moritz Bunkus wrote:
>
> > Hello everyone.
> >
> > I have a lot of Sun Ultra1 boxes with Sun monitors. Until recently they
> > ran under Solaris. With this setup they monitors went into some sort of
> > power saving mode after some time of inactivity.
> >
> > All those boxes now run Woody with XFree 4.1.0.1. Unfortunately
> > either the graphics hardware (the suncg6 driver is used) or the monitor
> > don't support DPMS (option "DPMS" is given in the monitor section): the
> > logfile says
> > (WW) SUNCG6(0): Option "DPMS" is not used
> > (WW) SUNCG6(0): Option "StandByTime" is not used
> > (WW) SUNCG6(0): Option "SuspendTime" is not used
> > (WW) SUNCG6(0): Option "OffTime" is not used
> >
> > Now the boxes all have their monitors on all the time which is
> > definitely not what I want. Is there a way to use power saving with
> > this setup? Or at least some sort of screen blanking and/or a
> > screensaver?
> >
Moritz,
I don't know if you ever got this resolved or not, nor do I know
if you have been following the follow-on discussions or not (helpful
to me, not so directly to the CG6 case.)
In any case, here is an idea which I have no way of testing, but
which parallels David Miller's suggestion regarding the Creator graphics
card.
The kernel code seems to blank/unblank a display device connected to
a CG6 frame buffer seems to use the mask CG6_THC_MISC_VIDEO in the module
[cgsixfb.c at cg6_blank] thus:
tmp = sbus_readl(&fb->s.cg6.thc->thc_misc);
tmp &= ~CG6_THC_MISC_VIDEO;
wbus_writel(tmp, &fb->s.cg6.thc->thc_misc);
This suggests that changing the XF86 cg6 driver module ---
cg6_driver.c --- as follows should get you screen blanking at least:
The current CG6SaveScreen procedure is an empty procedure returning
TRUE. Something along the following lines might do what you want--
static Bool
CG6SaveScreen(ScreenPtr pScreen, int mode) {
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; /* Like elsewhere*/
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_VIDEO;
break;
case SCREEN_SAVER_OFF:
case SCREEN_SAVER_FORCER:
tmp |= CG6_THC_MISC_VIDEO;
break;
default: return FALSE;
}
pCg6 -> thc -> thc_misc = tmp;
return TRUE;
}
If you try that and it works, there are some other THC_MISC masks
which might get the display device to turn off. As I mentioned a couple
weeks ago, something along these lines will turn it off: Solaris
knows how to do it.
Sorry to be so long-winded. Hope this is of some use to you (or that
someone who actually knows will correct it into something useful).
Regards,
Ferris
--
Ferris McCormick (P44646, MI) <fmccor@inforead.com>
Phone: (703) 392-0303
Fax: (703) 392-0401
Reply to: