On Mon, Jun 10, 2002 at 08:12:09 -0500, Watzlavick wrote:
> The I-Opener is really just a dumbed-down laptop. In your experience, does the
> trident driver seem to turn off the backlight via DPMS on other laptops? If
> DPMS properly blanks the screen, can I assume it's basically working even if the
> backlight stays on? I can do some more research and debugging but I'm not sure
> where to begin. I was poking through the Cyberblade i7 Tech Ref Manual and I
> found the section talking about ENPBLT. I can't probe the pins directly because
> it's a BGA part - ideally, I'd look to see whether the driver was turning off
> the ENPBLT signal on the Cyberblade to see if it was a driver problem or if
> there was something in between the Cyberblade and display.
>
> The bios has three options for "video off method": DPMS support, blank screen,
> and V/H SYNC+blank. I've had it set to DPMS but maybe there's another circuit
> getting in the way. I'll try V/H SYNC to see if the display will take that.
> One more question if I may: what is the trident driver trying to do in the
> various DPMS states? That might help me understand the mechanism for backlight
> control on the I-Opener. If you can point me to the proper file, I can look to
> see what is going on.
Get the current CVS, and try this patch.
Alan.
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);
_______________________________________________
Newbie mailing list
[EMAIL PROTECTED]
*** To unsubscribe , or change message options, see:
http://XFree86.Org/mailman/listinfo/newbie