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