diff -Nur xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c xc-flo/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c
--- xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c	Tue Apr 29 15:21:49 2003
+++ xc-flo/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c	Tue Apr 29 18:16:58 2003
@@ -4555,30 +4555,44 @@
 static void RADEONDisplayPowerManagementSet(ScrnInfoPtr pScrn,
 					  int PowerManagementMode, int flags)
 {
-    RADEONInfoPtr info        = RADEONPTR(pScrn);
-    unsigned char *RADEONMMIO = info->MMIO;
-    int           mask        = (RADEON_CRTC_DISPLAY_DIS
-				 | RADEON_CRTC_HSYNC_DIS
-				 | RADEON_CRTC_VSYNC_DIS);
+	RADEONInfoPtr info        = RADEONPTR(pScrn);
+	unsigned char *RADEONMMIO = info->MMIO;
+	int           mask        = (RADEON_CRTC_DISPLAY_DIS
+					| RADEON_CRTC_HSYNC_DIS
+					| RADEON_CRTC_VSYNC_DIS);
 
-    switch (PowerManagementMode) {
-    case DPMSModeOn:
-	/* Screen: On; HSync: On, VSync: On */
-	OUTREGP(RADEON_CRTC_EXT_CNTL, 0, ~mask);
-	break;
-    case DPMSModeStandby:
-	/* Screen: Off; HSync: Off, VSync: On */
-	OUTREGP(RADEON_CRTC_EXT_CNTL,
-		RADEON_CRTC_DISPLAY_DIS | RADEON_CRTC_HSYNC_DIS, ~mask);
-	break;
-    case DPMSModeSuspend:
-	/* Screen: Off; HSync: On, VSync: Off */
-	OUTREGP(RADEON_CRTC_EXT_CNTL,
-		RADEON_CRTC_DISPLAY_DIS | RADEON_CRTC_VSYNC_DIS, ~mask);
-	break;
-    case DPMSModeOff:
-	/* Screen: Off; HSync: Off, VSync: Off */
-	OUTREGP(RADEON_CRTC_EXT_CNTL, mask, ~mask);
-	break;
-    }
+	/* Turn off backlight for DFP and LCD */
+	if (info->DisplayType == MT_DFP || info->DisplayType == MT_LCD) {
+		switch (PowerManagementMode) {
+			case DPMSModeOn:
+				OUTREGP(RADEON_LVDS_GEN_CNTL, RADEON_LVDS_ON, ~0);
+				break;
+			case DPMSModeStandby:
+			case DPMSModeSuspend:
+			case DPMSModeOff:
+				OUTREGP(RADEON_LVDS_GEN_CNTL, 0, ~RADEON_LVDS_ON);
+				break;
+		}
+	} else {
+		switch (PowerManagementMode) {
+		case DPMSModeOn:
+			/* Screen: On; HSync: On, VSync: On */
+			OUTREGP(RADEON_CRTC_EXT_CNTL, 0, ~mask);
+			break;
+		case DPMSModeStandby:
+			/* Screen: Off; HSync: Off, VSync: On */
+			OUTREGP(RADEON_CRTC_EXT_CNTL,
+				RADEON_CRTC_DISPLAY_DIS | RADEON_CRTC_HSYNC_DIS, ~mask);
+			break;
+		case DPMSModeSuspend:
+			/* Screen: Off; HSync: On, VSync: Off */
+			OUTREGP(RADEON_CRTC_EXT_CNTL,
+				RADEON_CRTC_DISPLAY_DIS | RADEON_CRTC_VSYNC_DIS, ~mask);
+			break;
+		case DPMSModeOff:
+			/* Screen: Off; HSync: Off, VSync: Off */
+			OUTREGP(RADEON_CRTC_EXT_CNTL, mask, ~mask);
+			break;
+		}
+	}
 }
