1 #ifndef __MATROX__REGS_H__ 2 #define __MATROX__REGS_H__ 3 4 #define U8_TO_F0915(x) (((u32) ((x+1) << 15)) & 0x00FFFFFF) 5 6 #define RS16(val) ( (u16)((s16)(val))) 7 #define RS18(val) (((u32)((s32)(val)))&0x003ffff) 8 #define RS24(val) (((u32)((s32)(val)))&0x0ffffff) 9 #define RS27(val) (((u32)((s32)(val)))&0x7ffffff) 10 11 #define DWGSYNC 0x2C4C 12 #define SYNC_DMA_BUSY 0x8325340 /* just a random number */ 13 14 #define RST 0x1E40 15 #define OPMODE 0x1E54 16 17 #define CACHEFLUSH 0x1FFF 18 19 /* CRTC2 registers */ 20 #define C2CTL 0x3C10 21 # define C2EN 0x00000001 22 # define C2PIXCLKSEL_PCICLK 0x00000000 23 # define C2PIXCLKSEL_VDOCLK 0x00000002 24 # define C2PIXCLKSEL_PIXPLL 0x00000004 25 # define C2PIXCLKSEL_VIDPLL 0x00000006 /* SYSPLL on G400 */ 26 # define C2PIXCLKSEL_VDCLK 0x00004000 /* G450/G550 only */ 27 # define C2PIXCLKSEL_CRISTAL 0x00004002 /* G450/G550 only */ 28 # define C2PIXCLKSEL_SYSPLL 0x00004004 /* G450/G550 only */ 29 # define C2PIXCLKDIS 0x00000008 30 # define CRTCDACSEL 0x00100000 31 # define C2DEPTH_15BPP 0x00200000 32 # define C2DEPTH_16BPP 0x00400000 33 # define C2DEPTH_32BPP 0x00800000 34 # define C2DEPTH_YCBCR422 0x00A00000 35 # define C2DEPTH_YCBCR420 0x00E00000 36 # define C2VCBCRSINGLE 0x01000000 37 # define C2INTERLACE 0x02000000 38 # define C2FIELDLENGTH 0x04000000 39 # define C2FIELDPOL 0x08000000 40 # define C2VIDRSTMOD_FALLING 0x00000000 41 # define C2VIDRSTMOD_RISING 0x10000000 42 # define C2VIDRSTMOD_BOTH 0x20000000 43 # define C2HPLOADEN 0x40000000 44 # define C2VPLOADEN 0x80000000 45 #define C2HPARAM 0x3C14 46 #define C2HSYNC 0x3C18 47 #define C2VPARAM 0x3C1C 48 #define C2VSYNC 0x3C20 49 #define C2PRELOAD 0x3C24 50 #define C2STARTADD0 0x3C28 51 #define C2STARTADD1 0x3C2C 52 #define C2PL2STARTADD0 0x3C30 53 #define C2PL2STARTADD1 0x3C34 54 #define C2PL3STARTADD0 0x3C38 55 #define C2PL3STARTADD1 0x3C3C 56 #define C2OFFSET 0x3C40 57 #define C2MISC 0x3C44 58 # define C2HSYNCPOL 0x00000100 59 # define C2VSYNCPOL 0x00000200 60 #define C2VCOUNT 0x3C48 61 # define C2FIELD 0x01000000 62 #define C2DATACTL 0x3C4C 63 # define C2DITHEN 0x00000001 64 # define C2YFILTEN 0x00000002 65 # define C2CBCRFILTEN 0x00000004 66 # define C2SUBPICEN 0x00000008 67 # define C2NTSCEN 0x00000010 68 # define C2STATICKEYEN 0x00000020 69 # define C2OFFSETDIVEN 0x00000040 70 # define C2UYVYFMT 0x00000080 71 # define C2STATICKEY 0x1F000000 72 #define C2SUBPICLUT 0x3C50 73 #define C2SPICSTARTADD0 0x3C54 74 #define C2SPICSTARTADD1 0x3C58 75 76 /* Backend scaler registers */ 77 #define BESA1ORG 0x3D00 78 #define BESA2ORG 0x3D04 79 #define BESB1ORG 0x3D08 80 #define BESB2ORG 0x3D0C 81 #define BESA1CORG 0x3D10 82 #define BESA2CORG 0x3D14 83 #define BESB1CORG 0x3D18 84 #define BESB2CORG 0x3D1C 85 #define BESA1C3ORG 0x3D60 86 #define BESA2C3ORG 0x3D64 87 #define BESB1C3ORG 0x3D68 88 #define BESB2C3ORG 0x3D6C 89 90 #define BESCTL 0x3D20 91 # define BESEN 0x00000001 92 # define BESV1SRCSTP 0x00000040 93 # define BESV2SRCSTP 0x00000080 94 # define BESHFEN 0x00000400 95 # define BESVFEN 0x00000800 96 # define BESCUPS 0x00010000 97 # define BES420PL 0x00020000 98 99 #define BESGLOBCTL 0x3DC0 100 # define BESCORDER 0x00000008 101 # define BES3PLANE 0x00000020 102 # define BESUYVYFMT 0x00000040 103 # define BESPROCAMP 0x00000080 104 # define BESRGB15 0x00000100 105 # define BESRGB16 0x00000200 106 # define BESRGB32 0x00000300 107 108 #define BESHCOORD 0x3D28 109 #define BESHISCAL 0x3D30 110 #define BESHSRCEND 0x3D3C 111 #define BESHSRCLST 0x3D50 112 #define BESHSRCST 0x3D38 113 #define BESLUMACTL 0x3D40 114 #define BESPITCH 0x3D24 115 #define BESSTATUS 0x3DC4 116 #define BESV1SRCLST 0x3D54 117 #define BESV2SRCLST 0x3D58 118 #define BESV1WGHT 0x3D48 119 #define BESV2WGHT 0x3D4C 120 #define BESVCOORD 0x3D2C 121 #define BESVISCAL 0x3D34 122 123 /* DAC Registers */ 124 #define DAC_INDEX 0x3C00 125 #define DAC_DATA 0x3C0A 126 127 #define MGAREG_VCOUNT 0x1e20 128 129 /* Alpha registers */ 130 131 #define ALPHASTART 0x2C70 132 #define ALPHAXINC 0x2C74 133 #define ALPHAYINC 0x2C78 134 135 #define ALPHACTRL 0x2C7C 136 #define SRC_ZERO 0x00000000 137 #define SRC_ONE 0x00000001 138 #define SRC_DST_COLOR 0x00000002 139 #define SRC_ONE_MINUS_DST_COLOR 0x00000003 140 #define SRC_ALPHA 0x00000004 141 #define SRC_ONE_MINUS_SRC_ALPHA 0x00000005 142 #define SRC_DST_ALPHA 0x00000006 143 #define SRC_ONE_MINUS_DST_ALPHA 0x00000007 144 #define SRC_SRC_ALPHA_SATURATE 0x00000008 145 146 #define DST_ZERO 0x00000000 147 #define DST_ONE 0x00000010 148 #define DST_SRC_COLOR 0x00000020 149 #define DST_ONE_MINUS_SRC_COLOR 0x00000030 150 #define DST_SRC_ALPHA 0x00000040 151 #define DST_ONE_MINUS_SRC_ALPHA 0x00000050 152 #define DST_DST_ALPHA 0x00000060 153 #define DST_ONE_MINUS_DST_ALPHA 0x00000070 154 155 #define ALPHACHANNEL 0x00000100 156 #define VIDEOALPHA 0x00000200 157 158 #define DIFFUSEDALPHA 0x01000000 159 #define MODULATEDALPHA 0x02000000 160 161 /* Texture registers */ 162 163 #define TEXCTL 0x2C30 164 #define TEXCTL2 0x2C3C 165 #define TEXFILTER 0x2C58 166 #define TEXWIDTH 0x2C28 167 #define TEXHEIGHT 0x2C2C 168 #define TEXORG 0x2C24 169 #define TEXORG1 0x2CA4 170 #define TEXORG2 0x2CA8 171 #define TEXORG3 0x2CAC 172 #define TEXORG4 0x2CB0 173 #define TEXTRANS 0x2C34 174 #define TEXTRANSHIGH 0x2C38 175 #define TDUALSTAGE0 0x2CF8 176 #define TDUALSTAGE1 0x2CFC 177 178 #define TMR0 0x2C00 179 #define TMR1 0x2C04 180 #define TMR2 0x2C08 181 #define TMR3 0x2C0C 182 #define TMR4 0x2C10 183 #define TMR5 0x2C14 184 #define TMR6 0x2C18 185 #define TMR7 0x2C1C 186 #define TMR8 0x2C20 187 188 #define CUR_XWINDOWS 0x03 189 190 /* TEXCTL */ 191 #define TW4 0x00000000 192 #define TW8 0x00000001 193 #define TW15 0x00000002 194 #define TW16 0x00000003 195 #define TW12 0x00000004 196 197 #define TW32 0x00000006 198 #define TW8A 0x00000007 199 #define TW8AL 0x00000008 200 #define TW422 0x0000000A 201 #define TW422UYVY 0x0000000B 202 203 #define TFORMAT 0x0000000F 204 #define TPITCHLIN 0x00000100 205 #define TPITCHEXT 0x000FFE00 206 207 #define NOPERSPECTIVE 0x00200000 208 #define TAKEY 0x02000000 209 #define TAMASK 0x04000000 210 #define CLAMPUV 0x18000000 211 212 #define DECALCKEY 0x01000000 213 #define TMODULATE 0x20000000 214 #define STRANS 0x40000000 215 216 217 /* TEXTCTL2 */ 218 #define IDECAL 0x00000002 219 #define DECALDIS 0x00000004 220 #define CKSTRANSDIS 0x00000010 221 222 223 /* TEXFILTER */ 224 #define MIN_NRST 0x00000000 225 #define MIN_BILIN 0x00000002 226 #define MIN_ANISO 0x0000000D 227 #define MAG_NRST 0x00000000 228 #define MAG_BILIN 0x00000020 229 #define FILTER_ALPHA 0x00100000 230 231 /* SGN */ 232 #define SGN_BRKLEFT 0x00000100 233 234 #define DSTORG 0x2cb8 235 #define SRCORG 0x2cb4 236 237 #define MACCESS 0x1C04 238 # define PW8 0x00000000 239 # define PW16 0x00000001 240 # define PW32 0x00000002 241 # define PW24 0x00000003 242 # define ZW16 0x00000000 243 # define ZW32 0x00000008 244 # define ZW15 0x00000010 245 # define ZW24 0x00000018 246 # define BYPASS332 0x10000000 247 # define TLUTLOAD 0x20000000 248 # define NODITHER 0x40000000 249 # define DIT555 0x80000000 250 251 252 #define EXECUTE 0x100 /* or with register to execute a programmed 253 accel command */ 254 255 #define DWGCTL 0x1C00 /* Drawing control */ 256 /* opcod - Operation code */ 257 # define OP_LINE_OPEN 0x00 258 # define OP_AUTOLINE_OPEN 0x01 259 # define OP_LINE_CLOSE 0x02 260 # define OP_AUTOLINE_CLOSE 0x03 261 # define OP_TRAP 0x04 262 # define OP_TRAP_ILOAD 0x05 263 # define OP_TEXTURE_TRAP 0x06 264 # define OP_ILOAD_HIQH 0x07 265 # define OP_BITBLT 0x08 266 # define OP_ILOAD 0x09 267 # define OP_IDUMP 0x0A 268 # define OP_FBITBLT 0x0C 269 # define OP_ILOAD_SCALE 0x0D 270 # define OP_ILOAD_HIQHV 0x0E 271 # define OP_ILOAD_FILTER 0x0F 272 273 /* atype - Access type */ 274 # define ATYPE_RPL 0x00 275 # define ATYPE_RSTR 0x10 276 # define ATYPE_ZI 0x30 277 # define ATYPE_BLK 0x40 278 # define ATYPE_I 0x70 279 280 /* Flag */ 281 # define LINEAR 0x80 282 # define NOCLIP (1<<31) 283 # define TRANSC (1<<30) 284 285 /* zmode - Z drawing mode */ 286 # define ZMODE_NOZCMP 0x000 287 # define ZMODE_ZE 0x200 288 # define ZMODE_ZNE 0x300 289 # define ZMODE_ZLT 0x400 290 # define ZMODE_ZLTE 0x500 291 # define ZMODE_ZGT 0x600 292 # define ZMODE_ZGTE 0x700 293 294 /* Flags */ 295 # define SOLID 0x0800 296 # define ARZERO 0x1000 297 # define SGNZERO 0x2000 298 # define SHFTZERO 0x4000 299 300 /* bop - Boolean operation */ 301 # define BOP_CLEAR 0x00000 302 # define BOP_NOR 0x10000 303 # define BOP_COPYINV 0x30000 304 # define BOP_INVERT 0x50000 305 # define BOP_XOR 0x60000 306 # define BOP_NAND 0x70000 307 # define BOP_AND 0x80000 308 # define BOP_EQUIV 0x90000 309 # define BOP_NOOP 0xA0000 310 # define BOP_IMP 0xB0000 311 # define BOP_COPY 0xC0000 312 # define BOP_OR 0xE0000 313 # define BOP_SET 0xF0000 314 315 /* bltmod - Blit mode selection */ 316 # define BLTMOD_BMONOLEF 0x00000000 317 # define BLTMOD_BMONOWF 0x08000000 318 # define BLTMOD_BPLAN 0x02000000 319 # define BLTMOD_BFCOL 0x04000000 320 # define BLTMOD_BUYUV 0x1C000000 321 # define BLTMOD_BU32BGR 0x06000000 322 # define BLTMOD_BU32RGB 0x0E000000 323 # define BLTMOD_BU24BGR 0x16000000 324 # define BLTMOD_BU24RGB 0x1E000000 325 326 #define ZORG 0x1C0C 327 #define PAT0 0x1C10 328 #define PAT1 0x1C14 329 #define PLNWT 0x1C1C 330 #define BCOL 0x1C20 331 #define FCOL 0x1C24 332 #define SRC0 0x1C30 333 #define SRC1 0x1C34 334 #define SRC2 0x1C38 335 #define SRC3 0x1C3C 336 #define XYSTRT 0x1C40 337 #define XYEND 0x1C44 338 #define SHIFT 0x1C50 339 #define DMAPAD 0x1C54 340 #define SGN 0x1C58 341 #define LEN 0x1C5C 342 #define AR0 0x1C60 343 #define AR1 0x1C64 344 #define AR2 0x1C68 345 #define AR3 0x1C6C 346 #define AR4 0x1C70 347 #define AR5 0x1C74 348 #define AR6 0x1C78 349 #define CXBNDRY 0x1C80 350 #define FXBNDRY 0x1C84 351 #define YDSTLEN 0x1C88 352 #define PITCH 0x1C8C 353 #define YDST 0x1C90 354 #define YDSTORG 0x1C94 355 #define YTOP 0x1C98 356 #define YBOT 0x1C9C 357 #define CXLEFT 0x1CA0 358 #define CXRIGHT 0x1CA4 359 #define FXLEFT 0x1CA8 360 #define FXRIGHT 0x1CAC 361 #define XDST 0x1CB0 362 #define DR0 0x1CC0 363 #define DR2 0x1CC8 364 #define DR3 0x1CCC 365 #define DR4 0x1CD0 366 #define DR6 0x1CD8 367 #define DR7 0x1CDC 368 #define DR8 0x1CE0 369 #define WO 0x1CE4 370 #define DR10 0x1CE8 371 #define DR11 0x1CEC 372 #define DR12 0x1CF0 373 #define DR14 0x1CF8 374 #define DR15 0x1CFC 375 376 #define FIFOSTATUS 0x1E10 377 378 #define STATUS 0x1E14 379 # define DWGENGSTS 0x10000 380 # define ENDPRDMASTS 0x20000 381 382 #define IEN 0x1E1C 383 384 #define BLIT_LEFT 1 385 #define BLIT_UP 4 386 387 388 #define SDXL 0x0002 389 #define SDXR 0x0020 390 391 392 /* DAC registers */ 393 394 #define XMISCCTRL 0x1E 395 # define DACPDN 0x01 396 # define MFCSEL_MAFC 0x02 397 # define MFCSEL_PANELLINK 0x04 398 # define MFCSEL_DIS 0x06 399 # define MFCSEL_MASK 0x06 400 # define VGA8DAC 0x08 401 # define RAMCS 0x10 402 # define VDOUTSEL_MAFC12 0x00 403 # define VDOUTSEL_BYPASS656 0x40 404 # define VDOUTSEL_CRTC2RGB 0x80 405 # define VDOUTSEL_CRTC2656 0xC0 406 # define VDOUTSEL_MASK 0xE0 407 408 #define XGENIOCTRL 0x2A 409 #define XGENIODATA 0x2B 410 411 #define XKEYOPMODE 0x51 412 413 #define XCOLMSK0RED 0x52 414 #define XCOLMSK0GREEN 0x53 415 #define XCOLMSK0BLUE 0x54 416 417 #define XCOLKEY0RED 0x55 418 #define XCOLKEY0GREEN 0x56 419 #define XCOLKEY0BLUE 0x57 420 421 #define XDISPCTRL 0x8A 422 # define DAC1OUTSEL_DIS 0x00 423 # define DAC1OUTSEL_EN 0x01 424 # define DAC1OUTSEL_MASK 0x01 425 # define DAC2OUTSEL_DIS 0x00 426 # define DAC2OUTSEL_CRTC1 0x04 427 # define DAC2OUTSEL_CRTC2 0x08 428 # define DAC2OUTSEL_TVE 0x0C 429 # define DAC2OUTSEL_MASK 0x0C 430 # define PANOUTSEL_DIS 0x00 431 # define PANOUTSEL_CRTC1 0x20 432 # define PANOUTSEL_CRTC2RGB 0x40 433 # define PANOUTSEL_CRTC2656 0x60 434 # define PANOUTSEL_MASK 0x60 435 436 #define XSYNCCTRL 0x8B 437 # define DAC1HSOFF 0x01 438 # define DAC1VSOFF 0x02 439 # define DAC1HSPOL 0x04 440 # define DAC1VSPOL 0x08 441 # define DAC2HSOFF 0x10 442 # define DAC2VSOFF 0x20 443 # define DAC2HSPOL 0x40 444 # define DAC2VSPOL 0x80 445 446 #define XPWRCTRL 0xA0 447 # define DAC2PDN 0x01 448 # define VIDPLLPDN 0x02 449 # define PANPDN 0x04 450 # define RFIFOPDN 0x08 451 # define CFIFOPDN 0x10 452 453 #endif 454 455