#ifndef _TGA_H_
#define _TGA_H_
#include "xaa.h"
#include "xf86RamDac.h"
typedef struct {
unsigned long tgaRegs[0x100];
} TGARegRec, *TGARegPtr;
#define TGAPTR(p) ((TGAPtr)((p)->driverPrivate))
typedef struct {
pciVideoPtr PciInfo;
PCITAG PciTag;
int Chipset;
RamDacHelperRecPtr RamDac;
int ChipRev;
int HwBpp;
int BppShift;
int pprod;
CARD32 CardAddress;
CARD32 IOAddress;
CARD32 FbAddress;
unsigned char * FbBase;
unsigned char * IOBase;
unsigned char * ClkBase;
unsigned char * DACBase;
unsigned char * HACKBase;
long FbMapSize;
unsigned long regOffset;
Bool NoAccel;
Bool NoXaaPolySegment;
Bool Dac6Bit;
Bool SyncOnGreen;
Bool HWCursor;
Bool UsePCIRetry;
int MinClock;
int MaxClock;
TGARegRec SavedReg;
TGARegRec ModeReg;
CARD32 AccelFlags;
RamDacRecPtr RamDacRec;
XAAInfoRecPtr AccelInfoRec;
xf86CursorInfoPtr CursorInfoRec;
CloseScreenProcPtr CloseScreen;
int CardType;
unsigned char Bt463modeReg[59];
unsigned char Bt463saveReg[59];
unsigned char Ibm561modeReg[59];
unsigned char Ibm561saveReg[59];
EntityInfoPtr pEnt;
CARD32 *buffers[1];
unsigned int current_rop;
unsigned int current_planemask;
int transparent_pattern_p;
int blitdir;
int block_or_opaque_p;
int ce_height;
int ce_width;
int ce_x;
int ce_y;
int ce_skipleft;
int line_pattern_length;
CARD16 line_pattern;
int Bpp;
int depthflag;
OptionInfoPtr Options;
} TGARec, *TGAPtr;
struct monitor_data {
unsigned int max_rows;
unsigned int max_cols;
unsigned int pixel_freq;
unsigned int refresh_rate;
unsigned int vert_slines;
unsigned int vert_fp;
unsigned int vert_sync;
unsigned int vert_bp;
unsigned int horz_pix;
unsigned int horz_fp;
unsigned int horz_sync;
unsigned int horz_bp;
unsigned int vco_div;
unsigned int ref_div;
unsigned int vco_pre;
unsigned int clk_div;
unsigned int vco_out_div;
unsigned int clk_out_en;
unsigned int clk_out_enX;
unsigned int res0;
unsigned int clk_sel;
unsigned int res1;
unsigned int ibm561_vco_div;
unsigned int ibm561_ref;
};
extern struct monitor_data tga_crystal_table[];
extern int tga_crystal_table_entries;
extern struct monitor_data *tga_c_table;
void DEC21030Restore(ScrnInfoPtr pScrn,
TGARegPtr tgaReg);
void DEC21030Save(ScrnInfoPtr pScrn, TGARegPtr tgaReg);
Bool DEC21030Init(ScrnInfoPtr pScrn, DisplayModePtr mode);
void write_av9110(ScrnInfoPtr pScrn, unsigned int *);
void TGA2SetupMode(ScrnInfoPtr pScrn);
void Ibm561Init(TGAPtr pTga);
void Bt463Init(TGAPtr pTga);
Bool DEC21030AccelInit(ScreenPtr pScreen);
void tgaBTOutIndReg(ScrnInfoPtr pScrn,
CARD32 reg, unsigned char mask, unsigned char data);
unsigned char tgaBTInIndReg(ScrnInfoPtr pScrn, CARD32 reg);
void tgaBTWriteAddress(ScrnInfoPtr pScrn, CARD32 index);
void tgaBTReadAddress(ScrnInfoPtr pScrn, CARD32 index);
void tgaBTWriteData(ScrnInfoPtr pScrn, unsigned char data);
unsigned char tgaBTReadData(ScrnInfoPtr pScrn);
void tga2BTOutIndReg(ScrnInfoPtr pScrn,
CARD32 reg, unsigned char mask, unsigned char data);
unsigned char tga2BTInIndReg(ScrnInfoPtr pScrn, CARD32 reg);
void tga2BTWriteAddress(ScrnInfoPtr pScrn, CARD32 index);
void tga2BTReadAddress(ScrnInfoPtr pScrn, CARD32 index);
void tga2BTWriteData(ScrnInfoPtr pScrn, unsigned char data);
unsigned char tga2BTReadData(ScrnInfoPtr pScrn);
void BT463ramdacSave(ScrnInfoPtr pScrn, unsigned char *data);
void BT463ramdacRestore(ScrnInfoPtr pScrn, unsigned char *data);
void IBM561ramdacSave(ScrnInfoPtr pScrn, unsigned char *data);
void IBM561ramdacHWInit(ScrnInfoPtr pScrn);
void IBM561ramdacRestore(ScrnInfoPtr pScrn, unsigned char *data);
unsigned char IBM561ReadReg(ScrnInfoPtr pScrn, CARD32 reg);
void IBM561WriteReg(ScrnInfoPtr pScrn, CARD32 reg, unsigned char data);
Bool TGAHWCursorInit(ScreenPtr pScreen);
void TGAPolySegment(DrawablePtr pDrawable, GCPtr pGC, int nseg,
xSegment *pSeg);
void TGAPolyLines(DrawablePtr pDrawable, GCPtr pGC, int mode, int npt,
DDXPointPtr pptInit);
void TGAPolySegmentDashed(DrawablePtr pDrawable, GCPtr pGC, int nseg,
xSegment *pSeg);
void TGAPolyLinesDashed(DrawablePtr pDrawable, GCPtr pGC, int mode, int npt,
DDXPointPtr pptInit);
void
TGASetupForSolidLine(ScrnInfoPtr pScrn, int color, int rop,
unsigned int planemask);
void
TGASubsequentSolidHorVertLine(ScrnInfoPtr pScrn, int x, int y, int len,
int dir);
void
TGASubsequentSolidLine(ScrnInfoPtr pScrn, int x1, int y1, int x2, int y2,
int octant, int flags);
void
TGASetupForClippedLine(ScrnInfoPtr pScrn, int x1, int y1, int x2, int y2,
int octant);
void
TGASubsequentClippedSolidLine(ScrnInfoPtr pScrn, int x1, int y1, int len,
int err);
void
TGASetupForDashedLine(ScrnInfoPtr pScrn, int fg, int bg, int rop,
unsigned int planemask, int length,
unsigned char *pattern);
void
TGASubsequentDashedLine(ScrnInfoPtr pScrn, int x1, int y1, int x2, int y2,
int octant, int flags, int phase);
void
TGASubsequentClippedDashedLine(ScrnInfoPtr pScrn, int x1, int y1, int len,
int err, int phase);
#endif