Index: radeon_vid.c
===================================================================
RCS file: /cvsroot/vidix/vidix/vidix/drivers/radeon_vid.c,v
retrieving revision 1.39
diff -U3 -r1.39 radeon_vid.c
--- radeon_vid.c	10 Jan 2004 18:17:33 -0000	1.39
+++ radeon_vid.c	19 Jun 2004 08:27:20 -0000
@@ -1155,6 +1155,7 @@
     uint32_t ov0_graphics_key_clr;
     uint32_t ov0_graphics_key_msk;
     uint32_t ov0_key_cntl;
+    uint32_t disp_merge_cntl;
 }saved_regs_t;
 static saved_regs_t savreg;
 
@@ -1166,6 +1167,7 @@
     savreg.ov0_graphics_key_clr = INREG(OV0_GRAPHICS_KEY_CLR);
     savreg.ov0_graphics_key_msk = INREG(OV0_GRAPHICS_KEY_MSK);
     savreg.ov0_key_cntl		= INREG(OV0_KEY_CNTL);
+    savreg.disp_merge_cntl		= INREG(DISP_MERGE_CNTL);
 }
 
 static void restore_regs( void )
@@ -1176,12 +1178,13 @@
     OUTREG(OV0_GRAPHICS_KEY_CLR,savreg.ov0_graphics_key_clr);
     OUTREG(OV0_GRAPHICS_KEY_MSK,savreg.ov0_graphics_key_msk);
     OUTREG(OV0_KEY_CNTL,savreg.ov0_key_cntl);
+    OUTREG(DISP_MERGE_CNTL,savreg.disp_merge_cntl);
 }
 
 int VIDIX_NAME(vixInit)( const char *args )
 {
   int err;
-  if(!probed) 
+  if(!probed)
   {
     printf(RADEON_MSG" Driver was not probed but is being initializing\n");
     return EINTR;
@@ -2418,7 +2421,7 @@
 				((ArrayOfSets[ArrayElement].CoefSet[4][2] & 0x7f)<<16) |
 				((ArrayOfSets[ArrayElement].CoefSet[4][3] & 0xf)<<24);
 /*
-    For more details, refer to Microsoft's draft of PC99.
+    For more details, refer to Microsoft's draft of PC99.
 */
 }
 
@@ -3261,6 +3264,23 @@
     OUTREG(OV0_GRAPHICS_KEY_MSK, besr.graphics_key_msk);
     OUTREG(OV0_GRAPHICS_KEY_CLR, besr.graphics_key_clr);
     OUTREG(OV0_KEY_CNTL,besr.ckey_cntl);
+
+    if (radeon_vid_get_dbpp() == 32) {
+      printf ("OV0_GRAPHICS_KEY_CLR = 0x%08x\n", INREG(OV0_GRAPHICS_KEY_CLR) );
+      printf ("OV0_GRAPHICS_KEY_MSK = 0x%08x\n", INREG(OV0_GRAPHICS_KEY_MSK) );
+      printf ("OV0_KEY_CNTL         = 0x%08x\n", INREG(OV0_KEY_CNTL) );
+      printf ("DISP_MERGE_CNTL      = 0x%08x\n", INREG(DISP_MERGE_CNTL) );
+
+      OUTREG(OV0_GRAPHICS_KEY_MSK, 0x00000000);
+      OUTREG(OV0_GRAPHICS_KEY_CLR, 0x00000000);
+      OUTREG(OV0_KEY_CNTL, 0x00000111);
+      OUTREG(DISP_MERGE_CNTL, 0xffff0001);
+
+      printf ("OV0_GRAPHICS_KEY_CLR = 0x%08x\n", INREG(OV0_GRAPHICS_KEY_CLR) );
+      printf ("OV0_GRAPHICS_KEY_MSK = 0x%08x\n", INREG(OV0_GRAPHICS_KEY_MSK) );
+      printf ("OV0_KEY_CNTL         = 0x%08x\n", INREG(OV0_KEY_CNTL) );
+      printf ("DISP_MERGE_CNTL      = 0x%08x\n", INREG(DISP_MERGE_CNTL) );
+    }
 }
 
 int VIDIX_NAME(vixGetGrKeys)(vidix_grkey_t *grkey)
