ast.h revision 15fb4814
115fb4814Smrg/* 215fb4814Smrg * Copyright (c) 2005 ASPEED Technology Inc. 315fb4814Smrg * 415fb4814Smrg * Permission to use, copy, modify, distribute, and sell this software and its 515fb4814Smrg * documentation for any purpose is hereby granted without fee, provided that 615fb4814Smrg * the above copyright notice appear in all copies and that both that 715fb4814Smrg * copyright notice and this permission notice appear in supporting 815fb4814Smrg * documentation, and that the name of the authors not be used in 915fb4814Smrg * advertising or publicity pertaining to distribution of the software without 1015fb4814Smrg * specific, written prior permission. The authors makes no representations 1115fb4814Smrg * about the suitability of this software for any purpose. It is provided 1215fb4814Smrg * "as is" without express or implied warranty. 1315fb4814Smrg * 1415fb4814Smrg * THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 1515fb4814Smrg * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO 1615fb4814Smrg * EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR 1715fb4814Smrg * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 1815fb4814Smrg * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 1915fb4814Smrg * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 2015fb4814Smrg * PERFORMANCE OF THIS SOFTWARE. 2115fb4814Smrg */ 2215fb4814Smrg 2315fb4814Smrg#include <string.h> 2415fb4814Smrg#include <stdlib.h> 2515fb4814Smrg 2615fb4814Smrg/* Compiler Options */ 2715fb4814Smrg#define Accel_2D 2815fb4814Smrg/* #define MMIO_2D */ 2915fb4814Smrg#define HWC 3015fb4814Smrg 3115fb4814Smrg/* Vendor & Device Info */ 3215fb4814Smrg#ifndef PCI_VENDOR_AST 3315fb4814Smrg#define PCI_VENDOR_AST 0x1A03 3415fb4814Smrg#endif 3515fb4814Smrg 3615fb4814Smrg#ifndef PCI_CHIP_AST2000 3715fb4814Smrg#define PCI_CHIP_AST2000 0x2000 3815fb4814Smrg#endif 3915fb4814Smrg 4015fb4814Smrg/* AST REC Info */ 4115fb4814Smrg#define AST_NAME "AST" 4215fb4814Smrg#define AST_DRIVER_NAME "ast" 4315fb4814Smrg#define AST_MAJOR_VERSION 0 4415fb4814Smrg#define AST_MINOR_VERSION 81 4515fb4814Smrg#define AST_PATCH_VERSION 0 4615fb4814Smrg#define AST_VERSION \ 4715fb4814Smrg ((AST_MAJOR_VERSION << 20) | (AST_MINOR_VERSION << 10) | AST_PATCH_VERSION) 4815fb4814Smrg 4915fb4814Smrg/* Customized Info */ 5015fb4814Smrg#define DEFAULT_VIDEOMEM_SIZE 0x00800000 5115fb4814Smrg#define DEFAULT_MMIO_SIZE 0x00020000 5215fb4814Smrg#define DEFAULT_CMDQ_SIZE 0x00100000 5315fb4814Smrg#define MIN_CMDQ_SIZE 0x00040000 5415fb4814Smrg#define CMD_QUEUE_GUARD_BAND 0x00000020 5515fb4814Smrg#define DEFAULT_HWC_NUM 0x00000002 5615fb4814Smrg 5715fb4814Smrg/* Data Type Definition */ 5815fb4814Smrgtypedef INT32 LONG; 5915fb4814Smrgtypedef CARD8 UCHAR; 6015fb4814Smrgtypedef CARD16 USHORT; 6115fb4814Smrgtypedef CARD32 ULONG; 6215fb4814Smrg 6315fb4814Smrg/* Data Structure Definition */ 6415fb4814Smrgtypedef struct _ASTRegRec { 6515fb4814Smrg UCHAR ExtCRTC[0x50]; 6615fb4814Smrg 6715fb4814Smrg} ASTRegRec, *ASTRegPtr; 6815fb4814Smrg 6915fb4814Smrgtypedef struct _VIDEOMODE { 7015fb4814Smrg 7115fb4814Smrg int ScreenWidth; 7215fb4814Smrg int ScreenHeight; 7315fb4814Smrg int bitsPerPixel; 7415fb4814Smrg int ScreenPitch; 7515fb4814Smrg 7615fb4814Smrg} VIDEOMODE, *PVIDEOMODE; 7715fb4814Smrg 7815fb4814Smrgtypedef struct { 7915fb4814Smrg 8015fb4814Smrg ULONG ulCMDQSize; 8115fb4814Smrg ULONG ulCMDQType; 8215fb4814Smrg 8315fb4814Smrg ULONG ulCMDQOffsetAddr; 8415fb4814Smrg UCHAR *pjCMDQVirtualAddr; 8515fb4814Smrg 8615fb4814Smrg UCHAR *pjCmdQBasePort; 8715fb4814Smrg UCHAR *pjWritePort; 8815fb4814Smrg UCHAR *pjReadPort; 8915fb4814Smrg UCHAR *pjEngStatePort; 9015fb4814Smrg 9115fb4814Smrg ULONG ulCMDQMask; 9215fb4814Smrg ULONG ulCurCMDQueueLen; 9315fb4814Smrg 9415fb4814Smrg ULONG ulWritePointer; 9515fb4814Smrg ULONG ulReadPointer; 9615fb4814Smrg 9715fb4814Smrg ULONG ulReadPointer_OK; /* for Eng_DBGChk */ 9815fb4814Smrg 9915fb4814Smrg} CMDQINFO, *PCMDQINFO; 10015fb4814Smrg 10115fb4814Smrgtypedef struct { 10215fb4814Smrg 10315fb4814Smrg int HWC_NUM; 10415fb4814Smrg int HWC_NUM_Next; 10515fb4814Smrg 10615fb4814Smrg ULONG ulHWCOffsetAddr; 10715fb4814Smrg UCHAR *pjHWCVirtualAddr; 10815fb4814Smrg 10915fb4814Smrg USHORT cursortype; 11015fb4814Smrg USHORT width; 11115fb4814Smrg USHORT height; 11215fb4814Smrg USHORT offset_x; 11315fb4814Smrg USHORT offset_y; 11415fb4814Smrg ULONG fg; 11515fb4814Smrg ULONG bg; 11615fb4814Smrg 11715fb4814Smrg 11815fb4814Smrg} HWCINFO, *PHWCINFO; 11915fb4814Smrg 12015fb4814Smrgtypedef struct _ASTRec { 12115fb4814Smrg 12215fb4814Smrg EntityInfoPtr pEnt; 12315fb4814Smrg pciVideoPtr PciInfo; 12415fb4814Smrg PCITAG PciTag; 12515fb4814Smrg 12615fb4814Smrg OptionInfoPtr Options; 12715fb4814Smrg DisplayModePtr ModePtr; 12815fb4814Smrg FBLinearPtr pCMDQPtr; 12915fb4814Smrg XAAInfoRecPtr AccelInfoPtr; 13015fb4814Smrg xf86CursorInfoPtr HWCInfoPtr; 13115fb4814Smrg FBLinearPtr pHWCPtr; 13215fb4814Smrg 13315fb4814Smrg CloseScreenProcPtr CloseScreen; 13415fb4814Smrg ScreenBlockHandlerProcPtr BlockHandler; 13515fb4814Smrg 13615fb4814Smrg Bool noAccel; 13715fb4814Smrg Bool noHWC; 13815fb4814Smrg Bool MMIO2D; 13915fb4814Smrg int ENGCaps; 14015fb4814Smrg int DBGSelect; 14115fb4814Smrg 14215fb4814Smrg ULONG FBPhysAddr; /* Frame buffer physical address */ 14315fb4814Smrg ULONG MMIOPhysAddr; /* MMIO region physical address */ 14415fb4814Smrg ULONG BIOSPhysAddr; /* BIOS physical address */ 14515fb4814Smrg 14615fb4814Smrg UCHAR *FBVirtualAddr; /* Map of frame buffer */ 14715fb4814Smrg UCHAR *MMIOVirtualAddr; /* Map of MMIO region */ 14815fb4814Smrg 14915fb4814Smrg unsigned long FbMapSize; 15015fb4814Smrg unsigned long MMIOMapSize; 15115fb4814Smrg 15215fb4814Smrg IOADDRESS IODBase; /* Base of PIO memory area */ 15315fb4814Smrg IOADDRESS PIOOffset; 15415fb4814Smrg IOADDRESS RelocateIO; 15515fb4814Smrg 15615fb4814Smrg VIDEOMODE VideoModeInfo; 15715fb4814Smrg ASTRegRec SavedReg; 15815fb4814Smrg CMDQINFO CMDQInfo; 15915fb4814Smrg HWCINFO HWCInfo; 16015fb4814Smrg ULONG ulCMDReg; 16115fb4814Smrg Bool EnableClip; 16215fb4814Smrg 16315fb4814Smrg} ASTRec, *ASTRecPtr; 16415fb4814Smrg 16515fb4814Smrg#define ASTPTR(p) ((ASTRecPtr)((p)->driverPrivate)) 16615fb4814Smrg 16715fb4814Smrg/* Include Files */ 16815fb4814Smrg#include "ast_mode.h" 16915fb4814Smrg#include "ast_vgatool.h" 17015fb4814Smrg#include "ast_2dtool.h" 17115fb4814Smrg#include "ast_cursor.h" 172