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

Reply via email to