3 #ifndef _PMAX_DEV_PXREG_H_ 4 #define _PMAX_DEV_PXREG_H_ 71 #define STAMP_CMD_POINTS (0x0000) 72 #define STAMP_CMD_LINES (0x0001) 73 #define STAMP_CMD_TRIANGLES (0x0002) 74 #define STAMP_CMD_COPYSPANS (0x0005) 75 #define STAMP_CMD_READSPANS (0x0006) 76 #define STAMP_CMD_WRITESPANS (0x0007) 77 #define STAMP_CMD_VIDEO (0x0008) 80 #define STAMP_RGB_NONE (0x0000) 81 #define STAMP_RGB_CONST (0x0010) 82 #define STAMP_RGB_FLAT (0x0020) 83 #define STAMP_RGB_SMOOTH (0x0030) 86 #define STAMP_Z_NONE (0x0000) 87 #define STAMP_Z_CONST (0x0040) 88 #define STAMP_Z_FLAT (0x0080) 89 #define STAMP_Z_SMOOTH (0x00c0) 92 #define STAMP_XY_NONE (0x0000) 93 #define STAMP_XY_PERPACKET (0x0100) 94 #define STAMP_XY_PERPRIMATIVE (0x0200) 97 #define STAMP_LW_NONE (0x0000) 98 #define STAMP_LW_PERPACKET (0x0400) 99 #define STAMP_LW_PERPRIMATIVE (0x0800) 102 #define STAMP_CLIPRECT (0x00080000) 103 #define STAMP_MESH (0x00200000) 104 #define STAMP_AALINE (0x00800000) 105 #define STAMP_HS_EQUALS (0x80000000) 113 #define STAMP_PLANE_8X3 (0 << 5) 114 #define STAMP_PLANE_24 (1 << 5) 117 #define STAMP_WE_SIGN (0x04 << 8) 118 #define STAMP_WE_XYMASK (0x02 << 8) 119 #define STAMP_WE_CLIPRECT (0x01 << 8) 120 #define STAMP_WE_NONE (0x00 << 8) 123 #define STAMP_METHOD_CLEAR (0x60 << 12) 124 #define STAMP_METHOD_AND (0x14 << 12) 125 #define STAMP_METHOD_ANDREV (0x15 << 12) 126 #define STAMP_METHOD_COPY (0x20 << 12) 127 #define STAMP_METHOD_ANDINV (0x16 << 12) 128 #define STAMP_METHOD_NOOP (0x40 << 12) 129 #define STAMP_METHOD_XOR (0x11 << 12) 130 #define STAMP_METHOD_OR (0x0f << 12) 131 #define STAMP_METHOD_NOR (0x17 << 12) 132 #define STAMP_METHOD_EQUIV (0x10 << 12) 133 #define STAMP_METHOD_INV (0x4e << 12) 134 #define STAMP_METHOD_ORREV (0x0e << 12) 135 #define STAMP_METHOD_COPYINV (0x2d << 12) 136 #define STAMP_METHOD_ORINV (0x0d << 12) 137 #define STAMP_METHOD_NAND (0x0c << 12) 138 #define STAMP_METHOD_SET (0x6c << 12) 139 #define STAMP_METHOD_SUM (0x00 << 12) 140 #define STAMP_METHOD_DIFF (0x02 << 12) 141 #define STAMP_METHOD_REVDIFF (0x01 << 12) 144 #define STAMP_DB_NONE (0x00 << 28) 145 #define STAMP_DB_01 (0x01 << 28) 146 #define STAMP_DB_12 (0x02 << 28) 147 #define STAMP_DB_02 (0x04 << 28) 150 #define STAMP_UPDATE_ENABLE (1) 151 #define STAMP_SAVE_SIGN (1<<6) 152 #define STAMP_SAVE_ALPHA (1<<7) 153 #define STAMP_SUPERSAMPLE (1<<11) 154 #define STAMP_SPAN (1<<19) 155 #define STAMP_COPYSPAN_ALIGNED (1<<20) 156 #define STAMP_MINMAX (1<<21) 157 #define STAMP_MULT (1<<22) 158 #define STAMP_MULTACC (1<<23) 159 #define STAMP_HALF_BUFF (1<27) 160 #define STAMP_INITIALIZE (1<<31) 163 #define STAMP_WIDTH (pxi->pxi_stampw) 164 #define STAMP_HEIGHT (pxi->pxi_stamph) 167 #define XMASKADDR(__sx, __a) (((__a)-((__sx) % STAMP_WIDTH)) & 0xF) 168 #define YMASKADDR(__sy, __b) (((__b)-((__sy) % STAMP_HEIGHT)) & 0xF) 169 #define XYMASKADDR(_x,_y,_a,_b) (XMASKADDR(_x,_a) << 16 | YMASKADDR(_y,_b)) 179 #define STAMP_BUSY (1) 180 #define STAMP_RETRIES (7000) 181 #define STAMP_DELAY (20) 184 #define __PXS(n) ((n) << 1) 192 #define PX_STIC_POLL_OFFSET __PXS(0x000000) 193 #define PX_STAMP_OFFSET __PXS(0x0c0000) 194 #define PX_STIC_OFFSET __PXS(0x180000) 195 #define PX_VDAC_OFFSET __PXS(0x200000) 196 #define PX_VDAC_RESET_OFFSET __PXS(0x300000) 197 #define PX_ROM_OFFSET __PXS(0x300000) 202 #define PXG_STIC_POLL_OFFSET __PXS(0x000000) 203 #define PXG_STAMP_OFFSET __PXS(0x0c0000) 204 #define PXG_STIC_OFFSET __PXS(0x180000) 205 #define PXG_SRAM_OFFSET __PXS(0x200000) 206 #define PXG_HOST_INTR_OFFSET __PXS(0x280000) 207 #define PXG_COPROC_INTR_OFFSET __PXS(0x2c0000) 208 #define PXG_VDAC_OFFSET __PXS(0x300000) 209 #define PXG_VDAC_RESET_OFFSET __PXS(0x340000) 210 #define PXG_ROM_OFFSET __PXS(0x380000) 211 #define PXG_N10_START_OFFSET __PXS(0x380000) 212 #define PXG_N10_RESET_OFFSET __PXS(0x3c0000) 223 volatile int32_t
hsync;
224 volatile int32_t __pad4;
226 volatile int32_t __pad5;
228 volatile int32_t __pad6;
229 volatile int32_t
vsync;
230 volatile int32_t __pad7;
232 volatile int32_t __pad8;
233 volatile int32_t
vtest;
234 volatile int32_t __pad9;
236 volatile int32_t __pad10;
237 volatile int32_t __pad11;
238 volatile int32_t __pad12;
240 volatile int32_t __pad13;
242 volatile int32_t __pad14;
244 volatile int32_t __pad15;
245 volatile int32_t __pad16;
246 volatile int32_t __pad17;
248 volatile int32_t __pad18;
249 volatile int32_t
modcl;
250 volatile int32_t __pad19;
275 #define STIC_CSR_TSTFNC 0x00000003 276 # define STIC_CSR_TSTFNC_NORMAL 0 277 # define STIC_CSR_TSTFNC_PARITY 1 278 # define STIC_CSR_TSTFNC_CNTPIX 2 279 # define STIC_CSR_TSTFNC_TSTDAC 3 280 #define STIC_CSR_CHECKPAR 0x00000004 281 #define STIC_CSR_STARTVT 0x00000010 282 #define STIC_CSR_START 0x00000020 283 #define STIC_CSR_RESET 0x00000040 284 #define STIC_CSR_STARTST 0x00000080 293 #define STIC_INT_E_EN 0x00000001 294 #define STIC_INT_E 0x00000002 295 #define STIC_INT_E_WE 0x00000004 297 #define STIC_INT_V_EN 0x00000100 298 #define STIC_INT_V 0x00000200 299 #define STIC_INT_V_WE 0x00000400 301 #define STIC_INT_P_EN 0x00010000 302 #define STIC_INT_P 0x00020000 303 #define STIC_INT_P_WE 0x00040000 305 #define STIC_INT_E_MASK (STIC_INT_E_EN | STIC_INT_E | STIC_INT_E_WE) 306 #define STIC_INT_V_MASK (STIC_INT_V_EN | STIC_INT_V | STIC_INT_V_WE) 307 #define STIC_INT_P_MASK (STIC_INT_P_EN | STIC_INT_P | STIC_INT_P_WE) 308 #define STIC_INT_MASK (STIC_INT_E_MASK | STIC_INT_P_MASK | STIC_INT_V_MASK) 310 #define STIC_INT_WE (STIC_INT_E_WE | STIC_INT_V_WE | STIC_INT_P_WE) 311 #define STIC_INT_CLR (STIC_INT_E_EN | STIC_INT_V_EN | STIC_INT_P_EN) 335 static __inline__ u_long px_sys2stic
__P((
void *));
336 static __inline__ u_long px_sys2dma
__P((
void *));
337 static __inline__
volatile int32_t *px_poll_addr
__P((caddr_t,
void *));
339 static __inline__ u_long
346 v = ((v & ~0x7fff) << 3) | (v & 0x7fff);
347 return (v & 0x1ffff800);
350 static __inline__ u_long
355 return px_sys2stic(addr) >> 9;
362 static __inline__
volatile int32_t *
363 px_poll_addr(slotbase, addr)
368 return (
volatile int32_t *)(slotbase + px_sys2dma(addr));