lg.h revision 76888252
176888252Smrg/* 276888252Smrg * Common strutures and function for CL-GD546x -- The Laguna family 376888252Smrg * 476888252Smrg * lg.h 576888252Smrg * 676888252Smrg * (c) 1998 Corin Anderson. 776888252Smrg * corina@the4cs.com 876888252Smrg * Tukwila, WA 976888252Smrg * 1076888252Smrg * Inspired by cir.h 1176888252Smrg */ 1276888252Smrg 1376888252Smrg/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/lg.h,v 1.11 2000/12/06 15:35:16 eich Exp $ */ 1476888252Smrg 1576888252Smrg#ifndef LG_H 1676888252Smrg#define LG_H 1776888252Smrg#define LG_DEBUG 1876888252Smrg 1976888252Smrgextern ScrnInfoPtr LgProbe(int entity); 2076888252Smrgextern const OptionInfoRec * LgAvailableOptions(int chipid); 2176888252Smrg 2276888252Smrg# ifdef _LG_PRIVATE_ 2376888252Smrg 2476888252Smrg/* Saved registers that are not part of the core VGA */ 2576888252Smrg/* CRTC >= 0x19; Sequencer >= 0x05; Graphics >= 0x09; Attribute >= 0x15 */ 2676888252Smrg /* CR regs */ 2776888252Smrgenum { 2876888252Smrg /* CR regs */ 2976888252Smrg CR1A, 3076888252Smrg CR1B, 3176888252Smrg CR1D, 3276888252Smrg CR1E, 3376888252Smrg /* SR regs */ 3476888252Smrg SR07, 3576888252Smrg SR0E, 3676888252Smrg SR12, 3776888252Smrg SR13, 3876888252Smrg SR1E, 3976888252Smrg /* Must be last! */ 4076888252Smrg LG_LAST_REG 4176888252Smrg}; 4276888252Smrg 4376888252Smrg#undef FORMAT 4476888252Smrg 4576888252Smrgtypedef struct { 4676888252Smrg unsigned char ExtVga[LG_LAST_REG]; 4776888252Smrg 4876888252Smrg /* Laguna regs */ 4976888252Smrg CARD8 TILE, BCLK; 5076888252Smrg CARD16 FORMAT, DTTC, TileCtrl, CONTROL; 5176888252Smrg CARD32 VSC; 5276888252Smrg} LgRegRec, *LgRegPtr; 5376888252Smrg 5476888252Smrgtypedef struct { 5576888252Smrg int tilesPerLine; /* Number of tiles per line */ 5676888252Smrg int pitch; /* Display pitch, in bytes */ 5776888252Smrg int width; /* Tile width. 0 = 128 byte 1 = 256 byte */ 5876888252Smrg} LgLineDataRec, *LgLineDataPtr; 5976888252Smrg 6076888252Smrg 6176888252Smrg/* lg_driver.c */ 6276888252Smrgextern LgLineDataRec LgLineData[]; 6376888252Smrg 6476888252Smrg/* lg_xaa.c */ 6576888252Smrgextern Bool LgXAAInit(ScreenPtr pScreen); 6676888252Smrg 6776888252Smrg/* lg_hwcurs.c */ 6876888252Smrgextern Bool LgHWCursorInit(ScreenPtr pScreen); 6976888252Smrgextern void LgHideCursor(ScrnInfoPtr pScrn); 7076888252Smrgextern void LgShowCursor(ScrnInfoPtr pScrn); 7176888252Smrg 7276888252Smrg/* lg_i2c.c */ 7376888252Smrgextern Bool LgI2CInit(ScrnInfoPtr pScrn); 7476888252Smrg 7576888252Smrg#define memrb(off) MMIO_IN8(pCir->IOBase,off) 7676888252Smrg#define memrw(off) MMIO_IN16(pCir->IOBase,off) 7776888252Smrg#define memrl(off) MMIO_IN32(pCir->IOBase,off) 7876888252Smrg#define memwb(off,val) MMIO_OUT8(pCir->IOBase,off,val) 7976888252Smrg#define memww(off,val) MMIO_OUT16(pCir->IOBase,off,val) 8076888252Smrg#define memwl(off,val) MMIO_OUT32(pCir->IOBase,off,val) 8176888252Smrg 8276888252Smrg/* Card-specific driver information */ 8376888252Smrg#define LGPTR(p) ((LgPtr)((p)->chip.lg)) 8476888252Smrg 8576888252Smrgtypedef struct lgRec { 8676888252Smrg CARD32 HWCursorAddr; 8776888252Smrg int HWCursorImageX; 8876888252Smrg int HWCursorImageY; 8976888252Smrg int HWCursorTileWidth; 9076888252Smrg int HWCursorTileHeight; 9176888252Smrg 9276888252Smrg int lineDataIndex; 9376888252Smrg 9476888252Smrg int memInterleave; 9576888252Smrg 9676888252Smrg LgRegRec SavedReg; 9776888252Smrg LgRegRec ModeReg; 9876888252Smrg 9976888252Smrg CARD32 oldBitmask; 10076888252Smrg Bool blitTransparent; 10176888252Smrg int blitYDir; 10276888252Smrg} LgRec, *LgPtr; 10376888252Smrg 10476888252Smrg# endif /* _LG_PRIVATE_ */ 10576888252Smrg#endif /* LG_H */ 10676888252Smrg 10776888252Smrg 10876888252Smrg 10976888252Smrg 11076888252Smrg 111