diff options
author | marha <marha@users.sourceforge.net> | 2009-06-28 22:07:26 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2009-06-28 22:07:26 +0000 |
commit | 3562e78743202e43aec8727005182a2558117eca (patch) | |
tree | 8f9113a77d12470c5c851a2a8e4cb02e89df7d43 /xorg-server/hw/kdrive/neomagic/neomagic.h | |
download | vcxsrv-3562e78743202e43aec8727005182a2558117eca.tar.gz vcxsrv-3562e78743202e43aec8727005182a2558117eca.tar.bz2 vcxsrv-3562e78743202e43aec8727005182a2558117eca.zip |
Checked in the following released items:
xkeyboard-config-1.4.tar.gz
ttf-bitstream-vera-1.10.tar.gz
font-alias-1.0.1.tar.gz
font-sun-misc-1.0.0.tar.gz
font-sun-misc-1.0.0.tar.gz
font-sony-misc-1.0.0.tar.gz
font-schumacher-misc-1.0.0.tar.gz
font-mutt-misc-1.0.0.tar.gz
font-misc-misc-1.0.0.tar.gz
font-misc-meltho-1.0.0.tar.gz
font-micro-misc-1.0.0.tar.gz
font-jis-misc-1.0.0.tar.gz
font-isas-misc-1.0.0.tar.gz
font-dec-misc-1.0.0.tar.gz
font-daewoo-misc-1.0.0.tar.gz
font-cursor-misc-1.0.0.tar.gz
font-arabic-misc-1.0.0.tar.gz
font-winitzki-cyrillic-1.0.0.tar.gz
font-misc-cyrillic-1.0.0.tar.gz
font-cronyx-cyrillic-1.0.0.tar.gz
font-screen-cyrillic-1.0.1.tar.gz
font-xfree86-type1-1.0.1.tar.gz
font-adobe-utopia-type1-1.0.1.tar.gz
font-ibm-type1-1.0.0.tar.gz
font-bitstream-type1-1.0.0.tar.gz
font-bitstream-speedo-1.0.0.tar.gz
font-bh-ttf-1.0.0.tar.gz
font-bh-type1-1.0.0.tar.gz
font-bitstream-100dpi-1.0.0.tar.gz
font-bh-lucidatypewriter-100dpi-1.0.0.tar.gz
font-bh-100dpi-1.0.0.tar.gz
font-adobe-utopia-100dpi-1.0.1.tar.gz
font-adobe-100dpi-1.0.0.tar.gz
font-util-1.0.1.tar.gz
font-bitstream-75dpi-1.0.0.tar.gz
font-bh-lucidatypewriter-75dpi-1.0.0.tar.gz
font-adobe-utopia-75dpi-1.0.1.tar.gz
font-bh-75dpi-1.0.0.tar.gz
bdftopcf-1.0.1.tar.gz
font-adobe-75dpi-1.0.0.tar.gz
mkfontscale-1.0.6.tar.gz
openssl-0.9.8k.tar.gz
bigreqsproto-1.0.2.tar.gz
xtrans-1.2.2.tar.gz
resourceproto-1.0.2.tar.gz
inputproto-1.4.4.tar.gz
compositeproto-0.4.tar.gz
damageproto-1.1.0.tar.gz
zlib-1.2.3.tar.gz
xkbcomp-1.0.5.tar.gz
freetype-2.3.9.tar.gz
pthreads-w32-2-8-0-release.tar.gz
pixman-0.12.0.tar.gz
kbproto-1.0.3.tar.gz
evieext-1.0.2.tar.gz
fixesproto-4.0.tar.gz
recordproto-1.13.2.tar.gz
randrproto-1.2.2.tar.gz
scrnsaverproto-1.1.0.tar.gz
renderproto-0.9.3.tar.gz
xcmiscproto-1.1.2.tar.gz
fontsproto-2.0.2.tar.gz
xextproto-7.0.3.tar.gz
xproto-7.0.14.tar.gz
libXdmcp-1.0.2.tar.gz
libxkbfile-1.0.5.tar.gz
libfontenc-1.0.4.tar.gz
libXfont-1.3.4.tar.gz
libX11-1.1.5.tar.gz
libXau-1.0.4.tar.gz
libxcb-1.1.tar.gz
xorg-server-1.5.3.tar.gz
Diffstat (limited to 'xorg-server/hw/kdrive/neomagic/neomagic.h')
-rw-r--r-- | xorg-server/hw/kdrive/neomagic/neomagic.h | 210 |
1 files changed, 210 insertions, 0 deletions
diff --git a/xorg-server/hw/kdrive/neomagic/neomagic.h b/xorg-server/hw/kdrive/neomagic/neomagic.h new file mode 100644 index 000000000..9b100051b --- /dev/null +++ b/xorg-server/hw/kdrive/neomagic/neomagic.h @@ -0,0 +1,210 @@ +/* + * + * Copyright © 2004 Franco Catrin + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of Franco Catrin not be used in + * advertising or publicity pertaining to distribution of the software without + * specific, written prior permission. Franco Catrin makes no + * representations about the suitability of this software for any purpose. It + * is provided "as is" without express or implied warranty. + * + * FRANCO CATRIN DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + * EVENT SHALL FRANCO CATRIN BE LIABLE FOR ANY SPECIAL, INDIRECT OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +#ifndef _NEOMAGIC_H_ +#define _NEOMAGIC_H_ +#include <backend.h> +#include "kxv.h" +#include "klinux.h" +#include "vesa.h" + + +#define DBGOUT DebugF + +#define ENTER() DBGOUT("Enter %s\n", __FUNCTION__) +#define LEAVE() DBGOUT("Leave %s\n", __FUNCTION__) + +#define NEO_VENDOR 0x10c8 +#define CAP_NM2070 0x01 /* If it's a NM2070 series */ +#define CAP_NM2090 0x02 /* If it's a NM2090 series */ +#define CAP_NM2097 0x03 /* If it's a NM2097 series */ +#define CAP_NM2200 0x04 /* If it's a NM2200 series */ + +#define NEO_BS0_BLT_BUSY 0x00000001 +#define NEO_BS0_FIFO_AVAIL 0x00000002 +#define NEO_BS0_FIFO_PEND 0x00000004 + +#define NEO_BC0_DST_Y_DEC 0x00000001 +#define NEO_BC0_X_DEC 0x00000002 +#define NEO_BC0_SRC_TRANS 0x00000004 +#define NEO_BC0_SRC_IS_FG 0x00000008 +#define NEO_BC0_SRC_Y_DEC 0x00000010 +#define NEO_BC0_FILL_PAT 0x00000020 +#define NEO_BC0_SRC_MONO 0x00000040 +#define NEO_BC0_SYS_TO_VID 0x00000080 + +#define NEO_BC1_DEPTH8 0x00000100 +#define NEO_BC1_DEPTH16 0x00000200 +#define NEO_BC1_X_320 0x00000400 +#define NEO_BC1_X_640 0x00000800 +#define NEO_BC1_X_800 0x00000c00 +#define NEO_BC1_X_1024 0x00001000 +#define NEO_BC1_X_1152 0x00001400 +#define NEO_BC1_X_1280 0x00001800 +#define NEO_BC1_X_1600 0x00001c00 +#define NEO_BC1_DST_TRANS 0x00002000 +#define NEO_BC1_MSTR_BLT 0x00004000 +#define NEO_BC1_FILTER_Z 0x00008000 + +#define NEO_BC2_WR_TR_DST 0x00800000 + +#define NEO_BC3_SRC_XY_ADDR 0x01000000 +#define NEO_BC3_DST_XY_ADDR 0x02000000 +#define NEO_BC3_CLIP_ON 0x04000000 +#define NEO_BC3_FIFO_EN 0x08000000 +#define NEO_BC3_BLT_ON_ADDR 0x10000000 +#define NEO_BC3_SKIP_MAPPING 0x80000000 + +#define NEO_MODE1_DEPTH8 0x0100 +#define NEO_MODE1_DEPTH16 0x0200 +#define NEO_MODE1_DEPTH24 0x0300 +#define NEO_MODE1_X_320 0x0400 +#define NEO_MODE1_X_640 0x0800 +#define NEO_MODE1_X_800 0x0c00 +#define NEO_MODE1_X_1024 0x1000 +#define NEO_MODE1_X_1152 0x1400 +#define NEO_MODE1_X_1280 0x1800 +#define NEO_MODE1_X_1600 0x1c00 +#define NEO_MODE1_BLT_ON_ADDR 0x2000 + +typedef volatile CARD8 VOL8; +typedef volatile CARD16 VOL16; +typedef volatile CARD32 VOL32; + +#define NEO_REG_SIZE(c) (0x200000L) + +typedef volatile struct { + CARD32 bltStat; + CARD32 bltCntl; + CARD32 xpColor; + CARD32 fgColor; + CARD32 bgColor; + CARD32 pitch; + CARD32 clipLT; + CARD32 clipRB; + CARD32 srcBitOffset; + CARD32 srcStart; + CARD32 reserved0; + CARD32 dstStart; + CARD32 xyExt; + + CARD32 reserved1[19]; + + CARD32 pageCntl; + CARD32 pageBase; + CARD32 postBase; + CARD32 postPtr; + CARD32 dataPtr; +} NeoMMIO; + +typedef struct _neoCardInfo { + VesaCardPrivRec backendCard; + + CARD32 reg_base; + NeoMMIO *mmio; + int dstOrg; + int dstPitch; + int dstPixelWidth; + + int srcOrg; + int srcPitch; + int srcPixelWidth; + + struct NeoChipInfo *chip; + + CARD32 bltCntl; + +} NeoCardInfo; + +struct NeoChipInfo { + CARD16 vendor; + CARD16 device; + CARD8 caps; + char *name; + int videoRam; + int maxClock; + int cursorMem; + int cursorOff; + int linearSize; + int maxWidth; + int maxHeight; +}; + +#define getNeoCardInfo(kd) ((NeoCardInfo *) ((kd)->card->driver)) +#define neoCardInfo(kd) NeoCardInfo *neoc = getNeoCardInfo(kd) + +typedef struct _neoScreenInfo { + VesaScreenPrivRec backendScreen; + + CARD8 *screen; + CARD8 *off_screen; + int off_screen_size; + int pitch; + int depth; + KdVideoAdaptorPtr pAdaptor; + KaaScreenInfoRec kaa; +} NeoScreenInfo; + +#define getNeoScreenInfo(kd) ((NeoScreenInfo *) ((kd)->screen->driver)) +#define neoScreenInfo(kd) NeoScreenInfo *neos = getNeoScreenInfo(kd) + +#define SetupNeo(s) KdScreenPriv(s); \ + neoCardInfo(pScreenPriv); \ + neoScreenInfo(pScreenPriv); + +void +neoPreserve (KdCardInfo *card); + +Bool +neoEnable (ScreenPtr pScreen); + +void +neoDisable (ScreenPtr pScreen); + +Bool +neoMapReg (KdCardInfo *card, NeoCardInfo *nvidiac); + +void +neoUnmapReg (KdCardInfo *card, NeoCardInfo *nvidiac); + +CARD8 +neoGetIndex (NeoCardInfo *nvidiac, CARD16 addr, CARD8 id); + +void +neoSetIndex (NeoCardInfo *nvidiac, CARD16 addr, CARD8 id, CARD8 val); + +Bool +neoDrawInit (ScreenPtr pScreen); + +void +neoDrawEnable (ScreenPtr pScreen); + +void +neoDrawDisable (ScreenPtr pScreen); + +void +neoDrawFini (ScreenPtr pScreen); + +extern KdCardFuncs neoFuncs; + +#endif /* _NEOMAGIC_H_ */ |