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 22 typedef 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 36 typedef 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 81 Bool 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