I-Appliance BBS
The Official Source for Internet Appliance Upgrades and Mods

Click Here!
BBS Main List | Sign In | Sign Up | Search | Help | Linux-Hacker.netReply to Thread | Printer |

Home / I-Opener Areas / I-Opener Technical Stuff
How I finally got backlight to blank in RH 7

New MessageHow I finally got backlight to blank in RH 7 (modified 0 times) spikeorama
Profile
Finally, after many months of trying to get the backlight to blank, I've finally got it working.

There are two possible ways to get the backlight to go out: using the BIOS apm or using DPMS. Maybe they are related at some level in the BIOS but I could never find the common link.

Here's the BIOS settings I used:
PM Control by APM: No
Video Off Method: DPMS
Video Off After: Doze
Doze Mode: 10 Min
Suspend Mode: Disable
HDD Power Down: Disable

PM Events: All OFF, NONE, or Disabled

Primary INTR: ON
IRQ12 Primary
All others Disabled

I'm just letting the BIOS turn the backlight after 10 minutes. I was having trouble to get it to turn back on because I had the Primary INTR set to OFF. After looking at the VIA manual, it dawned on me that even though the keyboard was always set to reset the PM timer, the Primary INTR had to be set to ON to get that behavior.

So, after 10 minutes, the IO goes into Doze mode and turns off the backlight. Hitting the keyboard or the mouse brings it back on. This works great and doesn't stop any activity on the IO, unlike Suspend or Standby modes, which kill network activity.

I spent quite a bit of time trying to get DPMS working. When running as root, I got "xset dpms force off" to blank the screen, but I never got the backlight to turn off. When running as a normal user, "xset dpms ..." had no effect. I must have tried a million BIOS, kernel settings, etc. trying to get it to work. I even added:
Option "power_saver"
to the Devices section of XF86Config but no luck. If anybody has a method to get the backlight to blank using DPMS, I would like to hear how you did it.

Among other things, I found out that having both ACPI and APM enabled in the kernel disabled APM and prevented the IO from powering down automatically at shutdown.

I found some good BIOS help at: http://www.phoenix.com/pcuser/BIOS/setup_index.htm where it explains a lot of the BIOS settings in detail.

02-10-2001 21:35:47

New MessageRE:How I finally got backlight to blank in RH 7 (modified 0 times) oniq
Profile | Email
Those options work here, running FreeBSD 4.4. Thank you so much I've been looking for this for weeks! Now I can have my box up always and not see a glow at night :D
05-11-2002 15:02:53

New MessageRE:How I finally got backlight to blank in RH 7 (modified 0 times) spikeorama
Profile
Well, . . . it was working fine for me until I upgraded to RH 7.3 on the server. Now, when it goes into Doze mode and turns of the backlight, I can't get it to come back on. The computer is still "alive" because I can telnet into it remotely and such but I can't make the backlight come back on.

Does anybody have backlight blanking working properly with RH 7.3 and/or XFree86-4.2.0? Either with DPMS or APM in the BIOS?

06-08-2002 19:08:02

New MessageRE:How I finally got backlight to blank in RH 7 (modified 0 times) zonyl
Profile
Using the configuration mentioned above, mine does the same thing.. I find that switching away from the VC that X is on to like VC1 brings the backlight back on again.. It is a major PIA but I didnt have a whole lot of time to look farther into it.
06-10-2002 09:56:00

New MessageRE:How I finally got backlight to blank in RH 7 (modified 0 times) spikeorama
Profile
I got a patch to try from the developer of the Trident driver. I'll try it in the next day or so and report back. It looks like in the released 4.2.0 Trident driver, he's using H+V sync to blank the screen. In the patch, he's trying something else but I haven't looked at the Cyberblade data sheet to see what register he is poking.
06-10-2002 23:54:26

New MessageRE:How I finally got backlight to blank in RH 7 (modified 0 times) spikeorama
Profile
Well, it works! This link shows the patch he suggested:
http://www.xfree86.org/pipermail/newbie/2002-June/016139.html
I had to make one mod to the patch to get it to work. The last line in his patch had to be commented out:
/* OUTB(0x3CF, DPMSCont); */
I think he meant to do that but forgot.

It doesn't seem to matter what the BIOS settings are as long as the Doze Mode is set to Disable. If you have the BIOS controlling the backlight with its doze mode, X still won't turn the backlight back on.

I'm not sure whether he'll put the change back into the official XFree86 trunk or not. I mentioned that other I-Opener users would probably make use of it. Oh, BTW, you have to have DPMS configured in your XFree86Config file for this patch to work. This patch obviously not work when not in X. So, I'm not sure how you would go about getting the screen to blank both with and without X. You could always use the BIOS doze setting but if that worked with XFree86-4.2.0, I wouldn't be here writing this message. With the old 3.3.6 svga driver, the BIOS blanking seems to coexist well with X.

I'm still puzzled as to why the "normal" DPMS hsync and vsync don't work. Does anybody out there know what method the Windows driver is using to turn off the backlight? Does anybody know if there is any circuitry between the Cyberblade and the display? I still can't but think something needs to be done differently with the linux APM kernel settings or apmd daemon.

06-12-2002 19:56:11

New MessageRE:How I finally got backlight to blank in RH 7 (modified 0 times) spikeorama
Profile
One more thing:

The nice thing about using DPMS to turn off the backlight instead of doze mode is that doze mode slows down the CPU somewhat. This explains why my MP3s skip when the screen was blanking using BIOS doze.

I tested this fix with the I-Opener running as a thin client and I can control the DPMS settings as expected from the KDE control panel. Now I just hope the trident developer puts some form of this fix into the source tree.

06-12-2002 20:47:08

New MessageRE:How I finally got backlight to blank in RH 7 (modified 0 times) johan
Profile
So...

Has the patch been included in the release? Do you have a compiled binary you want to share? Or better yet, have you discovered a workaround that doesn't require me to replace the xserver?

08-24-2002 12:39:32

New MessageRE:How I finally got backlight to blank in RH 7 (modified 0 times) spikeorama
Profile
I just checked last night and the patch hasn't been included in the CVS tree. It seems like the I-Opener has some sort of non-standard DPMS support. That's probably why he hasn't included it in the source code.

Send me an email at watzlavick@austin.rr.com if you want the binary. It seems to work with XFree86 4.2.0 but I imagine it would have to rebuilt for each new version of the Xserver.

One word of caution - I recently had to turn off acceleration because I was getting all sorts of junk of the screen. I can't tell much difference in the performance with it on or off but that may be one reason to stick with the 3.3.6 version of the server.

08-26-2002 19:14:23

New MessageRE:How I finally got backlight to blank in RH 7 (modified 0 times) spikeorama
Profile
The xfree86 mailing list archives don't seem to be around anymore so here is the patch I described for xfree86 4.2.0. The patch listed below is how I received it from the trident developer. You still have to comment out the last line as mentioned above or it won't work:
/*OUTB(0x3CF, DPMSCont);*/

Index: trident_driver.c
===================================================================
RCS file: /home/x-cvs/xc/programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c,v
retrieving revision 1.172
diff -u -r1.172 trident_driver.c
--- trident_driver.c 2002/05/28 10:39:39 1.172
+++ trident_driver.c 2002/06/10 13:54:12
@@ -617,7 +617,7 @@
TRIDENTDisplayPowerManagementSet(ScrnInfoPtr pScrn, int PowerManagementMode, int flags)
{
TRIDENTPtr pTrident = TRIDENTPTR(pScrn);
- CARD8 DPMSCont, PMCont, temp;
+ CARD8 DPMSCont, PMCont, temp, temp2;

if (!pScrn->vtSema)
return;
@@ -629,27 +629,53 @@
PMCont = INB(0x83C6) & 0xFC;
OUTB(0x3CE, 0x23);
DPMSCont = INB(0x3CF) & 0xFC;
+
+ /* turn on soft power control for backlight */
+ OUTB(0x3CE, 0x25);
+ temp2 = INB(0x3CF) | 0x08;
+ OUTB(0x3CF, temp2);
+
switch (PowerManagementMode)
{
case DPMSModeOn:
/* Screen: On, HSync: On, VSync: On */
PMCont |= 0x03;
DPMSCont |= 0x00;
+
+ /* enable backlight */
+ OUTB(0x3CE, 0x24);
+ temp2 = INB(0x3CF) | 0x08;
+ OUTB(0x3CF, temp2);
break;
case DPMSModeStandby:
/* Screen: Off, HSync: Off, VSync: On */
PMCont |= 0x02;
DPMSCont |= 0x01;
+ OUTB(0x3CE, 0x24);
+
+ /* disable backlight */
+ temp2 = INB(0x3CF) & 0xF7;
+ OUTB(0x3CF, temp2);
break;
case DPMSModeSuspend:
/* Screen: Off, HSync: On, VSync: Off */
PMCont |= 0x02;
DPMSCont |= 0x02;
+
+ /* disable backlight */
+ OUTB(0x3CE, 0x24);
+ temp2 = INB(0x3CF) & 0xF7;
+ OUTB(0x3CF, temp2);
break;
case DPMSModeOff:
/* Screen: Off, HSync: Off, VSync: Off */
PMCont |= 0x00;
DPMSCont |= 0x03;
+
+ /* disable backlight */
+ OUTB(0x3CE, 0x24);
+ temp2 = INB(0x3CF) & 0xF7;
+ OUTB(0x3CF, temp2);
break;
}
OUTB(0x3CF, DPMSCont);

12-27-2002 22:46:44

Reply to Thread | Printer |
All times are PSTPowered by UltraBoard v1.62



Copyright © 2000, Netmake Inc. All Rights Reserved.
See Terms and Conditions for more information.




i-opener opener laptop notebook computer help drivers dll free windows dos repair fix linux mac macintosh 2000 95 98 nt pc configure hardware software sound video netscape explorer network networking lan wan software cmos fat bios printer card mouse modem ide scsi cd rom controllers scanner tape hard drive cgi scripts source code mp3