1/* (c) Itai Nahshon */
2
3#ifndef ALP_H
4#define ALP_H
5
6extern ScrnInfoPtr AlpProbe(int entity);
7extern const OptionInfoRec *	AlpAvailableOptions(int chipid);
8
9# ifdef _ALP_PRIVATE_
10/* Saved registers that are not part of the core VGA */
11/* CRTC >= 0x19; Sequencer >= 0x05; Graphics >= 0x09; Attribute >= 0x15 */
12
13enum {
14	/* CR regs */
15	CR1A,
16	CR1B,
17	CR1D,
18	/* SR regs */
19	SR07,
20	SR0E,
21	SR12,
22	SR13,
23	SR17,
24	SR1E,
25	SR21,
26	SR2D,
27	/* GR regs */
28	GR17,
29	GR18,
30	/* HDR */
31	HDR,
32	/* Must be last! */
33	CIR_NSAVED
34};
35
36typedef enum {LCD_NONE, LCD_DUAL_MONO, LCD_UNKNOWN, LCD_DSTN, LCD_TFT} LCDType;
37
38typedef struct {
39	unsigned char	ExtVga[CIR_NSAVED];
40} AlpRegRec, *AlpRegPtr;
41
42extern Bool AlpHWCursorInit(ScreenPtr pScreen, int size);
43#ifdef HAVE_XAA_H
44extern Bool AlpXAAInit(ScreenPtr pScreen);
45extern Bool AlpXAAInitMMIO(ScreenPtr pScreen);
46#endif
47extern Bool AlpDGAInit(ScreenPtr pScreen);
48extern Bool AlpI2CInit(ScrnInfoPtr pScrn);
49
50/* Card-specific driver information */
51#define ALPPTR(p) ((AlpPtr)((p)->chip.alp))
52
53typedef struct alpRec {
54	unsigned char * HWCursorBits;
55	unsigned char *	CursorBits;
56
57	AlpRegRec		SavedReg;
58	AlpRegRec		ModeReg;
59        LCDType                 lcdType;
60        int                     lcdWidth, lcdHeight;
61        int                 CursorWidth;
62        int                 CursorHeight;
63        int                 waitMsk;
64        int                 scanlineDest;
65        int                 scanlineCount;
66        int                 scanlineWidth;
67
68        int                 SubsequentColorExpandScanlineDest;
69        int                 SubsequentColorExpandScanlineByteWidth;
70        int                 SubsequentColorExpandScanlineDWordWidth;
71
72        /* Offset into framebuffer of a 8-byte scratch area for fills */
73        CARD32 monoPattern8x8;
74
75        Bool                autoStart;
76
77	/* MMIO Base for BitBLT operation. This is
78	   IOBase for 5446 and 7548, IOBase+0x100 for 5480 */
79	unsigned char *	    BLTBase;
80        CARD32              transRop;
81/* XXX For XF86Config based mem configuration */
82	CARD32			sr0f, sr17;
83} AlpRec, *AlpPtr;
84
85# endif /* _ALP_PRIVATE_ */
86#endif /* ALP_H */
87
88