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