On Sun, 28 Dec 2003 14:00:13 +0800
Hugang <[EMAIL PROTECTED]> wrote:
> Please CC to me, I'm not in maillist.
>
> I'm use PowerBook G4 with linux, Now I upgrade Xserver to 4.3.99.902.
> Yes, from now NV driver can turn lcd light off, But here has a problem,
> When light turn on again, The light level is change, So I writen this patch, Test
> passed.
>
> Any comment are welcome.
ChangeLog:
* fix bug.
* add pre define in nv_type.h
--
Hu Gang / Steve
RLU# : 204016 [1999] (Registered Linux user)
GPG Public Key: http://soulinfo.com/~hugang/HuGang.asc
Only in xc/programs/Xserver/hw/xfree86/drivers/nv: Makefile
Only in xc/programs/Xserver/hw/xfree86/drivers/nv: nv_cursor.o
Only in xc/programs/Xserver/hw/xfree86/drivers/nv: nv_dac.o
Only in xc/programs/Xserver/hw/xfree86/drivers/nv: nv_dga.o
diff -u xc/programs/Xserver/hw/xfree86/drivers/nv.orig/nv_driver.c
xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c
--- xc/programs/Xserver/hw/xfree86/drivers/nv.orig/nv_driver.c Thu Jan 1 22:13:28
2004
+++ xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c Thu Jan 1 23:21:59
2004
@@ -1192,6 +1192,7 @@
pScrn->videoRam);
pNv->FbMapSize = pScrn->videoRam * 1024;
+ pNv->lcd_on = -1;
/*
* If the driver can do gamma correction, it should call xf86SetGamma()
@@ -1508,8 +1509,20 @@
(pNv->Chipset == 0x10DE0189) ||
(pNv->Chipset == 0x10DE0329))
{
- /* NV17,18,34 Apple iMac, iBook, PowerBook */
- CARD32 tmp;
+ /* NV17,18,34 Apple iMac, iBook, PowerBook
+ * adding light save by Hu Gang 2003.12.28 */
+ CARD32 tmp;
+ if (pNv->lcd_on == on) return;
+ if(on) { /* turn light on */
+ if (pNv->lcd_on == -1) return;
+ pNv->lcd_on = on;
+ pNv->PMC[0x10F0/4] = pNv->lcd_10f0;
+ pNv->PCRTC0[0x081C/4] = pNv->lcd_081c;
+ return;
+ }
+ pNv->lcd_on = on;
+ pNv->lcd_10f0 = pNv->PMC[0x10F0/4] & 0xFFFFFFFF;
+ pNv->lcd_081c = pNv->PCRTC0[0x081C/4] & 0xFFFFFFFF;
tmp = pNv->PMC[0x10F0/4] & 0x7FFFFFFF;
pNv->PMC[0x10F0/4] = tmp;
tmp = pNv->PCRTC0[0x081C/4] & 0xFFFFFFFC;
Only in xc/programs/Xserver/hw/xfree86/drivers/nv: nv_driver.o
Only in xc/programs/Xserver/hw/xfree86/drivers/nv: nv_drv.o
Only in xc/programs/Xserver/hw/xfree86/drivers/nv: nv_hw.o
Only in xc/programs/Xserver/hw/xfree86/drivers/nv: nv_setup.o
Only in xc/programs/Xserver/hw/xfree86/drivers/nv: nv_shadow.o
diff -u xc/programs/Xserver/hw/xfree86/drivers/nv.orig/nv_type.h
xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h
--- xc/programs/Xserver/hw/xfree86/drivers/nv.orig/nv_type.h Thu Jan 1 22:13:28
2004
+++ xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h Thu Jan 1 22:58:51 2004
@@ -159,6 +159,12 @@
CARD32 *dmaBase;
CARD32 currentRop;
+
+#if defined(__powerpc__)
+ CARD32 lcd_10f0;
+ CARD32 lcd_081c;
+ int lcd_on;
+#endif
} NVRec, *NVPtr;
#define NVPTR(p) ((NVPtr)((p)->driverPrivate))
Only in xc/programs/Xserver/hw/xfree86/drivers/nv: nv_video.o
Only in xc/programs/Xserver/hw/xfree86/drivers/nv: nv_xaa.o