1 #ifndef _VTYPES_H_ 2 #define _VTYPES_H_ 3 4 5 6 /* 7 * includes 8 */ 9 10 #include <X11/Xmd.h> 11 #include "xf86Pci.h" 12 13 #ifdef XSERVER_LIBPCIACCESS 14 #include <pciaccess.h> 15 #endif 16 17 /* 18 * defines 19 */ 20 21 /* chip types */ 22 #define V1000_DEVICE 0x0001 23 #define V2000_DEVICE 0x2000 24 25 /* Size of microcode */ 26 #define MC_SIZE 0x10000 27 28 29 #define XSERVER 30 31 32 33 /* 34 * typedefs 35 */ 36 37 /* generic type definitions for central services */ 38 typedef CARD32 vu32; 39 typedef CARD16 vu16; 40 typedef CARD8 vu8; 41 typedef INT32 vs32; 42 typedef INT16 vs16; 43 typedef INT8 vs8; 44 45 typedef enum { 46 V_PIXFMT_DSTFMT=0, 47 V_PIXFMT_332=1, /**/ 48 #define V_PIXFMT_233 V_PIXFMT_332 49 V_PIXFMT_8I=2, /**/ 50 V_PIXFMT_8A=3, 51 V_PIXFMT_565=4, /**/ 52 V_PIXFMT_4444=5, /**/ 53 V_PIXFMT_1555=6, /**/ 54 /* 7 reserved */ 55 V_PIXFMT_4I_565=8, 56 V_PIXFMT_4I_4444=9, 57 V_PIXFMT_4I_1555=10, 58 /* 11 reserved */ 59 V_PIXFMT_8888=12, /**/ 60 V_PIXFMT_Y0CRY1CB=13 61 #define V_PIXFMT_Y0CBY1CR V_PIXFMT_Y0CRY1CB 62 /* 14 reserved */ 63 /* 15 reserved */ 64 } vpixfmt; 65 66 67 68 /* 69 * structs 70 */ 71 72 struct verite_modeinfo_t { 73 int clock; /* pixel clock */ 74 int hdisplay; /* horizontal timing */ 75 int hsyncstart; 76 int hsyncend; 77 int htotal; 78 int hskew; 79 int vdisplay; /* vertical timing */ 80 int vsyncstart; 81 int vsyncend; 82 int vtotal; 83 int screenwidth; /* further mode information */ 84 int virtualwidth; 85 int screenheight; 86 int virtualheight; 87 int bitsperpixel; 88 int hsynchi; 89 int vsynchi; 90 int pixelformat; /* set by the mode init routines */ 91 int fifosize; 92 int flags; /* additional information like interlace etc */ 93 vu8 pll_n; 94 vu8 pll_m; 95 vu8 pll_p; 96 vu8 refresh; 97 vu8 doubleclock; 98 vu16 stride0; 99 vu16 stride1; 100 }; 101 102 typedef struct _renditionRegs { 103 CARD8 mode; 104 CARD8 memendian; 105 CARD32 sclkpll; 106 CARD32 dramctl; 107 CARD8 plldev; 108 CARD32 pclkpll; 109 CARD8 daccmd0; 110 CARD8 daccmd1; 111 CARD8 daccmd2; 112 CARD8 daccmd3; 113 CARD32 crtch; 114 CARD32 crtcv; 115 CARD32 vbasea; 116 CARD32 crtcoff; 117 CARD32 crtcctl; 118 } RenditionRegRec, *RenditionRegPtr; 119 120 /* structure describing the Verite board and its functionality */ 121 struct verite_board_t { 122 /* type of chip */ 123 vu16 chip; 124 125 /* */ 126 unsigned long io_base, vgaio_base; 127 vu32 mmio_base; 128 vu32 vmmio_base; 129 vu32 mem_size; 130 vu8 *mem_base; 131 vu8 *vmem_base; 132 Bool init; 133 134 /* */ 135 vu32 csucode_base; 136 vu32 ucode_base; 137 vu32 ucode_entry; 138 vu32 cursor_base; 139 140 int Rop; 141 int Color; 142 143 /* mode information */ 144 struct verite_modeinfo_t mode; 145 146 /* saved text mode settings */ 147 vu8 cursor_hi; 148 vu8 cursor_low; 149 vu8 offset_hi; 150 vu8 offset_low; 151 vu8 *scr_contents; 152 153 Bool hwcursor_used; /* Is HW-cursor used? */ 154 vu16 hwcursor_vmemsize; /* How much videomem does it use */ 155 vu32 hwcursor_membase; /* videomem adress for V2K-cursor */ 156 /* Has to be on 1024-byte boundry */ 157 158 vu32 fbOffset; /* Currently busy fb-memory marker */ 159 Bool overclock_mem; /* Memory overclock ? */ 160 161 Bool shadowfb; /* Use ShadowFB ? */ 162 vu8 *shadowPtr; 163 vu32 shadowPitch; 164 void (*PointerMoved)(SCRN_ARG_TYPE arg, int x, int y); 165 166 int rotate; /* Rotate clockwise or counterclockwise */ 167 168 vu8 ucode_buffer[MC_SIZE]; /* Space for microcode, when not needed */ 169 }; 170 171 172 /* 173 * This structure is used to wrap the screen's CloseScreen vector. 174 */ 175 typedef struct _renditionRec 176 { 177 struct verite_board_t board; /* information on the board */ 178 struct verite_modeinfo_t mode; /* information on the mode */ 179 #ifdef XSERVER_LIBPCIACCESS 180 struct pci_device * PciInfo; 181 #else 182 PCITAG pcitag; /* tag for the PCI config space */ 183 pciVideoPtr PciInfo; /* PCI config data */ 184 #endif 185 EntityInfoPtr pEnt; /* entity information */ 186 CloseScreenProcPtr CloseScreen; /* wrap CloseScreen */ 187 xf86CursorInfoPtr CursorInfoRec; /* Cursor data */ 188 #ifdef HAVE_XAA_H 189 XAAInfoRecPtr AccelInfoRec; /* Needed for XAA */ 190 #endif 191 OptionInfoPtr Options; 192 RenditionRegRec saveRegs; 193 } renditionRec, *renditionPtr; 194 195 #define RENDITIONPTR(p) ((renditionPtr)((p)->driverPrivate)) 196 197 #endif /* #ifndef _VTYPES_H_ */ 198 199 /* 200 * end of file vtypes.h 201 */ 202