Mercurial > mplayer.hg
comparison vidix/drivers/mach64_vid.c @ 7838:1a6da24ad34c
save colorkey stuff patch by (Colin Leroy <colin at colino dot net>)
author | michael |
---|---|
date | Tue, 22 Oct 2002 13:20:53 +0000 |
parents | 6bfe33dc531e |
children | 9ec1e707f736 |
comparison
equal
deleted
inserted
replaced
7837:6d544beb655e | 7838:1a6da24ad34c |
---|---|
116 DECLARE_VREG(VIDEO_FORMAT), | 116 DECLARE_VREG(VIDEO_FORMAT), |
117 DECLARE_VREG(VIDEO_CONFIG), | 117 DECLARE_VREG(VIDEO_CONFIG), |
118 DECLARE_VREG(VIDEO_SYNC_TEST), | 118 DECLARE_VREG(VIDEO_SYNC_TEST), |
119 DECLARE_VREG(VIDEO_SYNC_TEST_B) | 119 DECLARE_VREG(VIDEO_SYNC_TEST_B) |
120 }; | 120 }; |
121 | |
122 /* have to restore it on exit */ | |
123 static uint32_t SAVED_OVERLAY_GRAPHICS_KEY_CLR; | |
121 | 124 |
122 /* VIDIX exports */ | 125 /* VIDIX exports */ |
123 | 126 |
124 /* MMIO space*/ | 127 /* MMIO space*/ |
125 #define GETREG(TYPE,PTR,OFFZ) (*((volatile TYPE*)((PTR)+(OFFZ)))) | 128 #define GETREG(TYPE,PTR,OFFZ) (*((volatile TYPE*)((PTR)+(OFFZ)))) |
463 if((mach64_mem_base = map_phys_mem(pci_info.base0,mach64_ram_size))==(void *)-1) return ENOMEM; | 466 if((mach64_mem_base = map_phys_mem(pci_info.base0,mach64_ram_size))==(void *)-1) return ENOMEM; |
464 memset(&besr,0,sizeof(bes_registers_t)); | 467 memset(&besr,0,sizeof(bes_registers_t)); |
465 printf("[mach64] Video memory = %uMb\n",mach64_ram_size/0x100000); | 468 printf("[mach64] Video memory = %uMb\n",mach64_ram_size/0x100000); |
466 err = mtrr_set_type(pci_info.base0,mach64_ram_size,MTRR_TYPE_WRCOMB); | 469 err = mtrr_set_type(pci_info.base0,mach64_ram_size,MTRR_TYPE_WRCOMB); |
467 if(!err) printf("[mach64] Set write-combining type of video memory\n"); | 470 if(!err) printf("[mach64] Set write-combining type of video memory\n"); |
471 | |
472 /* save this */ | |
473 mach64_wait_for_idle(); | |
474 SAVED_OVERLAY_GRAPHICS_KEY_CLR = INREG(OVERLAY_GRAPHICS_KEY_CLR); | |
468 | 475 |
469 /* check if planar formats are supported */ | 476 /* check if planar formats are supported */ |
470 supports_planar=0; | 477 supports_planar=0; |
471 mach64_wait_for_idle(); | 478 mach64_wait_for_idle(); |
472 mach64_fifo_wait(2); | 479 mach64_fifo_wait(2); |
499 return 0; | 506 return 0; |
500 } | 507 } |
501 | 508 |
502 void vixDestroy(void) | 509 void vixDestroy(void) |
503 { | 510 { |
511 /*restore this*/ | |
512 mach64_wait_for_idle(); | |
513 OUTREG(OVERLAY_GRAPHICS_KEY_CLR,SAVED_OVERLAY_GRAPHICS_KEY_CLR); | |
514 | |
504 unmap_phys_mem(mach64_mem_base,mach64_ram_size); | 515 unmap_phys_mem(mach64_mem_base,mach64_ram_size); |
505 unmap_phys_mem(mach64_mmio_base,0x4000); | 516 unmap_phys_mem(mach64_mmio_base,0x4000); |
506 } | 517 } |
507 | 518 |
508 int vixGetCapability(vidix_capability_t *to) | 519 int vixGetCapability(vidix_capability_t *to) |