summaryrefslogtreecommitdiffstats
path: root/drivers/mga_vid_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mga_vid_test.c')
-rw-r--r--drivers/mga_vid_test.c326
1 files changed, 163 insertions, 163 deletions
diff --git a/drivers/mga_vid_test.c b/drivers/mga_vid_test.c
index 05f41dbdf2..8555905a46 100644
--- a/drivers/mga_vid_test.c
+++ b/drivers/mga_vid_test.c
@@ -44,192 +44,192 @@ uint8_t cb_image[SRC_IMAGE_WIDTH * SRC_IMAGE_HEIGHT];
void
write_frame_g200(uint8_t *y,uint8_t *cr, uint8_t *cb)
{
- uint8_t *dest;
- uint32_t bespitch,h,w;
-
- dest = mga_vid_base;
- bespitch = (config.src_width + 31) & ~31;
-
- for(h=0; h < config.src_height; h++)
- {
- memcpy(dest, y, config.src_width);
- y += config.src_width;
- dest += bespitch;
- }
-
- for(h=0; h < config.src_height/2; h++)
- {
- for(w=0; w < config.src_width/2; w++)
- {
- *dest++ = *cb++;
- *dest++ = *cr++;
- }
- dest += bespitch - config.src_width;
- }
+ uint8_t *dest;
+ uint32_t bespitch,h,w;
+
+ dest = mga_vid_base;
+ bespitch = (config.src_width + 31) & ~31;
+
+ for(h=0; h < config.src_height; h++)
+ {
+ memcpy(dest, y, config.src_width);
+ y += config.src_width;
+ dest += bespitch;
+ }
+
+ for(h=0; h < config.src_height/2; h++)
+ {
+ for(w=0; w < config.src_width/2; w++)
+ {
+ *dest++ = *cb++;
+ *dest++ = *cr++;
+ }
+ dest += bespitch - config.src_width;
+ }
}
void
write_frame_g400(uint8_t *y,uint8_t *cr, uint8_t *cb)
{
- uint8_t *dest;
- uint32_t bespitch,h;
-
- dest = mga_vid_base;
- bespitch = (config.src_width + 31) & ~31;
-
- for(h=0; h < config.src_height; h++)
- {
- memcpy(dest, y, config.src_width);
- y += config.src_width;
- dest += bespitch;
- }
-
- for(h=0; h < config.src_height/2; h++)
- {
- memcpy(dest, cb, config.src_width/2);
- cb += config.src_width/2;
- dest += bespitch/2;
- }
-
- for(h=0; h < config.src_height/2; h++)
- {
- memcpy(dest, cr, config.src_width/2);
- cr += config.src_width/2;
- dest += bespitch/2;
- }
+ uint8_t *dest;
+ uint32_t bespitch,h;
+
+ dest = mga_vid_base;
+ bespitch = (config.src_width + 31) & ~31;
+
+ for(h=0; h < config.src_height; h++)
+ {
+ memcpy(dest, y, config.src_width);
+ y += config.src_width;
+ dest += bespitch;
+ }
+
+ for(h=0; h < config.src_height/2; h++)
+ {
+ memcpy(dest, cb, config.src_width/2);
+ cb += config.src_width/2;
+ dest += bespitch/2;
+ }
+
+ for(h=0; h < config.src_height/2; h++)
+ {
+ memcpy(dest, cr, config.src_width/2);
+ cr += config.src_width/2;
+ dest += bespitch/2;
+ }
}
void write_frame(uint8_t *y,uint8_t *cr, uint8_t *cb)
{
- if(is_g400)
- write_frame_g400(y,cr,cb);
- else
- write_frame_g200(y,cr,cb);
+ if(is_g400)
+ write_frame_g400(y,cr,cb);
+ else
+ write_frame_g200(y,cr,cb);
}
void
draw_cool_pattern(void)
{
- int i,x,y;
-
- i = 0;
- for (y=0; y<config.src_height; y++) {
- for (x=0; x<config.src_width; x++) {
- y_image[i++] = x*x/2 + y*y/2 - 128;
- }
- }
-
- i = 0;
- for (y=0; y<config.src_height/2; y++)
- for (x=0; x<config.src_width/2; x++)
- {
- cr_image[i++] = x - 128;
- }
-
- i = 0;
- for (y=0; y<config.src_height/2; y++)
- for (x=0; x<config.src_width/2; x++)
- {
- cb_image[i++] = y - 128;
- }
+ int i,x,y;
+
+ i = 0;
+ for (y=0; y<config.src_height; y++) {
+ for (x=0; x<config.src_width; x++) {
+ y_image[i++] = x*x/2 + y*y/2 - 128;
+ }
+ }
+
+ i = 0;
+ for (y=0; y<config.src_height/2; y++)
+ for (x=0; x<config.src_width/2; x++)
+ {
+ cr_image[i++] = x - 128;
+ }
+
+ i = 0;
+ for (y=0; y<config.src_height/2; y++)
+ for (x=0; x<config.src_width/2; x++)
+ {
+ cb_image[i++] = y - 128;
+ }
}
void
draw_color_blend(void)
{
- int i,x,y;
-
- i = 0;
- for (y=0; y<config.src_height; y++) {
- for (x=0; x<config.src_width; x++) {
- y_image[i++] = 0;
- }
- }
-
- i = 0;
- for (y=0; y<config.src_height/2; y++)
- for (x=0; x<config.src_width/2; x++)
- {
- cr_image[i++] = x - 128;
- }
-
- i = 0;
- for (y=0; y<config.src_height/2; y++)
- for (x=0; x<config.src_width/2; x++)
- {
- cb_image[i++] = y - 128;
- }
+ int i,x,y;
+
+ i = 0;
+ for (y=0; y<config.src_height; y++) {
+ for (x=0; x<config.src_width; x++) {
+ y_image[i++] = 0;
+ }
+ }
+
+ i = 0;
+ for (y=0; y<config.src_height/2; y++)
+ for (x=0; x<config.src_width/2; x++)
+ {
+ cr_image[i++] = x - 128;
+ }
+
+ i = 0;
+ for (y=0; y<config.src_height/2; y++)
+ for (x=0; x<config.src_width/2; x++)
+ {
+ cb_image[i++] = y - 128;
+ }
}
int
main(void)
{
- int f;
-
- f = open("/dev/mga_vid",O_RDWR);
-
- if(f == -1)
- {
- fprintf(stderr,"Couldn't open driver\n");
- exit(1);
- }
-
- config.version = MGA_VID_VERSION;
- config.src_width = SRC_IMAGE_WIDTH;
- config.src_height= SRC_IMAGE_HEIGHT;
- config.dest_width = SRC_IMAGE_WIDTH;
- config.dest_height = SRC_IMAGE_HEIGHT;
- config.x_org= 10;
- config.y_org= 10;
- config.colkey_on = 0;
- config.format = MGA_VID_FORMAT_YV12;
- config.frame_size=SRC_IMAGE_WIDTH*SRC_IMAGE_HEIGHT*2;
- config.num_frames=1;
-
- if (ioctl(f,MGA_VID_CONFIG,&config))
- {
- perror("Error in config ioctl");
- }
-
- if (config.card_type == MGA_G200)
- {
- printf("Testing MGA G200 Backend Scaler with %d MB of RAM\n", config.ram_size);
- is_g400 = 0;
- }
- else
- {
- printf("Testing MGA G400 Backend Scaler with %d MB of RAM\n", config.ram_size);
- is_g400 = 1;
- }
-
- ioctl(f,MGA_VID_ON,0);
- mga_vid_base = (uint8_t*)mmap(0,256 * 4096,PROT_WRITE,MAP_SHARED,f,0);
- printf("mga_vid_base = %8p\n",mga_vid_base);
-
-
- //memset(y_image,80,256 * 128);
- //memset(cr_image,80,256/2 * 20);
- //memset(cb_image,80,256/2 * 20);
- write_frame(y_image,cr_image,cb_image);
- printf("(1) There should be a green square, offset by 10 pixels from\n"
- " the upper left corner displayed\n");
- sleep(3);
-
-
- draw_cool_pattern();
- write_frame(y_image,cr_image,cb_image);
- printf("(2) There should be a cool mosaic like pattern now.\n");
- sleep(3);
-
- draw_color_blend();
- write_frame(y_image,cr_image,cb_image);
- printf("(3) There should be a color blend with black, red, purple, blue\n"
- " corners (starting top left going CW)\n");
- sleep(3);
-
- ioctl(f,MGA_VID_OFF,0);
-
- close(f);
- return 0;
+ int f;
+
+ f = open("/dev/mga_vid",O_RDWR);
+
+ if(f == -1)
+ {
+ fprintf(stderr,"Couldn't open driver\n");
+ exit(1);
+ }
+
+ config.version = MGA_VID_VERSION;
+ config.src_width = SRC_IMAGE_WIDTH;
+ config.src_height= SRC_IMAGE_HEIGHT;
+ config.dest_width = SRC_IMAGE_WIDTH;
+ config.dest_height = SRC_IMAGE_HEIGHT;
+ config.x_org= 10;
+ config.y_org= 10;
+ config.colkey_on = 0;
+ config.format = MGA_VID_FORMAT_YV12;
+ config.frame_size=SRC_IMAGE_WIDTH*SRC_IMAGE_HEIGHT*2;
+ config.num_frames=1;
+
+ if (ioctl(f,MGA_VID_CONFIG,&config))
+ {
+ perror("Error in config ioctl");
+ }
+
+ if (config.card_type == MGA_G200)
+ {
+ printf("Testing MGA G200 Backend Scaler with %d MB of RAM\n", config.ram_size);
+ is_g400 = 0;
+ }
+ else
+ {
+ printf("Testing MGA G400 Backend Scaler with %d MB of RAM\n", config.ram_size);
+ is_g400 = 1;
+ }
+
+ ioctl(f,MGA_VID_ON,0);
+ mga_vid_base = (uint8_t*)mmap(0,256 * 4096,PROT_WRITE,MAP_SHARED,f,0);
+ printf("mga_vid_base = %8p\n",mga_vid_base);
+
+
+ //memset(y_image,80,256 * 128);
+ //memset(cr_image,80,256/2 * 20);
+ //memset(cb_image,80,256/2 * 20);
+ write_frame(y_image,cr_image,cb_image);
+ printf("(1) There should be a green square, offset by 10 pixels from\n"
+ " the upper left corner displayed\n");
+ sleep(3);
+
+
+ draw_cool_pattern();
+ write_frame(y_image,cr_image,cb_image);
+ printf("(2) There should be a cool mosaic like pattern now.\n");
+ sleep(3);
+
+ draw_color_blend();
+ write_frame(y_image,cr_image,cb_image);
+ printf("(3) There should be a color blend with black, red, purple, blue\n"
+ " corners (starting top left going CW)\n");
+ sleep(3);
+
+ ioctl(f,MGA_VID_OFF,0);
+
+ close(f);
+ return 0;
}