sna_reg.h revision 03b705cf
1#ifndef SNA_REG_H 2#define SNA_REG_H 3 4/* Flush */ 5#define MI_FLUSH (0x04<<23) 6#define MI_FLUSH_DW (0x26<<23) 7 8#define MI_WRITE_DIRTY_STATE (1<<4) 9#define MI_END_SCENE (1<<3) 10#define MI_GLOBAL_SNAPSHOT_COUNT_RESET (1<<3) 11#define MI_INHIBIT_RENDER_CACHE_FLUSH (1<<2) 12#define MI_STATE_INSTRUCTION_CACHE_FLUSH (1<<1) 13#define MI_INVALIDATE_MAP_CACHE (1<<0) 14/* broadwater flush bits */ 15#define BRW_MI_GLOBAL_SNAPSHOT_RESET (1 << 3) 16 17#define MI_BATCH_BUFFER_END (0xA << 23) 18 19/* Noop */ 20#define MI_NOOP 0x00 21#define MI_NOOP_WRITE_ID (1<<22) 22#define MI_NOOP_ID_MASK (1<<22 - 1) 23 24/* Wait for Events */ 25#define MI_WAIT_FOR_EVENT (0x03<<23) 26#define MI_WAIT_FOR_PIPEB_SVBLANK (1<<18) 27#define MI_WAIT_FOR_PIPEA_SVBLANK (1<<17) 28#define MI_WAIT_FOR_OVERLAY_FLIP (1<<16) 29#define MI_WAIT_FOR_PIPEB_VBLANK (1<<7) 30#define MI_WAIT_FOR_PIPEB_SCAN_LINE_WINDOW (1<<5) 31#define MI_WAIT_FOR_PIPEA_VBLANK (1<<3) 32#define MI_WAIT_FOR_PIPEA_SCAN_LINE_WINDOW (1<<1) 33 34/* Set the scan line for MI_WAIT_FOR_PIPE?_SCAN_LINE_WINDOW */ 35#define MI_LOAD_SCAN_LINES_INCL (0x12<<23) 36#define MI_LOAD_SCAN_LINES_DISPLAY_PIPEA (0) 37#define MI_LOAD_SCAN_LINES_DISPLAY_PIPEB (0x1<<20) 38 39/* BLT commands */ 40#define BLT_WRITE_ALPHA (1<<21) 41#define BLT_WRITE_RGB (1<<20) 42#define BLT_SRC_TILED (1<<15) 43#define BLT_DST_TILED (1<<11) 44 45#define COLOR_BLT_CMD ((2<<29)|(0x40<<22)|(0x3)) 46#define XY_COLOR_BLT ((2<<29)|(0x50<<22)|(0x4)) 47#define XY_SETUP_BLT ((2<<29)|(1<<22)|6) 48#define XY_SETUP_MONO_PATTERN_SL_BLT ((2<<29)|(0x11<<22)|7) 49#define XY_SETUP_CLIP ((2<<29)|(3<<22)|1) 50#define XY_SCANLINE_BLT ((2<<29)|(0x25<<22)|1) 51#define XY_TEXT_IMMEDIATE_BLT ((2<<29)|(0x31<<22)|(1<<16)) 52#define XY_SRC_COPY_BLT_CMD ((2<<29)|(0x53<<22)|6) 53#define SRC_COPY_BLT_CMD ((2<<29)|(0x43<<22)|0x4) 54#define XY_PAT_BLT ((2<<29)|(0x51<<22)|0x4) 55#define XY_PAT_BLT_IMMEDIATE ((2<<29)|(0x72<<22)) 56#define XY_MONO_PAT ((0x2<<29)|(0x52<<22)|0x7) 57#define XY_MONO_SRC_COPY ((0x2<<29)|(0x54<<22)|(0x6)) 58#define XY_MONO_SRC_COPY_IMM ((0x2<<29)|(0x71<<22)) 59#define XY_FULL_MONO_PATTERN_BLT ((0x2<<29)|(0x57<<22)|0xa) 60#define XY_FULL_MONO_PATTERN_MONO_SRC_BLT ((0x2<<29)|(0x58<<22)|0xa) 61 62/* FLUSH commands */ 63#define BRW_3D(Pipeline,Opcode,Subopcode) \ 64 ((3 << 29) | \ 65 ((Pipeline) << 27) | \ 66 ((Opcode) << 24) | \ 67 ((Subopcode) << 16)) 68#define PIPE_CONTROL BRW_3D(3, 2, 0) 69#define PIPE_CONTROL_NOWRITE (0 << 14) 70#define PIPE_CONTROL_WRITE_QWORD (1 << 14) 71#define PIPE_CONTROL_WRITE_DEPTH (2 << 14) 72#define PIPE_CONTROL_WRITE_TIME (3 << 14) 73#define PIPE_CONTROL_DEPTH_STALL (1 << 13) 74#define PIPE_CONTROL_WC_FLUSH (1 << 12) 75#define PIPE_CONTROL_IS_FLUSH (1 << 11) 76#define PIPE_CONTROL_TC_FLUSH (1 << 10) 77#define PIPE_CONTROL_NOTIFY_ENABLE (1 << 8) 78#define PIPE_CONTROL_GLOBAL_GTT (1 << 2) 79#define PIPE_CONTROL_LOCAL_PGTT (0 << 2) 80#define PIPE_CONTROL_DEPTH_CACHE_FLUSH (1 << 0) 81 82#endif 83