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/nvidia/nvidia.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/nvidia/nvidia.h')
-rw-r--r-- | xorg-server/hw/kdrive/nvidia/nvidia.h | 247 |
1 files changed, 247 insertions, 0 deletions
diff --git a/xorg-server/hw/kdrive/nvidia/nvidia.h b/xorg-server/hw/kdrive/nvidia/nvidia.h new file mode 100644 index 000000000..026233cc1 --- /dev/null +++ b/xorg-server/hw/kdrive/nvidia/nvidia.h @@ -0,0 +1,247 @@ +/* + * Copyright © 2003 Keith Packard + * + * 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 Keith Packard not be used in + * advertising or publicity pertaining to distribution of the software without + * specific, written prior permission. Keith Packard makes no + * representations about the suitability of this software for any purpose. It + * is provided "as is" without express or implied warranty. + * + * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + * EVENT SHALL KEITH PACKARD 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 _NVIDIA_H_ +#define _NVIDIA_H_ +#include <vesa.h> +#include "kxv.h" +#include "klinux.h" + +/* + * offset from ioport beginning + */ + +#define DEBUG +#ifdef DEBUG +#define DBGOUT(fmt,a...) fprintf (stderr, fmt, ##a) +#else +#define DBGOUT(fmt,a...) +#endif + +#define ENTER() DBGOUT("Enter %s\n", __FUNCTION__) +#define LEAVE() DBGOUT("Leave %s\n", __FUNCTION__) + +#define NVIDIA_REG_BASE(c) ((c)->attr.address[0]) +#define NVIDIA_REG_SIZE(c) (16 * 1024 * 1024) + +#define NVIDIA_PCIO_OFF(c) (0x601000) +#define NVIDIA_MMIO_OFF(c) (NVIDIA_PCIO_OFF(c) + 0) +#define NVIDIA_FIFO_OFF(c) (0x800000) +#define NVIDIA_ROP_OFF(c) (NVIDIA_FIFO_OFF(c) + 0) +#define NVIDIA_CLIP_OFF(c) (NVIDIA_FIFO_OFF(c) + 0x2000) +#define NVIDIA_PATT_OFF(c) (NVIDIA_FIFO_OFF(c) + 0x4000) +#define NVIDIA_PIXMAP_OFF(c) (NVIDIA_FIFO_OFF(c) + 0x6000) +#define NVIDIA_BLT_OFF(c) (NVIDIA_FIFO_OFF(c) + 0x8000) +#define NVIDIA_RECTANGLE_OFF(c) (NVIDIA_FIFO_OFF(c) + 0xa000) +#define NVIDIA_LINE_OFF(c) (NVIDIA_FIFO_OFF(c) + 0xc000) +#define NVIDIA_IS_3(c) (0) +#define NVIDIA_BUSY(c) (NVIDIA_IS_3(c) ? 0x6b0 : 0x700) +#define NVIDIA_BUSY_OFF(c) (0x400000 + NVIDIA_BUSY(c)) + +typedef volatile CARD8 VOL8; +typedef volatile CARD16 VOL16; +typedef volatile CARD32 VOL32; + +#define NVIDIA_XY(x,y) ((x) | ((y) << 16)) + +typedef struct { +#if X_BYTE_ORDER == X_BIG_ENDIAN + VOL32 FifoFree; +#else + VOL16 FifoFree; + VOL16 Nop; +#endif +} NvidiaFifoFree; + +/* + * Raster OPeration. Windows style ROP3. + */ +typedef struct { + VOL32 reserved00[4]; + NvidiaFifoFree FifoFree; + VOL32 reserved01[0x0BB]; + VOL32 Rop3; +} NvidiaRop; + +/* + * 2D filled rectangle. + */ +typedef struct { + VOL32 reserved00[4]; + NvidiaFifoFree FifoFree; + VOL32 reserved01[0x0BB]; + VOL32 reserved03[(0x040)-1]; + VOL32 Color1A; + VOL32 TopLeft; + VOL32 WidthHeight; +} NvidiaRectangle; + +/* + * 2D screen-screen BLT. + */ +typedef struct { + VOL32 reserved00[4]; + NvidiaFifoFree FifoFree; + VOL32 reserved01[0x0BB]; + VOL32 TopLeftSrc; + VOL32 TopLeftDst; + VOL32 WidthHeight; +} NvidiaScreenBlt; + +typedef struct { + VOL32 busy; +} NvidiaBusy; + +typedef struct _nvidiaCardInfo { + VesaCardPrivRec vesa; + CARD8 *reg_base; + int fifo_free; + int fifo_size; + CARD8 *mmio; + NvidiaRop *rop; + NvidiaRectangle *rect; + NvidiaScreenBlt *blt; + NvidiaBusy *busy; +} NvidiaCardInfo; + +#define getNvidiaCardInfo(kd) ((NvidiaCardInfo *) ((kd)->card->driver)) +#define nvidiaCardInfo(kd) NvidiaCardInfo *nvidiac = getNvidiaCardInfo(kd) + +/* + * Xv information, optional + */ +typedef struct _nvidiaPortPriv { + CARD32 YBuf0Offset; + + CARD32 YBuf1Offset; + + CARD8 currentBuf; + + int brightness; + int saturation; + + RegionRec clip; + CARD32 colorKey; + + Bool videoOn; + Time offTime; + Time freeTime; + CARD32 size; + CARD32 offset; +} NvidiaPortPrivRec, *NvidiaPortPrivPtr; + +Bool nvidiaInitVideo(ScreenPtr pScreen); + +typedef struct _nvidiaScreenInfo { + VesaScreenPrivRec vesa; + CARD8 *cursor_base; + CARD8 *screen; + CARD8 *off_screen; + int off_screen_size; + KdVideoAdaptorPtr pAdaptor; + KaaScreenInfoRec kaa; +} NvidiaScreenInfo; + +#define getNvidiaScreenInfo(kd) ((NvidiaScreenInfo *) ((kd)->screen->driver)) +#define nvidiaScreenInfo(kd) NvidiaScreenInfo *nvidias = getNvidiaScreenInfo(kd) + +void +nvidiaPreserve (KdCardInfo *card); + +void +nvidiaOutb (NvidiaCardInfo *nvidiac, CARD16 port, CARD8 val); + +CARD8 +nvidiaInb (NvidiaCardInfo *nvidiac, CARD16 port); + +CARD8 +nvidiaGetIndex (NvidiaCardInfo *nvidiac, CARD16 addr, CARD16 data, CARD8 id); + +void +nvidiaSetIndex (NvidiaCardInfo *nvidiac, CARD16 addr, CARD16 data, CARD8 id, CARD8 val); + +Bool +nvidiaMapReg (KdCardInfo *card, NvidiaCardInfo *nvidiac); + +void +nvidiaUnmapReg (KdCardInfo *card, NvidiaCardInfo *nvidiac); + +void +nvidiaSetMMIO (KdCardInfo *card, NvidiaCardInfo *nvidiac); + +void +nvidiaResetMMIO (KdCardInfo *card, NvidiaCardInfo *nvidiac); + +Bool +nvidiaEnable (ScreenPtr pScreen); + +void +nvidiaDisable (ScreenPtr pScreen); + +void +nvidiaWait (NvidiaCardInfo *card, NvidiaFifoFree *free, int n); + +void +nvidiaWaitIdle (NvidiaCardInfo *card); + +Bool +nvidiaDrawSetup (ScreenPtr pScreen); + +Bool +nvidiaDrawInit (ScreenPtr pScreen); + +void +nvidiaDrawReinit (ScreenPtr pScreen); + +void +nvidiaDrawEnable (ScreenPtr pScreen); + +void +nvidiaDrawDisable (ScreenPtr pScreen); + +void +nvidiaDrawFini (ScreenPtr pScreen); + +CARD8 +nvidiaReadIndex (NvidiaCardInfo *nvidiac, CARD16 port, CARD8 index); + +void +nvidiaWriteIndex (NvidiaCardInfo *nvidiac, CARD16 port, CARD8 index, CARD8 value); + +Bool +nvidiaCursorInit (ScreenPtr pScreen); + +void +nvidiaCursorEnable (ScreenPtr pScreen); + +void +nvidiaCursorDisable (ScreenPtr pScreen); + +void +nvidiaCursorFini (ScreenPtr pScreen); + +void +nvidiaRecolorCursor (ScreenPtr pScreen, int ndef, xColorItem *pdef); + +extern KdCardFuncs nvidiaFuncs; + +#endif /* _NVIDIA_H_ */ |