diff options
author | Kaleb Keithley <kaleb@freedesktop.org> | 2003-11-14 16:48:55 +0000 |
---|---|---|
committer | Kaleb Keithley <kaleb@freedesktop.org> | 2003-11-14 16:48:55 +0000 |
commit | 97c9ec2c1201ec09c359f92817033281045c537e (patch) | |
tree | 1c5fd291eed7533af96fab9525fcb7cc75eb2884 /src/lg.h |
Initial revisionXORG-STABLE
Diffstat (limited to 'src/lg.h')
-rw-r--r-- | src/lg.h | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/src/lg.h b/src/lg.h new file mode 100644 index 0000000..9d91053 --- /dev/null +++ b/src/lg.h @@ -0,0 +1,110 @@ +/* + * Common strutures and function for CL-GD546x -- The Laguna family + * + * lg.h + * + * (c) 1998 Corin Anderson. + * corina@the4cs.com + * Tukwila, WA + * + * Inspired by cir.h + */ + +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/lg.h,v 1.12 2001/05/04 19:05:36 dawes Exp $ */ + +#ifndef LG_H +#define LG_H +#define LG_DEBUG + +extern ScrnInfoPtr LgProbe(int entity); +extern const OptionInfoRec * LgAvailableOptions(int chipid); + +# ifdef _LG_PRIVATE_ + +/* Saved registers that are not part of the core VGA */ +/* CRTC >= 0x19; Sequencer >= 0x05; Graphics >= 0x09; Attribute >= 0x15 */ + /* CR regs */ +enum { + /* CR regs */ + CR1A, + CR1B, + CR1D, + CR1E, + /* SR regs */ + SR07, + SR0E, + SR12, + SR13, + SR1E, + /* Must be last! */ + LG_LAST_REG +}; + +#undef FORMAT + +typedef struct { + unsigned char ExtVga[LG_LAST_REG]; + + /* Laguna regs */ + CARD8 TILE, BCLK; + CARD16 FORMAT, DTTC, TileCtrl, CONTROL; + CARD32 VSC; +} LgRegRec, *LgRegPtr; + +typedef struct { + int tilesPerLine; /* Number of tiles per line */ + int pitch; /* Display pitch, in bytes */ + int width; /* Tile width. 0 = 128 byte 1 = 256 byte */ +} LgLineDataRec, *LgLineDataPtr; + + +/* lg_driver.c */ +extern LgLineDataRec LgLineData[]; + +/* lg_xaa.c */ +extern Bool LgXAAInit(ScreenPtr pScreen); + +/* lg_hwcurs.c */ +extern Bool LgHWCursorInit(ScreenPtr pScreen); +extern void LgHideCursor(ScrnInfoPtr pScrn); +extern void LgShowCursor(ScrnInfoPtr pScrn); + +/* lg_i2c.c */ +extern Bool LgI2CInit(ScrnInfoPtr pScrn); + +#define memrb(off) MMIO_IN8(pCir->IOBase,off) +#define memrw(off) MMIO_IN16(pCir->IOBase,off) +#define memrl(off) MMIO_IN32(pCir->IOBase,off) +#define memwb(off,val) MMIO_OUT8(pCir->IOBase,off,val) +#define memww(off,val) MMIO_OUT16(pCir->IOBase,off,val) +#define memwl(off,val) MMIO_OUT32(pCir->IOBase,off,val) + +/* Card-specific driver information */ +#define LGPTR(p) ((LgPtr)((p)->chip.lg)) + +typedef struct lgRec { + CARD32 HWCursorAddr; + int HWCursorImageX; + int HWCursorImageY; + int HWCursorTileWidth; + int HWCursorTileHeight; + + int lineDataIndex; + + int memInterleave; + + LgRegRec SavedReg; + LgRegRec ModeReg; + + CARD32 oldBitmask; + Bool blitTransparent; + int blitYDir; +} LgRec, *LgPtr; + +# endif /* _LG_PRIVATE_ */ +#endif /* LG_H */ + + + + + |