patch-2.3.49 linux/drivers/video/riva_hw.h
Next file: linux/drivers/video/riva_tbl.h
Previous file: linux/drivers/video/riva_hw.c
Back to the patch index
Back to the overall index
- Lines: 344
- Date:
Wed Dec 31 16:00:00 1969
- Orig file:
v2.3.48/linux/drivers/video/riva_hw.h
- Orig date:
Sun Nov 7 16:37:34 1999
diff -u --recursive --new-file v2.3.48/linux/drivers/video/riva_hw.h linux/drivers/video/riva_hw.h
@@ -1,343 +0,0 @@
-/***************************************************************************\
-|* *|
-|* Copyright 1993-1998 NVIDIA, Corporation. All rights reserved. *|
-|* *|
-|* NOTICE TO USER: The source code is copyrighted under U.S. and *|
-|* international laws. Users and possessors of this source code are *|
-|* hereby granted a nonexclusive, royalty-free copyright license to *|
-|* use this code in individual and commercial software. *|
-|* *|
-|* Any use of this source code must include, in the user documenta- *|
-|* tion and internal comments to the code, notices to the end user *|
-|* as follows: *|
-|* *|
-|* Copyright 1993-1998 NVIDIA, Corporation. All rights reserved. *|
-|* *|
-|* NVIDIA, CORPORATION MAKES NO REPRESENTATION ABOUT THE SUITABILITY *|
-|* OF THIS SOURCE CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" *|
-|* WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. NVIDIA, CORPOR- *|
-|* ATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOURCE CODE, *|
-|* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGE- *|
-|* MENT, AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL *|
-|* NVIDIA, CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT, INCI- *|
-|* DENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RE- *|
-|* SULTING 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 SOURCE CODE. *|
-|* *|
-|* U.S. Government End Users. This source code is a "commercial *|
-|* item," as that term is defined at 48 C.F.R. 2.101 (OCT 1995), *|
-|* consisting of "commercial computer software" and "commercial *|
-|* computer software documentation," as such terms are used in *|
-|* 48 C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Govern- *|
-|* ment only as a commercial end item. Consistent with 48 C.F.R. *|
-|* 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), *|
-|* all U.S. Government End Users acquire the source code with only *|
-|* those rights set forth herein. *|
-|* *|
-\***************************************************************************/
-/*
- * GPL licensing note -- nVidia is allowing a liberal interpretation of
- * the documentation restriction above, to merely say that this nVidia's
- * copyright and disclaimer should be included with all code derived
- * from this source. -- Jeff Garzik <jgarzik@mandrakesoft.com>, 01/Nov/99
- */
-
-/* $XFree86: xc/programs/Xserver/hw/xfree86/vga256/drivers/nv/riva_hw.h,v 1.1.2.2 1998/12/22 16:33:19 hohndel Exp $ */
-#ifndef __RIVA_HW_H__
-#define __RIVA_HW_H__
-#define RIVA_SW_VERSION 0x00010000
-
-/***************************************************************************\
-* *
-* FIFO registers. *
-* *
-\***************************************************************************/
-
-/*
- * Raster OPeration. Windows style ROP3.
- */
-typedef volatile struct
-{
- unsigned reserved00[4];
- unsigned short FifoFree;
- unsigned short Nop;
- unsigned reserved01[0x0BB];
- unsigned Rop3;
-} RivaRop;
-/*
- * 8X8 Monochrome pattern.
- */
-typedef volatile struct
-{
- unsigned reserved00[4];
- unsigned short FifoFree;
- unsigned short Nop;
- unsigned reserved01[0x0BD];
- unsigned Shape;
- unsigned reserved03[0x001];
- unsigned Color0;
- unsigned Color1;
- unsigned Monochrome[2];
-} RivaPattern;
-/*
- * Scissor clip rectangle.
- */
-typedef volatile struct
-{
- unsigned reserved00[4];
- unsigned short FifoFree;
- unsigned short Nop;
- unsigned reserved01[0x0BB];
- unsigned TopLeft;
- unsigned WidthHeight;
-} RivaClip;
-/*
- * 2D filled rectangle.
- */
-typedef volatile struct
-{
- unsigned reserved00[4];
- unsigned short FifoFree;
- unsigned short Nop[1];
- unsigned reserved01[0x0BC];
- unsigned Color;
- unsigned reserved03[0x03E];
- unsigned TopLeft;
- unsigned WidthHeight;
-} RivaRectangle;
-/*
- * 2D screen-screen BLT.
- */
-typedef volatile struct
-{
- unsigned reserved00[4];
- unsigned short FifoFree;
- unsigned short Nop;
- unsigned reserved01[0x0BB];
- unsigned TopLeftSrc;
- unsigned TopLeftDst;
- unsigned WidthHeight;
-} RivaScreenBlt;
-/*
- * 2D pixel BLT.
- */
-typedef volatile struct
-{
- unsigned reserved00[4];
- unsigned short FifoFree;
- unsigned short Nop[1];
- unsigned reserved01[0x0BC];
- unsigned TopLeft;
- unsigned WidthHeight;
- unsigned WidthHeightIn;
- unsigned reserved02[0x03C];
- unsigned Pixels;
-} RivaPixmap;
-/*
- * Filled rectangle combined with monochrome expand. Useful for glyphs.
- */
-typedef volatile struct
-{
- unsigned reserved00[4];
- unsigned short FifoFree;
- unsigned short Nop;
- unsigned reserved01[0x0BB];
- unsigned reserved03[(0x040)-1];
- unsigned Color1A;
- struct
- {
- unsigned TopLeft;
- unsigned WidthHeight;
- } UnclippedRectangle[64];
- unsigned reserved04[(0x080)-3];
- struct
- {
- unsigned TopLeft;
- unsigned BottomRight;
- } ClipB;
- unsigned Color1B;
- struct
- {
- unsigned TopLeft;
- unsigned BottomRight;
- } ClippedRectangle[64];
- unsigned reserved05[(0x080)-5];
- struct
- {
- unsigned TopLeft;
- unsigned BottomRight;
- } ClipC;
- unsigned Color1C;
- unsigned WidthHeightC;
- unsigned PointC;
- unsigned MonochromeData1C;
- unsigned reserved06[(0x080)+121];
- struct
- {
- unsigned TopLeft;
- unsigned BottomRight;
- } ClipD;
- unsigned Color1D;
- unsigned WidthHeightInD;
- unsigned WidthHeightOutD;
- unsigned PointD;
- unsigned MonochromeData1D;
- unsigned reserved07[(0x080)+120];
- struct
- {
- unsigned TopLeft;
- unsigned BottomRight;
- } ClipE;
- unsigned Color0E;
- unsigned Color1E;
- unsigned WidthHeightInE;
- unsigned WidthHeightOutE;
- unsigned PointE;
- unsigned MonochromeData01E;
-} RivaBitmap;
-/*
- * 3D textured, Z buffered triangle.
- */
-typedef volatile struct
-{
- unsigned reserved00[4];
- unsigned short FifoFree;
- unsigned short Nop;
- unsigned reserved01[0x0BC];
- unsigned TextureOffset;
- unsigned TextureFormat;
- unsigned TextureFilter;
- unsigned FogColor;
- unsigned Control;
- unsigned AlphaTest;
- unsigned reserved02[0x339];
- unsigned FogAndIndex;
- unsigned Color;
- float ScreenX;
- float ScreenY;
- float ScreenZ;
- float EyeM;
- float TextureS;
- float TextureT;
-} RivaTexturedTriangle03;
-
-/***************************************************************************\
-* *
-* Virtualized RIVA H/W interface. *
-* *
-\***************************************************************************/
-
-struct _riva_hw_inst;
-struct _riva_hw_state;
-/*
- * Virtialized chip interface. Makes RIVA 128 and TNT look alike.
- */
-typedef struct _riva_hw_inst
-{
- /*
- * Chip specific settings.
- */
- unsigned Architecture;
- unsigned Version;
- unsigned CrystalFreqKHz;
- unsigned RamAmountKBytes;
- unsigned MaxVClockFreqKHz;
- unsigned RamBandwidthKBytesPerSec;
- unsigned EnableIRQ;
- unsigned IO;
- unsigned LockUnlockIO;
- unsigned LockUnlockIndex;
- unsigned VBlankBit;
- unsigned FifoFreeCount;
- /*
- * Non-FIFO registers.
- */
- volatile unsigned *PCRTC;
- volatile unsigned *PRAMDAC;
- volatile unsigned *PFB;
- volatile unsigned *PFIFO;
- volatile unsigned *PGRAPH;
- volatile unsigned *PEXTDEV;
- volatile unsigned *PTIMER;
- volatile unsigned *PMC;
- volatile unsigned *PRAMIN;
- volatile unsigned *FIFO;
- volatile unsigned *CURSOR;
- volatile unsigned *CURSORPOS;
- volatile unsigned *VBLANKENABLE;
- volatile unsigned *VBLANK;
- /*
- * Common chip functions.
- */
- int (*Busy)(struct _riva_hw_inst *);
- void (*CalcStateExt)(struct _riva_hw_inst *,struct _riva_hw_state *,int,int,int,int,int,int,int,int,int,int,int,int,int);
- void (*LoadStateExt)(struct _riva_hw_inst *,struct _riva_hw_state *);
- void (*UnloadStateExt)(struct _riva_hw_inst *,struct _riva_hw_state *);
- void (*SetStartAddress)(struct _riva_hw_inst *,unsigned);
- void (*SetSurfaces2D)(struct _riva_hw_inst *,unsigned,unsigned);
- void (*SetSurfaces3D)(struct _riva_hw_inst *,unsigned,unsigned);
- int (*ShowHideCursor)(struct _riva_hw_inst *,int);
- /*
- * Current extended mode settings.
- */
- struct _riva_hw_state *CurrentState;
- /*
- * FIFO registers.
- */
- RivaRop *Rop;
- RivaPattern *Patt;
- RivaClip *Clip;
- RivaPixmap *Pixmap;
- RivaScreenBlt *Blt;
- RivaBitmap *Bitmap;
- RivaTexturedTriangle03 *Tri03;
-} RIVA_HW_INST;
-/*
- * Extended mode state information.
- */
-typedef struct _riva_hw_state
-{
- unsigned bpp;
- unsigned width;
- unsigned height;
- unsigned repaint0;
- unsigned repaint1;
- unsigned screen;
- unsigned pixel;
- unsigned horiz;
- unsigned arbitration0;
- unsigned arbitration1;
- unsigned vpll;
- unsigned pllsel;
- unsigned general;
- unsigned config;
- unsigned cursor0;
- unsigned cursor1;
- unsigned cursor2;
- unsigned offset0;
- unsigned offset1;
- unsigned offset2;
- unsigned offset3;
- unsigned pitch0;
- unsigned pitch1;
- unsigned pitch2;
- unsigned pitch3;
-} RIVA_HW_STATE;
-/*
- * External routines.
- */
-int RivaGetConfig(RIVA_HW_INST *);
-/*
- * FIFO Free Count. Should attempt to yield processor if RIVA is busy.
- */
-#define RIVA_FIFO_FREE(hwinst,hwptr,cnt) \
-{ \
-while ((hwinst).FifoFreeCount < (cnt)) \
-{ \
- (hwinst).FifoFreeCount = (hwinst).hwptr->FifoFree >> 2; \
-} \
-(hwinst).FifoFreeCount -= (cnt); \
-}
-#endif /* __RIVA_HW_H__ */
-
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)