1/**********************************************************************
2Copyright 1998, 1999 by Precision Insight, Inc., Cedar Park, Texas.
3
4                        All Rights Reserved
5
6Permission to use, copy, modify, distribute, and sell this software and
7its documentation for any purpose is hereby granted without fee,
8provided that the above copyright notice appear in all copies and that
9both that copyright notice and this permission notice appear in
10supporting documentation, and that the name of Precision Insight not be
11used in advertising or publicity pertaining to distribution of the
12software without specific, written prior permission.  Precision Insight
13and its suppliers make no representations about the suitability of this
14software for any purpose.  It is provided "as is" without express or
15implied warranty.
16
17PRECISION INSIGHT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
18INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
19EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY
20SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
21RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
22CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
23CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
24**********************************************************************/
25
26/*
27 * The original Precision Insight driver for
28 * XFree86 v.3.3 has been sponsored by Red Hat.
29 *
30 * Authors:
31 *   Jens Owen (jens@tungstengraphics.com)
32 *   Kevin E. Martin (kevin@precisioninsight.com)
33 *
34 * Port to Xfree86 v.4.0
35 *   1998, 1999 by Egbert Eich (Egbert.Eich@Physik.TU-Darmstadt.DE)
36 */
37
38#define NEOREG_BLTSTAT		0x00
39#define NEOREG_BLTCNTL		0x04
40#define NEOREG_XPCOLOR		0x08
41#define NEOREG_FGCOLOR		0x0c
42#define NEOREG_BGCOLOR		0x10
43#define NEOREG_PITCH		0x14
44#define NEOREG_CLIPLT           0x18
45#define NEOREG_CLIPRB           0x1c
46#define NEOREG_SRCBITOFF        0x20
47#define NEOREG_SRCSTARTOFF      0x24
48#define NEOREG_DSTSTARTOFF      0x2c
49#define NEOREG_XYEXT            0x30
50#define NEOREG_PAGECNTL         0x80
51#define NEOREG_PAGEBASE         0x84
52#define NEOREG_POSTBASE         0x88
53#define NEOREG_POSTPTR          0x8c
54#define NEOREG_DATAPTR          0x90
55#define NEOREG_BLTMODE          0x02
56
57#define NEO_BS0_BLT_BUSY        0x00000001
58#define NEO_BS0_FIFO_AVAIL      0x00000002
59#define NEO_BS0_FIFO_PEND       0x00000004
60
61#define NEO_BC0_DST_Y_DEC       0x00000001
62#define NEO_BC0_X_DEC           0x00000002
63#define NEO_BC0_SRC_TRANS       0x00000004
64#define NEO_BC0_SRC_IS_FG       0x00000008
65#define NEO_BC0_SRC_Y_DEC       0x00000010
66#define NEO_BC0_FILL_PAT        0x00000020
67#define NEO_BC0_SRC_MONO        0x00000040
68#define NEO_BC0_SYS_TO_VID      0x00000080
69
70#define NEO_BC1_DEPTH8          0x00000100
71#define NEO_BC1_DEPTH16         0x00000200
72#define NEO_BC1_X_320           0x00000400
73#define NEO_BC1_X_640           0x00000800
74#define NEO_BC1_X_800           0x00000c00
75#define NEO_BC1_X_1024          0x00001000
76#define NEO_BC1_X_1152          0x00001400
77#define NEO_BC1_X_1280          0x00001800
78#define NEO_BC1_X_1600          0x00001c00
79#define NEO_BC1_DST_TRANS       0x00002000
80#define NEO_BC1_MSTR_BLT        0x00004000
81#define NEO_BC1_FILTER_Z        0x00008000
82
83#define NEO_BC2_WR_TR_DST       0x00800000
84
85#define NEO_BC3_SRC_XY_ADDR     0x01000000
86#define NEO_BC3_DST_XY_ADDR     0x02000000
87#define NEO_BC3_CLIP_ON         0x04000000
88#define NEO_BC3_FIFO_EN         0x08000000
89#define NEO_BC3_BLT_ON_ADDR     0x10000000
90#define NEO_BC3_SKIP_MAPPING    0x80000000
91
92#define NEO_MODE1_DEPTH8        0x0100
93#define NEO_MODE1_DEPTH16       0x0200
94#define NEO_MODE1_DEPTH24       0x0300
95#define NEO_MODE1_X_320         0x0400
96#define NEO_MODE1_X_640         0x0800
97#define NEO_MODE1_X_800         0x0c00
98#define NEO_MODE1_X_1024        0x1000
99#define NEO_MODE1_X_1152        0x1400
100#define NEO_MODE1_X_1280        0x1800
101#define NEO_MODE1_X_1600        0x1c00
102#define NEO_MODE1_BLT_ON_ADDR   0x2000
103
104#define NEOREG_CURSCNTL         (nPtr->NeoCursorOffset + 0x00)
105#define NEOREG_CURSX            (nPtr->NeoCursorOffset + 0x04)
106#define NEOREG_CURSY            (nPtr->NeoCursorOffset + 0x08)
107#define NEOREG_CURSBGCOLOR      (nPtr->NeoCursorOffset + 0x0c)
108#define NEOREG_CURSFGCOLOR      (nPtr->NeoCursorOffset + 0x10)
109#define NEOREG_CURSMEMPOS       (nPtr->NeoCursorOffset + 0x14)
110
111#define NEO_CURS_DISABLE        0x00000000
112#define NEO_CURS_ENABLE         0x00000001
113#define NEO_ICON64_ENABLE       0x00000008
114#define NEO_ICON128_ENABLE      0x0000000c
115#define NEO_ICON_BLANK          0x00000010
116
117