mirror of https://github.com/mpv-player/mpv
tdfxfb yuv driver by Zeljko Stevanovic <zsteva@ptt.yu>
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@1981 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
d9ea94cfda
commit
8112ab4e8b
172
drivers/3dfx.h
172
drivers/3dfx.h
|
@ -1,6 +1,8 @@
|
|||
/*
|
||||
* 3dfx.h
|
||||
*
|
||||
* changed by zsteva Aug/Sep 2001, see vo_3dfx.c
|
||||
*
|
||||
* Copyright (C) Colin Cross Apr 2000
|
||||
*
|
||||
* mpeg2dec is free software; you can redistribute it and/or modify
|
||||
|
@ -152,3 +154,173 @@ typedef struct voodoo_io_reg_t voodoo_io_reg;
|
|||
typedef struct voodoo_yuv_reg_t voodoo_yuv_reg;
|
||||
typedef struct voodoo_yuv_fb_t voodoo_yuv_fb;
|
||||
|
||||
|
||||
/* from linux/driver/video/tdfxfb.c, definition for 3dfx registers.
|
||||
*
|
||||
* author: Hannu Mallat <hmallat@cc.hut.fi>
|
||||
*/
|
||||
|
||||
#ifndef PCI_DEVICE_ID_3DFX_VOODOO5
|
||||
#define PCI_DEVICE_ID_3DFX_VOODOO5 0x0009
|
||||
#endif
|
||||
|
||||
/* membase0 register offsets */
|
||||
#define STATUS 0x00
|
||||
#define PCIINIT0 0x04
|
||||
#define SIPMONITOR 0x08
|
||||
#define LFBMEMORYCONFIG 0x0c
|
||||
#define MISCINIT0 0x10
|
||||
#define MISCINIT1 0x14
|
||||
#define DRAMINIT0 0x18
|
||||
#define DRAMINIT1 0x1c
|
||||
#define AGPINIT 0x20
|
||||
#define TMUGBEINIT 0x24
|
||||
#define VGAINIT0 0x28
|
||||
#define VGAINIT1 0x2c
|
||||
#define DRAMCOMMAND 0x30
|
||||
#define DRAMDATA 0x34
|
||||
/* reserved 0x38 */
|
||||
/* reserved 0x3c */
|
||||
#define PLLCTRL0 0x40
|
||||
#define PLLCTRL1 0x44
|
||||
#define PLLCTRL2 0x48
|
||||
#define DACMODE 0x4c
|
||||
#define DACADDR 0x50
|
||||
#define DACDATA 0x54
|
||||
#define RGBMAXDELTA 0x58
|
||||
#define VIDPROCCFG 0x5c
|
||||
#define HWCURPATADDR 0x60
|
||||
#define HWCURLOC 0x64
|
||||
#define HWCURC0 0x68
|
||||
#define HWCURC1 0x6c
|
||||
#define VIDINFORMAT 0x70
|
||||
#define VIDINSTATUS 0x74
|
||||
#define VIDSERPARPORT 0x78
|
||||
#define VIDINXDELTA 0x7c
|
||||
#define VIDININITERR 0x80
|
||||
#define VIDINYDELTA 0x84
|
||||
#define VIDPIXBUFTHOLD 0x88
|
||||
#define VIDCHRMIN 0x8c
|
||||
#define VIDCHRMAX 0x90
|
||||
#define VIDCURLIN 0x94
|
||||
#define VIDSCREENSIZE 0x98
|
||||
#define VIDOVRSTARTCRD 0x9c
|
||||
#define VIDOVRENDCRD 0xa0
|
||||
#define VIDOVRDUDX 0xa4
|
||||
#define VIDOVRDUDXOFF 0xa8
|
||||
#define VIDOVRDVDY 0xac
|
||||
/* ... */
|
||||
#define VIDOVRDVDYOFF 0xe0
|
||||
#define VIDDESKSTART 0xe4
|
||||
#define VIDDESKSTRIDE 0xe8
|
||||
#define VIDINADDR0 0xec
|
||||
#define VIDINADDR1 0xf0
|
||||
#define VIDINADDR2 0xf4
|
||||
#define VIDINSTRIDE 0xf8
|
||||
#define VIDCUROVRSTART 0xfc
|
||||
|
||||
#define INTCTRL (0x00100000 + 0x04)
|
||||
#define CLIP0MIN (0x00100000 + 0x08)
|
||||
#define CLIP0MAX (0x00100000 + 0x0c)
|
||||
#define DSTBASE (0x00100000 + 0x10)
|
||||
#define DSTFORMAT (0x00100000 + 0x14)
|
||||
#define SRCBASE (0x00100000 + 0x34)
|
||||
#define COMMANDEXTRA_2D (0x00100000 + 0x38)
|
||||
#define CLIP1MIN (0x00100000 + 0x4c)
|
||||
#define CLIP1MAX (0x00100000 + 0x50)
|
||||
#define SRCFORMAT (0x00100000 + 0x54)
|
||||
#define SRCSIZE (0x00100000 + 0x58)
|
||||
#define SRCXY (0x00100000 + 0x5c)
|
||||
#define COLORBACK (0x00100000 + 0x60)
|
||||
#define COLORFORE (0x00100000 + 0x64)
|
||||
#define DSTSIZE (0x00100000 + 0x68)
|
||||
#define DSTXY (0x00100000 + 0x6c)
|
||||
#define COMMAND_2D (0x00100000 + 0x70)
|
||||
#define LAUNCH_2D (0x00100000 + 0x80)
|
||||
|
||||
#define COMMAND_3D (0x00200000 + 0x120)
|
||||
|
||||
/* register bitfields (not all, only as needed) */
|
||||
|
||||
#define BIT(x) (1UL << (x))
|
||||
|
||||
/* COMMAND_2D reg. values */
|
||||
#define ROP_COPY 0xcc // src
|
||||
#define ROP_INVERT 0x55 // NOT dst
|
||||
#define ROP_XOR 0x66 // src XOR dst
|
||||
|
||||
#define AUTOINC_DSTX BIT(10)
|
||||
#define AUTOINC_DSTY BIT(11)
|
||||
#define COMMAND_2D_FILLRECT 0x05
|
||||
#define COMMAND_2D_S2S_BITBLT 0x01 // screen to screen
|
||||
#define COMMAND_2D_H2S_BITBLT 0x03 // host to screen
|
||||
|
||||
|
||||
#define COMMAND_3D_NOP 0x00
|
||||
#define STATUS_RETRACE BIT(6)
|
||||
#define STATUS_BUSY BIT(9)
|
||||
#define MISCINIT1_CLUT_INV BIT(0)
|
||||
#define MISCINIT1_2DBLOCK_DIS BIT(15)
|
||||
#define DRAMINIT0_SGRAM_NUM BIT(26)
|
||||
#define DRAMINIT0_SGRAM_TYPE BIT(27)
|
||||
#define DRAMINIT1_MEM_SDRAM BIT(30)
|
||||
#define VGAINIT0_VGA_DISABLE BIT(0)
|
||||
#define VGAINIT0_EXT_TIMING BIT(1)
|
||||
#define VGAINIT0_8BIT_DAC BIT(2)
|
||||
#define VGAINIT0_EXT_ENABLE BIT(6)
|
||||
#define VGAINIT0_WAKEUP_3C3 BIT(8)
|
||||
#define VGAINIT0_LEGACY_DISABLE BIT(9)
|
||||
#define VGAINIT0_ALT_READBACK BIT(10)
|
||||
#define VGAINIT0_FAST_BLINK BIT(11)
|
||||
#define VGAINIT0_EXTSHIFTOUT BIT(12)
|
||||
#define VGAINIT0_DECODE_3C6 BIT(13)
|
||||
#define VGAINIT0_SGRAM_HBLANK_DISABLE BIT(22)
|
||||
#define VGAINIT1_MASK 0x1fffff
|
||||
#define VIDCFG_VIDPROC_ENABLE BIT(0)
|
||||
#define VIDCFG_CURS_X11 BIT(1)
|
||||
#define VIDCFG_HALF_MODE BIT(4)
|
||||
#define VIDCFG_DESK_ENABLE BIT(7)
|
||||
#define VIDCFG_CLUT_BYPASS BIT(10)
|
||||
#define VIDCFG_2X BIT(26)
|
||||
#define VIDCFG_HWCURSOR_ENABLE BIT(27)
|
||||
#define VIDCFG_PIXFMT_SHIFT 18
|
||||
#define DACMODE_2X BIT(0)
|
||||
|
||||
/* VGA rubbish, need to change this for multihead support */
|
||||
#define MISC_W 0x3c2
|
||||
#define MISC_R 0x3cc
|
||||
#define SEQ_I 0x3c4
|
||||
#define SEQ_D 0x3c5
|
||||
#define CRT_I 0x3d4
|
||||
#define CRT_D 0x3d5
|
||||
#define ATT_IW 0x3c0
|
||||
#define IS1_R 0x3da
|
||||
#define GRA_I 0x3ce
|
||||
#define GRA_D 0x3cf
|
||||
|
||||
#ifndef FB_ACCEL_3DFX_BANSHEE
|
||||
#define FB_ACCEL_3DFX_BANSHEE 31
|
||||
#endif
|
||||
|
||||
#define TDFXF_HSYNC_ACT_HIGH 0x01
|
||||
#define TDFXF_HSYNC_ACT_LOW 0x02
|
||||
#define TDFXF_VSYNC_ACT_HIGH 0x04
|
||||
#define TDFXF_VSYNC_ACT_LOW 0x08
|
||||
#define TDFXF_LINE_DOUBLE 0x10
|
||||
#define TDFXF_VIDEO_ENABLE 0x20
|
||||
|
||||
#define TDFXF_HSYNC_MASK 0x03
|
||||
#define TDFXF_VSYNC_MASK 0x0c
|
||||
|
||||
#define XYREG(x,y) (((y) << 16) | (x))
|
||||
|
||||
//#define TDFXFB_DEBUG
|
||||
#ifdef TDFXFB_DEBUG
|
||||
#define DPRINTK(a,b...) printk(KERN_DEBUG "fb: %s: " a, __FUNCTION__ , ## b)
|
||||
#else
|
||||
#define DPRINTK(a,b...)
|
||||
#endif
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue