summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alex@botch2.(none)>2007-08-24 20:42:13 -0400
committerAlex Deucher <alex@botch2.(none)>2007-08-24 20:42:13 -0400
commit3469e1aa08792890fa6a5c72da52a1992a0b382c (patch)
treecc3125e98cc1e92f174965aa5263c899cc2243df
parent71f650d1bc432514516f7ac64a5e8a54c5227881 (diff)
RADEON: add extra green data in depth 16
Apparently some radeons need this?
-rw-r--r--src/radeon_crtc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/radeon_crtc.c b/src/radeon_crtc.c
index 6211b02..3ee7760 100644
--- a/src/radeon_crtc.c
+++ b/src/radeon_crtc.c
@@ -912,6 +912,9 @@ void radeon_crtc_load_lut(xf86CrtcPtr crtc)
} 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++) {
@@ -935,6 +938,11 @@ radeon_crtc_gamma_set(xf86CrtcPtr crtc, CARD16 *red, CARD16 *green,
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;
+ }
}
} else {
for (i = 0; i < 256; i++) {