/* * Number Nine I128 functions * * Copyright 1996 The XFree86 Project, Inc. * * Author * Robin Cutshaw * robin@XFree86.Org */ #ifndef I128_H #define I128_H #include "i128pcirename.h" #include "compiler.h" #ifdef HAVE_XAA_H #include "xaa.h" #endif #include "exa.h" #include "xf86Cursor.h" #include "vgaHW.h" #include "colormapst.h" #include "xf86DDC.h" #include "i128reg.h" #include "compat-api.h" struct source_format { int render_format; int i128_format; int swap_flags; int ignore_alpha; }; /* Card-specific driver information */ #define I128PTR(p) ((I128Ptr)((p)->driverPrivate)) #define PCI_VENDOR_NUMNINE 0x105D #define PCI_CHIP_I128 0x2309 #define PCI_CHIP_I128_2 0x2339 #define PCI_CHIP_I128_T2R 0x493D #define PCI_CHIP_I128_T2R4 0x5348 typedef struct { EntityInfoPtr pEnt; pciVideoPtr PciInfo; #ifndef XSERVER_LIBPCIACCESS PCITAG PciTag; xf86AccessRec Access; #endif int Chipset; int ChipRev; Bool Primary; /* Ramdac specific */ int RamdacType; Bool DAC8Bit; Bool DACSyncOnGreen; int hotX; int hotY; Bool HWCursor; Bool BlockCursor; Bool ReloadCursor; Bool CursorNeedsInit; int CursorStartX; int CursorStartY; int CursorLines; int AdjustCursorXPos; int CursGeneration; /* layout specific */ int bitsPerPixel; int depth; rgb weight; int displayWidth; int displayOffset; DisplayModePtr mode; /* accel specific */ CARD32 buf_ctrl; CARD32 blitdir; CARD32 planemask; CARD32 cmd; CARD32 rop; /* XXX XAA only */ CARD32 clptl; CARD32 clpbr; CARD32 sorg; CARD32 sptch; CARD32 dorg; CARD32 dptch; CARD32 wh; CARD32 torg; CARD32 tptch; CARD32 tex_ctl; CARD32 threedctl; CARD32 acntrl; struct source_format *source; /* struct dest_format *dest; */ Bool NoAccel; Bool exa; Bool FlatPanel; Bool DoubleScan; Bool ShowCache; Bool ModeSwitched; Bool Debug; unsigned char *MemoryPtr; int MemorySize; int MemoryType; volatile struct i128mem mem; struct i128io io; I128RegRec RegRec; Bool StateSaved; Bool Initialized; Bool FontsSaved; Bool LUTSaved; Bool InitCursorFlag; LUTENTRY lutorig[256]; LUTENTRY lutcur[256]; int HDisplay; int maxClock; int minClock; CloseScreenProcPtr CloseScreen; #ifdef HAVE_XAA_H XAAInfoRecPtr XaaInfoRec; #endif ExaDriverPtr ExaDriver; xf86CursorInfoPtr CursorInfoRec; I2CBusPtr I2C; Bool DGAactive; int DGAViewportStatus; int numDGAModes; DGAModePtr DGAModes; Bool (*ProgramDAC)(ScrnInfoPtr, DisplayModePtr); unsigned int (*ddc1Read)(ScrnInfoPtr); Bool (*i2cInit)(ScrnInfoPtr); OptionInfoPtr Options; } I128Rec, *I128Ptr; /* Prototypes */ void I128AdjustFrame(ADJUST_FRAME_ARGS_DECL); Bool I128SwitchMode(SWITCH_MODE_ARGS_DECL); Bool I128HWCursorInit(ScreenPtr pScreen); Bool I128XaaInit(ScreenPtr pScreen); Bool I128ExaInit(ScreenPtr pScreen); void I128EngineDone(ScrnInfoPtr pScrn); Bool I128Init(ScrnInfoPtr pScrn, DisplayModePtr mode); Bool I128DGAInit(ScreenPtr pScreen); void I128LoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors, VisualPtr pVisual); void I128SaveState(ScrnInfoPtr pScrn); void I128RestoreState(ScrnInfoPtr pScrn); void I128InitLUT(I128Ptr pI128); Bool I128RestoreCursor(ScrnInfoPtr pScrn); Bool I128RepositionCursor(ScrnInfoPtr pScrn); Bool I128IBMHWCursorInit(ScrnInfoPtr pScrn); Bool I128TIHWCursorInit(ScrnInfoPtr pScrn); Bool I128ProgramTi3025(ScrnInfoPtr pScrn, DisplayModePtr mode); Bool I128ProgramIBMRGB(ScrnInfoPtr pScrn, DisplayModePtr mode); Bool I128ProgramSilverHammer(ScrnInfoPtr pScrn, DisplayModePtr mode); /* void I128DumpBaseRegisters(ScrnInfoPtr pScrn); */ void I128DumpActiveRegisters(ScrnInfoPtr pScrn); /* void I128DumpIBMDACRegisters(ScrnInfoPtr pScrn, volatile CARD32 *vrbg); */ #endif