ark.h revision 943345d3
1943345d3Smrg/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ark/ark.h,v 1.2 2001/01/29 15:15:44 keithp Exp $ */
2943345d3Smrg/*
3943345d3Smrg * ark
4943345d3Smrg */
5943345d3Smrg
6943345d3Smrg#ifndef _ARK_H
7943345d3Smrg#define _ARK_H
8943345d3Smrg
9943345d3Smrg#include "xf86.h"
10943345d3Smrg#include "xf86Pci.h"
11943345d3Smrg#include "xf86PciInfo.h"
12943345d3Smrg#include "xaa.h"
13943345d3Smrg#include "vgaHW.h"
14943345d3Smrg
15943345d3Smrgtypedef struct _ARKRegRec {
16943345d3Smrg	unsigned char		sr10, sr11, sr12, sr13, sr14,
17943345d3Smrg				sr15, sr16, sr17, sr18, sr20,
18943345d3Smrg				sr21, sr22, sr23, sr24, sr25,
19943345d3Smrg				sr26, sr27, sr28, sr29, sr2a,
20943345d3Smrg				sr2b;
21943345d3Smrg	unsigned char		sr1c, sr1d;
22943345d3Smrg	unsigned char		cr40, cr41, cr42, cr44, cr46;
23943345d3Smrg	unsigned char		dac_command;
24943345d3Smrg	unsigned char		stg_17xx[3];
25943345d3Smrg	unsigned char		gendac[6];
26943345d3Smrg} ARKRegRec, *ARKRegPtr;
27943345d3Smrg
28943345d3Smrg
29943345d3Smrgtypedef struct _ARKRec {
30943345d3Smrg	pciVideoPtr		PciInfo;
31943345d3Smrg	PCITAG			PciTag;
32943345d3Smrg	EntityInfoPtr		pEnt;
33943345d3Smrg	CARD32			IOAddress;
34943345d3Smrg	CARD32			FBAddress;
35943345d3Smrg	unsigned char *		FBBase;
36943345d3Smrg	unsigned char *		MMIOBase;
37943345d3Smrg	unsigned long		videoRam;
38943345d3Smrg	OptionInfoPtr		Options;
39943345d3Smrg	unsigned int		Flags;
40943345d3Smrg	Bool			NoAccel;
41943345d3Smrg	CARD32			Bus;
42943345d3Smrg	XAAInfoRecPtr		pXAA;
43943345d3Smrg	int			Chipset, ChipRev;
44943345d3Smrg	int			clock_mult;
45943345d3Smrg	int			dac_width;
46943345d3Smrg	int			multiplex_threshold;
47943345d3Smrg	int			ramdac;
48943345d3Smrg	ARKRegRec		SavedRegs;	/* original mode */
49943345d3Smrg	ARKRegRec		ModeRegs;	/* current mode */
50943345d3Smrg	Bool			(*CloseScreen)(int, ScreenPtr);
51943345d3Smrg} ARKRec, *ARKPtr;
52943345d3Smrg
53943345d3Smrg
54943345d3Smrg#define ARKPTR(p)	((ARKPtr)((p)->driverPrivate))
55943345d3Smrg
56943345d3Smrg
57943345d3Smrg#define DRIVER_NAME	"ark"
58943345d3Smrg#define DRIVER_VERSION	"0.6.0"
59943345d3Smrg#define VERSION_MAJOR	0
60943345d3Smrg#define VERSION_MINOR	6
61943345d3Smrg#define PATCHLEVEL	0
62943345d3Smrg#define ARK_VERSION	((VERSION_MAJOR << 24) | \
63943345d3Smrg			 (VERSION_MINOR << 16) | \
64943345d3Smrg			  PATCHLEVEL)
65943345d3Smrg
66943345d3Smrg#define	ZOOMDAC		0x404
67943345d3Smrg#define ATT490		0x101
68943345d3Smrg
69943345d3SmrgBool ARKAccelInit(ScreenPtr pScreen);
70943345d3Smrg
71943345d3Smrg#define rdinx(port, ind)	(outb((port), (ind)), inb((port) + 1))
72943345d3Smrg#define wrinx(port, ind, val)						\
73943345d3Smrg    do {								\
74943345d3Smrg	outb((port), (ind));  outb((port) + 1, (val));			\
75943345d3Smrg    } while(0)
76943345d3Smrg#define modinx(port, ind, mask, bits)					\
77943345d3Smrg    do {								\
78943345d3Smrg	unsigned char tmp;						\
79943345d3Smrg	tmp = (rdinx((port), (ind)) & ~(mask)) | ((bits) & (mask));	\
80943345d3Smrg	wrinx((port), (ind), tmp);					\
81943345d3Smrg    } while(0)
82943345d3Smrg
83943345d3Smrg#endif /* _ARK_H */
84