alp.h revision 76888252
11.136Slukem/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/alp.h,v 1.6 2001/02/15 17:39:28 eich Exp $ */
21.135Slukem
31.135Slukem/* (c) Itai Nahshon */
41.135Slukem
51.135Slukem#ifndef ALP_H
61.135Slukem#define ALP_H
71.135Slukem
81.135Slukemextern ScrnInfoPtr AlpProbe(int entity);
91.135Slukemextern const OptionInfoRec *	AlpAvailableOptions(int chipid);
101.135Slukem
111.135Slukem# ifdef _ALP_PRIVATE_
121.135Slukem/* Saved registers that are not part of the core VGA */
131.135Slukem/* CRTC >= 0x19; Sequencer >= 0x05; Graphics >= 0x09; Attribute >= 0x15 */
141.135Slukem
151.135Slukemenum {
161.135Slukem	/* CR regs */
171.135Slukem	CR1A,
181.135Slukem	CR1B,
191.135Slukem	CR1D,
201.135Slukem	/* SR regs */
211.135Slukem	SR07,
221.135Slukem	SR0E,
231.135Slukem	SR12,
241.135Slukem	SR13,
251.135Slukem	SR17,
261.135Slukem	SR1E,
271.135Slukem	SR21,
281.135Slukem	SR2D,
291.135Slukem	/* GR regs */
301.135Slukem	GR17,
311.135Slukem	GR18,
321.135Slukem	/* HDR */
331.135Slukem	HDR,
341.135Slukem	/* Must be last! */
351.135Slukem	CIR_NSAVED
361.135Slukem};
371.135Slukem
381.135Slukemtypedef enum {LCD_NONE, LCD_DUAL_MONO, LCD_UNKNOWN, LCD_DSTN, LCD_TFT} LCDType;
391.135Slukem
401.135Slukemtypedef struct {
411.135Slukem	unsigned char	ExtVga[CIR_NSAVED];
421.135Slukem} AlpRegRec, *AlpRegPtr;
431.135Slukem
441.135Slukemextern Bool AlpHWCursorInit(ScreenPtr pScreen, int size);
451.135Slukemextern Bool AlpXAAInit(ScreenPtr pScreen);
461.135Slukemextern Bool AlpXAAInitMMIO(ScreenPtr pScreen);
471.135Slukemextern Bool AlpDGAInit(ScreenPtr pScreen);
481.135Slukemextern Bool AlpI2CInit(ScrnInfoPtr pScrn);
491.135Slukem
501.135Slukem/* Card-specific driver information */
511.135Slukem#define ALPPTR(p) ((AlpPtr)((p)->chip.alp))
521.135Slukem
531.135Slukemtypedef struct alpRec {
541.135Slukem	unsigned char * HWCursorBits;
551.136Slukem	unsigned char *	CursorBits;
561.136Slukem
571.135Slukem	AlpRegRec		SavedReg;
581.135Slukem	AlpRegRec		ModeReg;
591.135Slukem        LCDType                 lcdType;
601.135Slukem        int                     lcdWidth, lcdHeight;
611.135Slukem        int                 CursorWidth;
621.135Slukem        int                 CursorHeight;
631.135Slukem        int                 waitMsk;
641.135Slukem        int                 scanlineDest;
651.135Slukem        int                 scanlineCount;
661.135Slukem        int                 scanlineWidth;
671.135Slukem
681.135Slukem        int                 SubsequentColorExpandScanlineDest;
691.135Slukem        int                 SubsequentColorExpandScanlineByteWidth;
701.135Slukem        int                 SubsequentColorExpandScanlineDWordWidth;
711.135Slukem
721.135Slukem        /* Offset into framebuffer of a 8-byte scratch area for fills */
731.135Slukem        CARD32 monoPattern8x8;
741.135Slukem
751.135Slukem        Bool                autoStart;
761.135Slukem
771.135Slukem	/* MMIO Base for BitBLT operation. This is
781.135Slukem	   IOBase for 5446 and 7548, IOBase+0x100 for 5480 */
791.135Slukem	unsigned char *	    BLTBase;
801.135Slukem        CARD32              transRop;
811.135Slukem/* XXX For XF86Config based mem configuration */
821.135Slukem	CARD32			sr0f, sr17;
831.135Slukem} AlpRec, *AlpPtr;
841.135Slukem
851.135Slukem# endif /* _ALP_PRIVATE_ */
861.135Slukem#endif /* ALP_H */
871.135Slukem
881.135Slukem