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)