0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef _STG4000REG_H
0012 #define _STG4000REG_H
0013
0014 #define DWFILL unsigned long :32
0015 #define WFILL unsigned short :16
0016
0017
0018
0019
0020
0021 #if defined(__KERNEL__)
0022 #include <asm/page.h>
0023 #include <asm/io.h>
0024 #define STG_WRITE_REG(reg,data) (writel(data,&pSTGReg->reg))
0025 #define STG_READ_REG(reg) (readl(&pSTGReg->reg))
0026 #else
0027 #define STG_WRITE_REG(reg,data) (pSTGReg->reg = data)
0028 #define STG_READ_REG(reg) (pSTGReg->reg)
0029 #endif
0030
0031 #define SET_BIT(n) (1<<(n))
0032 #define CLEAR_BIT(n) (tmp &= ~(1<<n))
0033 #define CLEAR_BITS_FRM_TO(frm, to) \
0034 {\
0035 int i; \
0036 for(i = frm; i<= to; i++) \
0037 { \
0038 tmp &= ~(1<<i); \
0039 } \
0040 }
0041
0042 #define CLEAR_BIT_2(n) (usTemp &= ~(1<<n))
0043 #define CLEAR_BITS_FRM_TO_2(frm, to) \
0044 {\
0045 int i; \
0046 for(i = frm; i<= to; i++) \
0047 { \
0048 usTemp &= ~(1<<i); \
0049 } \
0050 }
0051
0052
0053 typedef enum _LUT_USES {
0054 NO_LUT = 0, RESERVED, GRAPHICS, OVERLAY
0055 } LUT_USES;
0056
0057
0058 typedef enum _PIXEL_FORMAT {
0059 _8BPP = 0, _15BPP, _16BPP, _24BPP, _32BPP
0060 } PIXEL_FORMAT;
0061
0062
0063 typedef enum _BLEND_MODE {
0064 GRAPHICS_MODE = 0, COLOR_KEY, PER_PIXEL_ALPHA, GLOBAL_ALPHA,
0065 CK_PIXEL_ALPHA, CK_GLOBAL_ALPHA
0066 } OVRL_BLEND_MODE;
0067
0068
0069 typedef enum _OVRL_PIX_FORMAT {
0070 UYVY, VYUY, YUYV, YVYU
0071 } OVRL_PIX_FORMAT;
0072
0073
0074 typedef struct {
0075
0076 volatile u32 Thread0Enable;
0077 volatile u32 Thread1Enable;
0078 volatile u32 Thread0Recover;
0079 volatile u32 Thread1Recover;
0080 volatile u32 Thread0Step;
0081 volatile u32 Thread1Step;
0082 volatile u32 VideoInStatus;
0083 volatile u32 Core2InSignStart;
0084 volatile u32 Core1ResetVector;
0085 volatile u32 Core1ROMOffset;
0086 volatile u32 Core1ArbiterPriority;
0087 volatile u32 VideoInControl;
0088 volatile u32 VideoInReg0CtrlA;
0089 volatile u32 VideoInReg0CtrlB;
0090 volatile u32 VideoInReg1CtrlA;
0091 volatile u32 VideoInReg1CtrlB;
0092 volatile u32 Thread0Kicker;
0093 volatile u32 Core2InputSign;
0094 volatile u32 Thread0ProgCtr;
0095 volatile u32 Thread1ProgCtr;
0096 volatile u32 Thread1Kicker;
0097 volatile u32 GPRegister1;
0098 volatile u32 GPRegister2;
0099 volatile u32 GPRegister3;
0100 volatile u32 GPRegister4;
0101 volatile u32 SerialIntA;
0102
0103 volatile u32 Fill0[6];
0104
0105 volatile u32 SoftwareReset;
0106 volatile u32 SerialIntB;
0107
0108 volatile u32 Fill1[37];
0109
0110 volatile u32 ROMELQV;
0111 volatile u32 WLWH;
0112 volatile u32 ROMELWL;
0113
0114 volatile u32 dwFill_1;
0115
0116 volatile u32 IntStatus;
0117 volatile u32 IntMask;
0118 volatile u32 IntClear;
0119
0120 volatile u32 Fill2[6];
0121
0122 volatile u32 ROMGPIOA;
0123 volatile u32 ROMGPIOB;
0124 volatile u32 ROMGPIOC;
0125 volatile u32 ROMGPIOD;
0126
0127 volatile u32 Fill3[2];
0128
0129 volatile u32 AGPIntID;
0130 volatile u32 AGPIntClassCode;
0131 volatile u32 AGPIntBIST;
0132 volatile u32 AGPIntSSID;
0133 volatile u32 AGPIntPMCSR;
0134 volatile u32 VGAFrameBufBase;
0135 volatile u32 VGANotify;
0136 volatile u32 DACPLLMode;
0137 volatile u32 Core1VideoClockDiv;
0138 volatile u32 AGPIntStat;
0139
0140
0141
0142
0143
0144
0145
0146
0147 volatile u32 Fill4[412];
0148
0149 volatile u32 TACtrlStreamBase;
0150 volatile u32 TAObjDataBase;
0151 volatile u32 TAPtrDataBase;
0152 volatile u32 TARegionDataBase;
0153 volatile u32 TATailPtrBase;
0154 volatile u32 TAPtrRegionSize;
0155 volatile u32 TAConfiguration;
0156 volatile u32 TAObjDataStartAddr;
0157 volatile u32 TAObjDataEndAddr;
0158 volatile u32 TAXScreenClip;
0159 volatile u32 TAYScreenClip;
0160 volatile u32 TARHWClamp;
0161 volatile u32 TARHWCompare;
0162 volatile u32 TAStart;
0163 volatile u32 TAObjReStart;
0164 volatile u32 TAPtrReStart;
0165 volatile u32 TAStatus1;
0166 volatile u32 TAStatus2;
0167 volatile u32 TAIntStatus;
0168 volatile u32 TAIntMask;
0169
0170 volatile u32 Fill5[235];
0171
0172 volatile u32 TextureAddrThresh;
0173 volatile u32 Core1Translation;
0174 volatile u32 TextureAddrReMap;
0175 volatile u32 RenderOutAGPRemap;
0176 volatile u32 _3DRegionReadTrans;
0177 volatile u32 _3DPtrReadTrans;
0178 volatile u32 _3DParamReadTrans;
0179 volatile u32 _3DRegionReadThresh;
0180 volatile u32 _3DPtrReadThresh;
0181 volatile u32 _3DParamReadThresh;
0182 volatile u32 _3DRegionReadAGPRemap;
0183 volatile u32 _3DPtrReadAGPRemap;
0184 volatile u32 _3DParamReadAGPRemap;
0185 volatile u32 ZBufferAGPRemap;
0186 volatile u32 TAIndexAGPRemap;
0187 volatile u32 TAVertexAGPRemap;
0188 volatile u32 TAUVAddrTrans;
0189 volatile u32 TATailPtrCacheTrans;
0190 volatile u32 TAParamWriteTrans;
0191 volatile u32 TAPtrWriteTrans;
0192 volatile u32 TAParamWriteThresh;
0193 volatile u32 TAPtrWriteThresh;
0194 volatile u32 TATailPtrCacheAGPRe;
0195 volatile u32 TAParamWriteAGPRe;
0196 volatile u32 TAPtrWriteAGPRe;
0197 volatile u32 SDRAMArbiterConf;
0198 volatile u32 SDRAMConf0;
0199 volatile u32 SDRAMConf1;
0200 volatile u32 SDRAMConf2;
0201 volatile u32 SDRAMRefresh;
0202 volatile u32 SDRAMPowerStat;
0203
0204 volatile u32 Fill6[2];
0205
0206 volatile u32 RAMBistData;
0207 volatile u32 RAMBistCtrl;
0208 volatile u32 FIFOBistKey;
0209 volatile u32 RAMBistResult;
0210 volatile u32 FIFOBistResult;
0211
0212
0213
0214
0215
0216
0217 volatile u32 Fill7[16];
0218
0219 volatile u32 SDRAMAddrSign;
0220 volatile u32 SDRAMDataSign;
0221 volatile u32 SDRAMSignConf;
0222
0223
0224 volatile u32 dwFill_2;
0225
0226 volatile u32 ISPSignature;
0227
0228 volatile u32 Fill8[454];
0229
0230 volatile u32 DACPrimAddress;
0231 volatile u32 DACPrimSize;
0232 volatile u32 DACCursorAddr;
0233 volatile u32 DACCursorCtrl;
0234 volatile u32 DACOverlayAddr;
0235 volatile u32 DACOverlayUAddr;
0236 volatile u32 DACOverlayVAddr;
0237 volatile u32 DACOverlaySize;
0238 volatile u32 DACOverlayVtDec;
0239
0240 volatile u32 Fill9[9];
0241
0242 volatile u32 DACVerticalScal;
0243 volatile u32 DACPixelFormat;
0244 volatile u32 DACHorizontalScal;
0245 volatile u32 DACVidWinStart;
0246 volatile u32 DACVidWinEnd;
0247 volatile u32 DACBlendCtrl;
0248 volatile u32 DACHorTim1;
0249 volatile u32 DACHorTim2;
0250 volatile u32 DACHorTim3;
0251 volatile u32 DACVerTim1;
0252 volatile u32 DACVerTim2;
0253 volatile u32 DACVerTim3;
0254 volatile u32 DACBorderColor;
0255 volatile u32 DACSyncCtrl;
0256 volatile u32 DACStreamCtrl;
0257 volatile u32 DACLUTAddress;
0258 volatile u32 DACLUTData;
0259 volatile u32 DACBurstCtrl;
0260 volatile u32 DACCrcTrigger;
0261 volatile u32 DACCrcDone;
0262 volatile u32 DACCrcResult1;
0263 volatile u32 DACCrcResult2;
0264 volatile u32 DACLinecount;
0265
0266 volatile u32 Fill10[151];
0267
0268 volatile u32 DigVidPortCtrl;
0269 volatile u32 DigVidPortStat;
0270
0271
0272
0273
0274
0275
0276 volatile u32 Fill11[1598];
0277
0278
0279 volatile u32 Fill_3;
0280
0281 } STG4000REG;
0282
0283 #endif