diff options
author | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2006-11-26 20:05:17 +0000 |
---|---|---|
committer | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2006-11-26 20:05:17 +0000 |
commit | 66f66c4a7f92a1d10c0493ec8b4ed376edebaf4a (patch) | |
tree | f1bbe59fe8ac59ff972753f98929bf0938e10b70 /driver/xf86-video-i740/src/i740.h | |
parent | b8183567bfe1c62f5a5c83e89bac0340639a29a7 (diff) |
Importing xf86-video-i740 1.1.0
Diffstat (limited to 'driver/xf86-video-i740/src/i740.h')
-rw-r--r-- | driver/xf86-video-i740/src/i740.h | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/driver/xf86-video-i740/src/i740.h b/driver/xf86-video-i740/src/i740.h new file mode 100644 index 000000000..6db051513 --- /dev/null +++ b/driver/xf86-video-i740/src/i740.h @@ -0,0 +1,158 @@ + +/************************************************************************** + +Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sub license, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740.h,v 1.7 2002/10/23 16:08:36 tsi Exp $ */ + +/* + * Authors: + * Daryll Strauss <daryll@precisioninsight.com> + * + */ + +#ifndef _I740_H_ +#define _I740_H_ + +#include "xf86PciInfo.h" +#include "xf86Pci.h" + +#include "i740_reg.h" +#include "i740_macros.h" + +#include "xaa.h" +#include "xf86Cursor.h" + +/* Globals */ +/* Memory mapped register access macros */ +#define INREG8(addr) *(volatile CARD8 *)(pI740->MMIOBase + (addr)) +#define INREG16(addr) *(volatile CARD16 *)(pI740->MMIOBase + (addr)) +#define INREG(addr) *(volatile CARD32 *)(pI740->MMIOBase + (addr)) +#define OUTREG8(addr, val) *(volatile CARD8 *)(pI740->MMIOBase + (addr)) = (val) +#define OUTREG16(addr, val) *(volatile CARD16 *)(pI740->MMIOBase + (addr)) = (val) +#define OUTREG(addr, val) *(volatile CARD32 *)(pI740->MMIOBase + (addr)) = (val) + +typedef struct _I740Rec *I740Ptr; + +typedef void (*I740WriteIndexedByteFunc)(I740Ptr pI740, int addr, + unsigned char index, char value); +typedef char (*I740ReadIndexedByteFunc)(I740Ptr pI740, int addr, + unsigned char index); +typedef void (*I740WriteByteFunc)(I740Ptr pI740, int addr, unsigned char value); +typedef char (*I740ReadByteFunc)(I740Ptr pI740, int addr); + +typedef struct { + unsigned char DisplayControl; + unsigned char PixelPipeCfg0; + unsigned char PixelPipeCfg1; + unsigned char PixelPipeCfg2; + unsigned char VideoClk2_M; + unsigned char VideoClk2_N; + unsigned char VideoClk2_MN_MSBs; + unsigned char VideoClk2_DivisorSel; + unsigned char PLLControl; + unsigned char AddressMapping; + unsigned char IOControl; + unsigned char BitBLTControl; + unsigned char ExtVertTotal; + unsigned char ExtVertDispEnd; + unsigned char ExtVertSyncStart; + unsigned char ExtVertBlankStart; + unsigned char ExtHorizTotal; + unsigned char ExtHorizBlank; + unsigned char ExtOffset; + unsigned char InterlaceControl; + unsigned int LMI_FIFO_Watermark; +} I740RegRec, *I740RegPtr; + +typedef struct _I740Rec { + unsigned char *MMIOBase; + unsigned char *FbBase; + long FbMapSize; + int cpp; + int MaxClock; + int CursorStart; + int Chipset; + unsigned long LinearAddr; + unsigned long MMIOAddr; + EntityInfoPtr pEnt; + pciVideoPtr PciInfo; + PCITAG PciTag; + int HasSGRAM; + I740RegRec SavedReg; + I740RegRec ModeReg; + XAAInfoRecPtr AccelInfoRec; + xf86CursorInfoPtr CursorInfoRec; + FBAreaPtr CursorData; + CloseScreenProcPtr CloseScreen; + GFX2DOPREG_BLTER_FULL_LOAD bltcmd; + Bool usePIO; + I740WriteIndexedByteFunc writeControl; + I740ReadIndexedByteFunc readControl; + I740WriteByteFunc writeStandard; + I740ReadByteFunc readStandard; + OptionInfoPtr Options; + + /*DGA*/ + DGAModePtr DGAModes; + int numDGAModes; + Bool DGAactive; + int DGAViewportStatus; + BoxRec FbMemBox; + /*-*/ + + /*I2C*/ + I2CBusPtr rc_i2c; + /*-*/ + + /*-*/ /*Overlay*/ + XF86VideoAdaptorPtr adaptor; + unsigned long OverlayStart; + unsigned long OverlayPhysical; + int colorKey; + ScreenBlockHandlerProcPtr BlockHandler; + int ov_offset_x,ov_offset_y; + /*-*/ + + Bool usevgacompat; +} I740Rec; + +#define I740PTR(p) ((I740Ptr)((p)->driverPrivate)) + +extern Bool I740CursorInit(ScreenPtr pScreen); +extern Bool I740AccelInit(ScreenPtr pScreen); +void I740SetPIOAccess(I740Ptr pI740); +void I740SetMMIOAccess(I740Ptr pI740); +void I740InitVideo(ScreenPtr pScreen); + +Bool I740SwitchMode(int scrnIndex, DisplayModePtr mode, int flags); +void I740AdjustFrame(int scrnIndex, int x, int y, int flags); + +Bool I740_I2CInit(ScrnInfoPtr pScrn); + +#define minb(p) MMIO_IN8(pI740->MMIOBase, (p)) +#define moutb(p,v) MMIO_OUT8(pI740->MMIOBase, (p),(v)) + +#endif |