ark.h revision 943345d3
1/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ark/ark.h,v 1.2 2001/01/29 15:15:44 keithp Exp $ */
2/*
3 * ark
4 */
5
6#ifndef _ARK_H
7#define _ARK_H
8
9#include "xf86.h"
10#include "xf86Pci.h"
11#include "xf86PciInfo.h"
12#include "xaa.h"
13#include "vgaHW.h"
14
15typedef struct _ARKRegRec {
16	unsigned char		sr10, sr11, sr12, sr13, sr14,
17				sr15, sr16, sr17, sr18, sr20,
18				sr21, sr22, sr23, sr24, sr25,
19				sr26, sr27, sr28, sr29, sr2a,
20				sr2b;
21	unsigned char		sr1c, sr1d;
22	unsigned char		cr40, cr41, cr42, cr44, cr46;
23	unsigned char		dac_command;
24	unsigned char		stg_17xx[3];
25	unsigned char		gendac[6];
26} ARKRegRec, *ARKRegPtr;
27
28
29typedef struct _ARKRec {
30	pciVideoPtr		PciInfo;
31	PCITAG			PciTag;
32	EntityInfoPtr		pEnt;
33	CARD32			IOAddress;
34	CARD32			FBAddress;
35	unsigned char *		FBBase;
36	unsigned char *		MMIOBase;
37	unsigned long		videoRam;
38	OptionInfoPtr		Options;
39	unsigned int		Flags;
40	Bool			NoAccel;
41	CARD32			Bus;
42	XAAInfoRecPtr		pXAA;
43	int			Chipset, ChipRev;
44	int			clock_mult;
45	int			dac_width;
46	int			multiplex_threshold;
47	int			ramdac;
48	ARKRegRec		SavedRegs;	/* original mode */
49	ARKRegRec		ModeRegs;	/* current mode */
50	Bool			(*CloseScreen)(int, ScreenPtr);
51} ARKRec, *ARKPtr;
52
53
54#define ARKPTR(p)	((ARKPtr)((p)->driverPrivate))
55
56
57#define DRIVER_NAME	"ark"
58#define DRIVER_VERSION	"0.6.0"
59#define VERSION_MAJOR	0
60#define VERSION_MINOR	6
61#define PATCHLEVEL	0
62#define ARK_VERSION	((VERSION_MAJOR << 24) | \
63			 (VERSION_MINOR << 16) | \
64			  PATCHLEVEL)
65
66#define	ZOOMDAC		0x404
67#define ATT490		0x101
68
69Bool ARKAccelInit(ScreenPtr pScreen);
70
71#define rdinx(port, ind)	(outb((port), (ind)), inb((port) + 1))
72#define wrinx(port, ind, val)						\
73    do {								\
74	outb((port), (ind));  outb((port) + 1, (val));			\
75    } while(0)
76#define modinx(port, ind, mask, bits)					\
77    do {								\
78	unsigned char tmp;						\
79	tmp = (rdinx((port), (ind)) & ~(mask)) | ((bits) & (mask));	\
80	wrinx((port), (ind), tmp);					\
81    } while(0)
82
83#endif /* _ARK_H */
84