xf86-video-ati: Branch 'master'

Alex Deucher agd5f at kemper.freedesktop.org
Sun Aug 26 11:13:12 PDT 2007


 src/radeon_crtc.c   |   35 ++++++++++++-----------------------
 src/radeon_driver.c |    4 ++--
 2 files changed, 14 insertions(+), 25 deletions(-)

New commits:
diff-tree f36720377737210c985b196d9a988efdd767f1c7 (from f2b13f1457bf860b075310d3962254be0ed7bea3)
Author: Alex Deucher <alex at samba.(none)>
Date:   Sun Aug 26 14:13:06 2007 -0400

    RADEON: fix depth 16 palette for real this time

diff --git a/src/radeon_crtc.c b/src/radeon_crtc.c
index 6a4116d..026cd8a 100644
--- a/src/radeon_crtc.c
+++ b/src/radeon_crtc.c
@@ -103,7 +103,7 @@ radeon_crtc_dpms(xf86CrtcPtr crtc, int m
     }
   
     if (mode != DPMSModeOff)
-	radeon_crtc_load_lut(crtc);  
+	radeon_crtc_load_lut(crtc);
 }
 
 static Bool
@@ -911,21 +911,8 @@ void radeon_crtc_load_lut(xf86CrtcPtr cr
 
     PAL_SELECT(radeon_crtc->crtc_id);
 
-    if (pScrn->depth == 15) {
-	for (i = 0; i < 32; i++) {
-	    OUTPAL(i * 8, radeon_crtc->lut_r[i], radeon_crtc->lut_g[i], radeon_crtc->lut_b[i]);
-	}
-    } else if (pScrn->depth == 16) {
-	for (i = 0; i < 64; i++) {
-	    OUTPAL(i * 4, radeon_crtc->lut_r[i], radeon_crtc->lut_g[i], radeon_crtc->lut_b[i]);
-	    if (i <= 31) {
-		OUTPAL(i * 8, radeon_crtc->lut_r[i + 64], radeon_crtc->lut_g[i + 64], radeon_crtc->lut_b[i + 64]);
-	    }
-	}
-    } else {
-	for (i = 0; i < 256; i++) {
-	    OUTPAL(i, radeon_crtc->lut_r[i], radeon_crtc->lut_g[i], radeon_crtc->lut_b[i]);
-	}
+    for (i = 0; i < 256; i++) {
+	OUTPAL(i, radeon_crtc->lut_r[i], radeon_crtc->lut_g[i], radeon_crtc->lut_b[i]);
     }
 
 }
@@ -937,17 +924,19 @@ radeon_crtc_gamma_set(xf86CrtcPtr crtc, 
 {
     RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private;
     ScrnInfoPtr		pScrn = crtc->scrn;
-    int i;
+    int i, j;
 
     if (pScrn->depth == 16) {
 	for (i = 0; i < 64; i++) {
-	    radeon_crtc->lut_r[i] = red[i/2] >> 8;
-	    radeon_crtc->lut_g[i] = green[i] >> 8;
-	    radeon_crtc->lut_b[i] = blue[i/2] >> 8;
 	    if (i <= 31) {
-		radeon_crtc->lut_r[i + 64] = red[i] >> 8;
-		radeon_crtc->lut_g[i + 64] = green[(i * 2) + 1] >> 8;
-		radeon_crtc->lut_b[i + 64] = blue[i] >> 8;
+		for (j = 0; j < 8; j++) {
+		    radeon_crtc->lut_r[i * 8 + j] = red[i] >> 8;
+		    radeon_crtc->lut_b[i * 8 + j] = blue[i] >> 8;
+		}
+	    }
+
+	    for (j = 0; j < 4; j++) {
+		radeon_crtc->lut_g[i * 4 + j] = green[i] >> 8;
 	    }
 	}
     } else {
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index e445b9e..158e1e4 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -2856,7 +2856,7 @@ static void RADEONLoadPalette(ScrnInfoPt
 	  case 16:
 	      for (i = 0; i < numColors; i++) {
 		  index = indices[i];
-		  
+
 		  if (i <= 31) {
 		      for (j = 0; j < 8; j++) {
 			  lut_r[index * 8 + j] = colors[index].red << 8;
@@ -2874,7 +2874,7 @@ static void RADEONLoadPalette(ScrnInfoPt
 		  lut_r[index] = colors[index].red << 8;
 		  lut_g[index] = colors[index].green << 8;
 		  lut_b[index] = colors[index].blue << 8;
-	      } 
+	      }
 	      break;
 	  }
 


More information about the xorg-commit mailing list