changeset 3266:ff90589b635f

Fixed single buffering problems and -vo mga compatibility by number of buffers
author nick
date Sun, 02 Dec 2001 12:21:13 +0000
parents ec69d8238c84
children 639a7ca4885a
files drivers/radeon/Makefile drivers/radeon/radeon_vid.c libvo/vesa_lvo.c
diffstat 3 files changed, 14 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/drivers/radeon/Makefile	Sun Dec 02 11:45:44 2001 +0000
+++ b/drivers/radeon/Makefile	Sun Dec 02 12:21:13 2001 +0000
@@ -45,4 +45,4 @@
 vid:
 	make install
 	rmmod radeon_vid
-	modprobe radeon_vid
+	modprobe radeon_vid mtrr=1
--- a/drivers/radeon/radeon_vid.c	Sun Dec 02 11:45:44 2001 +0000
+++ b/drivers/radeon/radeon_vid.c	Sun Dec 02 12:21:13 2001 +0000
@@ -14,7 +14,7 @@
  * Also here was used code from CVS of GATOS project and X11 trees.
  */
 
-#define RADEON_VID_VERSION "1.0.1"
+#define RADEON_VID_VERSION "1.0.2"
 
 /*
   It's entirely possible this major conflicts with something else
@@ -311,6 +311,10 @@
     OUTREG(OV0_AUTO_FLIP_CNTL,OV0_AUTO_FLIP_CNTL_SOFT_BUF_ODD);
 
     OUTREG(OV0_DEINTERLACE_PATTERN,besr.deinterlace_pattern);
+
+    OUTREG(OV0_COLOUR_CNTL, (besr.brightness & 0x7f) |
+			    (besr.saturation << 8) |
+			    (besr.saturation << 16));
    
     OUTREG(OV0_AUTO_FLIP_CNTL,(INREG(OV0_AUTO_FLIP_CNTL)^OV0_AUTO_FLIP_CNTL_SOFT_EOF_TOGGLE));
     OUTREG(OV0_AUTO_FLIP_CNTL,(INREG(OV0_AUTO_FLIP_CNTL)^OV0_AUTO_FLIP_CNTL_SOFT_EOF_TOGGLE));
@@ -615,11 +619,13 @@
 				return -EFAULT;
 			}
 
-			if(radeon_config.num_frames<1 || radeon_config.num_frames>4){
+			if(radeon_config.num_frames<1){
 				printk(RVID_MSG"illegal num_frames: %d\n",radeon_config.num_frames);
 				return -EFAULT;
 			}
-
+			if(radeon_config.num_frames==1) besr.double_buff=0;
+			if(!besr.double_buff) radeon_config.num_frames=1;
+			else                  radeon_config.num_frames=2;
 			radeon_config.card_type = 0;
 			radeon_config.ram_size = radeon_ram_size;
 			radeon_overlay_off = radeon_ram_size*0x100000 - radeon_config.frame_size*radeon_config.num_frames;
--- a/libvo/vesa_lvo.c	Sun Dec 02 11:45:44 2001 +0000
+++ b/libvo/vesa_lvo.c	Sun Dec 02 12:21:13 2001 +0000
@@ -29,7 +29,7 @@
 #include "video_out.h"
 
 #define WIDTH_ALIGN 32 /* should be 16 for rage:422 and 32 for rage:420 */
-#define NUM_FRAMES 2
+#define NUM_FRAMES 10
 #define UNUSED(x) ((void)(x)) /**< Removes warning about unused arguments */
 
 static uint8_t *frames[NUM_FRAMES];
@@ -211,9 +211,12 @@
 void     vlvo_flip_page(void)
 {
   if(verbose > 1) printf("vesa_lvo: vlvo_flip_page() was called\n");
+  if(vo_doublebuffering)
+  {
 	ioctl(lvo_handler,MGA_VID_FSEL,&next_frame);
 	next_frame=(next_frame+1)%mga_vid_config.num_frames;
 	lvo_mem=frames[next_frame];
+  }	
 }
 
 static void draw_alpha_null(int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride)