Home | History | Annotate | Download | only in freedreno
      1 #ifndef ADRENO_PM4_XML
      2 #define ADRENO_PM4_XML
      3 
      4 /* Autogenerated file, DO NOT EDIT manually!
      5 
      6 This file was generated by the rules-ng-ng headergen tool in this git repository:
      7 http://github.com/freedreno/envytools/
      8 git clone https://github.com/freedreno/envytools.git
      9 
     10 The rules-ng-ng source files this header was generated from are:
     11 - /home/robclark/src/freedreno/envytools/rnndb/adreno.xml               (    431 bytes, from 2016-04-26 17:56:44)
     12 - /home/robclark/src/freedreno/envytools/rnndb/freedreno_copyright.xml  (   1572 bytes, from 2016-02-10 17:07:21)
     13 - /home/robclark/src/freedreno/envytools/rnndb/adreno/a2xx.xml          (  32907 bytes, from 2016-11-26 23:01:08)
     14 - /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_common.xml (  12025 bytes, from 2016-11-26 23:01:08)
     15 - /home/robclark/src/freedreno/envytools/rnndb/adreno/adreno_pm4.xml    (  23277 bytes, from 2016-12-24 05:01:47)
     16 - /home/robclark/src/freedreno/envytools/rnndb/adreno/a3xx.xml          (  83840 bytes, from 2016-11-26 23:01:08)
     17 - /home/robclark/src/freedreno/envytools/rnndb/adreno/a4xx.xml          ( 110757 bytes, from 2016-12-26 17:51:07)
     18 - /home/robclark/src/freedreno/envytools/rnndb/adreno/a5xx.xml          ( 100594 bytes, from 2017-01-20 23:03:30)
     19 - /home/robclark/src/freedreno/envytools/rnndb/adreno/ocmem.xml         (   1773 bytes, from 2015-09-24 17:30:00)
     20 
     21 Copyright (C) 2013-2016 by the following authors:
     22 - Rob Clark <robdclark (at) gmail.com> (robclark)
     23 - Ilia Mirkin <imirkin (at) alum.mit.edu> (imirkin)
     24 
     25 Permission is hereby granted, free of charge, to any person obtaining
     26 a copy of this software and associated documentation files (the
     27 "Software"), to deal in the Software without restriction, including
     28 without limitation the rights to use, copy, modify, merge, publish,
     29 distribute, sublicense, and/or sell copies of the Software, and to
     30 permit persons to whom the Software is furnished to do so, subject to
     31 the following conditions:
     32 
     33 The above copyright notice and this permission notice (including the
     34 next paragraph) shall be included in all copies or substantial
     35 portions of the Software.
     36 
     37 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
     38 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
     39 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
     40 IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
     41 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
     42 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
     43 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
     44 */
     45 
     46 
     47 enum vgt_event_type {
     48 	VS_DEALLOC = 0,
     49 	PS_DEALLOC = 1,
     50 	VS_DONE_TS = 2,
     51 	PS_DONE_TS = 3,
     52 	CACHE_FLUSH_TS = 4,
     53 	CONTEXT_DONE = 5,
     54 	CACHE_FLUSH = 6,
     55 	HLSQ_FLUSH = 7,
     56 	VIZQUERY_START = 7,
     57 	VIZQUERY_END = 8,
     58 	SC_WAIT_WC = 9,
     59 	RST_PIX_CNT = 13,
     60 	RST_VTX_CNT = 14,
     61 	TILE_FLUSH = 15,
     62 	STAT_EVENT = 16,
     63 	CACHE_FLUSH_AND_INV_TS_EVENT = 20,
     64 	ZPASS_DONE = 21,
     65 	CACHE_FLUSH_AND_INV_EVENT = 22,
     66 	PERFCOUNTER_START = 23,
     67 	PERFCOUNTER_STOP = 24,
     68 	VS_FETCH_DONE = 27,
     69 	FACENESS_FLUSH = 28,
     70 	FLUSH_SO_0 = 17,
     71 	FLUSH_SO_1 = 18,
     72 	FLUSH_SO_2 = 19,
     73 	FLUSH_SO_3 = 20,
     74 	UNK_19 = 25,
     75 	UNK_1C = 28,
     76 	UNK_1D = 29,
     77 	BLIT = 30,
     78 	UNK_25 = 37,
     79 	UNK_26 = 38,
     80 	UNK_2C = 44,
     81 	UNK_2D = 45,
     82 };
     83 
     84 enum pc_di_primtype {
     85 	DI_PT_NONE = 0,
     86 	DI_PT_POINTLIST_PSIZE = 1,
     87 	DI_PT_LINELIST = 2,
     88 	DI_PT_LINESTRIP = 3,
     89 	DI_PT_TRILIST = 4,
     90 	DI_PT_TRIFAN = 5,
     91 	DI_PT_TRISTRIP = 6,
     92 	DI_PT_LINELOOP = 7,
     93 	DI_PT_RECTLIST = 8,
     94 	DI_PT_POINTLIST = 9,
     95 	DI_PT_LINE_ADJ = 10,
     96 	DI_PT_LINESTRIP_ADJ = 11,
     97 	DI_PT_TRI_ADJ = 12,
     98 	DI_PT_TRISTRIP_ADJ = 13,
     99 };
    100 
    101 enum pc_di_src_sel {
    102 	DI_SRC_SEL_DMA = 0,
    103 	DI_SRC_SEL_IMMEDIATE = 1,
    104 	DI_SRC_SEL_AUTO_INDEX = 2,
    105 	DI_SRC_SEL_RESERVED = 3,
    106 };
    107 
    108 enum pc_di_index_size {
    109 	INDEX_SIZE_IGN = 0,
    110 	INDEX_SIZE_16_BIT = 0,
    111 	INDEX_SIZE_32_BIT = 1,
    112 	INDEX_SIZE_8_BIT = 2,
    113 	INDEX_SIZE_INVALID = 0,
    114 };
    115 
    116 enum pc_di_vis_cull_mode {
    117 	IGNORE_VISIBILITY = 0,
    118 	USE_VISIBILITY = 1,
    119 };
    120 
    121 enum adreno_pm4_packet_type {
    122 	CP_TYPE0_PKT = 0,
    123 	CP_TYPE1_PKT = 0x40000000,
    124 	CP_TYPE2_PKT = 0x80000000,
    125 	CP_TYPE3_PKT = 0xc0000000,
    126 	CP_TYPE4_PKT = 0x40000000,
    127 	CP_TYPE7_PKT = 0x70000000,
    128 };
    129 
    130 enum adreno_pm4_type3_packets {
    131 	CP_ME_INIT = 72,
    132 	CP_NOP = 16,
    133 	CP_PREEMPT_ENABLE = 28,
    134 	CP_PREEMPT_TOKEN = 30,
    135 	CP_INDIRECT_BUFFER = 63,
    136 	CP_INDIRECT_BUFFER_PFD = 55,
    137 	CP_WAIT_FOR_IDLE = 38,
    138 	CP_WAIT_REG_MEM = 60,
    139 	CP_WAIT_REG_EQ = 82,
    140 	CP_WAIT_REG_GTE = 83,
    141 	CP_WAIT_UNTIL_READ = 92,
    142 	CP_WAIT_IB_PFD_COMPLETE = 93,
    143 	CP_REG_RMW = 33,
    144 	CP_SET_BIN_DATA = 47,
    145 	CP_REG_TO_MEM = 62,
    146 	CP_MEM_WRITE = 61,
    147 	CP_MEM_WRITE_CNTR = 79,
    148 	CP_COND_EXEC = 68,
    149 	CP_COND_WRITE = 69,
    150 	CP_EVENT_WRITE = 70,
    151 	CP_EVENT_WRITE_SHD = 88,
    152 	CP_EVENT_WRITE_CFL = 89,
    153 	CP_EVENT_WRITE_ZPD = 91,
    154 	CP_RUN_OPENCL = 49,
    155 	CP_DRAW_INDX = 34,
    156 	CP_DRAW_INDX_2 = 54,
    157 	CP_DRAW_INDX_BIN = 52,
    158 	CP_DRAW_INDX_2_BIN = 53,
    159 	CP_VIZ_QUERY = 35,
    160 	CP_SET_STATE = 37,
    161 	CP_SET_CONSTANT = 45,
    162 	CP_IM_LOAD = 39,
    163 	CP_IM_LOAD_IMMEDIATE = 43,
    164 	CP_LOAD_CONSTANT_CONTEXT = 46,
    165 	CP_INVALIDATE_STATE = 59,
    166 	CP_SET_SHADER_BASES = 74,
    167 	CP_SET_BIN_MASK = 80,
    168 	CP_SET_BIN_SELECT = 81,
    169 	CP_CONTEXT_UPDATE = 94,
    170 	CP_INTERRUPT = 64,
    171 	CP_IM_STORE = 44,
    172 	CP_SET_DRAW_INIT_FLAGS = 75,
    173 	CP_SET_PROTECTED_MODE = 95,
    174 	CP_BOOTSTRAP_UCODE = 111,
    175 	CP_LOAD_STATE = 48,
    176 	CP_COND_INDIRECT_BUFFER_PFE = 58,
    177 	CP_COND_INDIRECT_BUFFER_PFD = 50,
    178 	CP_INDIRECT_BUFFER_PFE = 63,
    179 	CP_SET_BIN = 76,
    180 	CP_TEST_TWO_MEMS = 113,
    181 	CP_REG_WR_NO_CTXT = 120,
    182 	CP_RECORD_PFP_TIMESTAMP = 17,
    183 	CP_SET_SECURE_MODE = 102,
    184 	CP_WAIT_FOR_ME = 19,
    185 	CP_SET_DRAW_STATE = 67,
    186 	CP_DRAW_INDX_OFFSET = 56,
    187 	CP_DRAW_INDIRECT = 40,
    188 	CP_DRAW_INDX_INDIRECT = 41,
    189 	CP_DRAW_AUTO = 36,
    190 	CP_UNKNOWN_19 = 25,
    191 	CP_UNKNOWN_1A = 26,
    192 	CP_UNKNOWN_4E = 78,
    193 	CP_WIDE_REG_WRITE = 116,
    194 	CP_SCRATCH_TO_REG = 77,
    195 	CP_REG_TO_SCRATCH = 74,
    196 	CP_WAIT_MEM_WRITES = 18,
    197 	CP_COND_REG_EXEC = 71,
    198 	CP_MEM_TO_REG = 66,
    199 	CP_EXEC_CS = 51,
    200 	CP_PERFCOUNTER_ACTION = 80,
    201 	CP_SMMU_TABLE_UPDATE = 83,
    202 	CP_CONTEXT_REG_BUNCH = 92,
    203 	CP_YIELD_ENABLE = 28,
    204 	CP_SKIP_IB2_ENABLE_GLOBAL = 29,
    205 	CP_SKIP_IB2_ENABLE_LOCAL = 35,
    206 	CP_SET_SUBDRAW_SIZE = 53,
    207 	CP_SET_VISIBILITY_OVERRIDE = 100,
    208 	CP_PREEMPT_ENABLE_GLOBAL = 105,
    209 	CP_PREEMPT_ENABLE_LOCAL = 106,
    210 	CP_CONTEXT_SWITCH_YIELD = 107,
    211 	CP_SET_RENDER_MODE = 108,
    212 	CP_COMPUTE_CHECKPOINT = 110,
    213 	CP_MEM_TO_MEM = 115,
    214 	CP_BLIT = 44,
    215 	CP_UNK_39 = 57,
    216 	IN_IB_PREFETCH_END = 23,
    217 	IN_SUBBLK_PREFETCH = 31,
    218 	IN_INSTR_PREFETCH = 32,
    219 	IN_INSTR_MATCH = 71,
    220 	IN_CONST_PREFETCH = 73,
    221 	IN_INCR_UPDT_STATE = 85,
    222 	IN_INCR_UPDT_CONST = 86,
    223 	IN_INCR_UPDT_INSTR = 87,
    224 };
    225 
    226 enum adreno_state_block {
    227 	SB_VERT_TEX = 0,
    228 	SB_VERT_MIPADDR = 1,
    229 	SB_FRAG_TEX = 2,
    230 	SB_FRAG_MIPADDR = 3,
    231 	SB_VERT_SHADER = 4,
    232 	SB_GEOM_SHADER = 5,
    233 	SB_FRAG_SHADER = 6,
    234 	SB_COMPUTE_SHADER = 7,
    235 };
    236 
    237 enum adreno_state_type {
    238 	ST_SHADER = 0,
    239 	ST_CONSTANTS = 1,
    240 };
    241 
    242 enum adreno_state_src {
    243 	SS_DIRECT = 0,
    244 	SS_INVALID_ALL_IC = 2,
    245 	SS_INVALID_PART_IC = 3,
    246 	SS_INDIRECT = 4,
    247 	SS_INDIRECT_TCM = 5,
    248 	SS_INDIRECT_STM = 6,
    249 };
    250 
    251 enum a4xx_index_size {
    252 	INDEX4_SIZE_8_BIT = 0,
    253 	INDEX4_SIZE_16_BIT = 1,
    254 	INDEX4_SIZE_32_BIT = 2,
    255 };
    256 
    257 enum render_mode_cmd {
    258 	BYPASS = 1,
    259 	BINNING = 2,
    260 	GMEM = 3,
    261 	BLIT2D = 5,
    262 };
    263 
    264 enum cp_blit_cmd {
    265 	BLIT_OP_FILL = 0,
    266 	BLIT_OP_COPY = 1,
    267 };
    268 
    269 #define REG_CP_LOAD_STATE_0					0x00000000
    270 #define CP_LOAD_STATE_0_DST_OFF__MASK				0x0000ffff
    271 #define CP_LOAD_STATE_0_DST_OFF__SHIFT				0
    272 static inline uint32_t CP_LOAD_STATE_0_DST_OFF(uint32_t val)
    273 {
    274 	return ((val) << CP_LOAD_STATE_0_DST_OFF__SHIFT) & CP_LOAD_STATE_0_DST_OFF__MASK;
    275 }
    276 #define CP_LOAD_STATE_0_STATE_SRC__MASK				0x00070000
    277 #define CP_LOAD_STATE_0_STATE_SRC__SHIFT			16
    278 static inline uint32_t CP_LOAD_STATE_0_STATE_SRC(enum adreno_state_src val)
    279 {
    280 	return ((val) << CP_LOAD_STATE_0_STATE_SRC__SHIFT) & CP_LOAD_STATE_0_STATE_SRC__MASK;
    281 }
    282 #define CP_LOAD_STATE_0_STATE_BLOCK__MASK			0x00380000
    283 #define CP_LOAD_STATE_0_STATE_BLOCK__SHIFT			19
    284 static inline uint32_t CP_LOAD_STATE_0_STATE_BLOCK(enum adreno_state_block val)
    285 {
    286 	return ((val) << CP_LOAD_STATE_0_STATE_BLOCK__SHIFT) & CP_LOAD_STATE_0_STATE_BLOCK__MASK;
    287 }
    288 #define CP_LOAD_STATE_0_NUM_UNIT__MASK				0xffc00000
    289 #define CP_LOAD_STATE_0_NUM_UNIT__SHIFT				22
    290 static inline uint32_t CP_LOAD_STATE_0_NUM_UNIT(uint32_t val)
    291 {
    292 	return ((val) << CP_LOAD_STATE_0_NUM_UNIT__SHIFT) & CP_LOAD_STATE_0_NUM_UNIT__MASK;
    293 }
    294 
    295 #define REG_CP_LOAD_STATE_1					0x00000001
    296 #define CP_LOAD_STATE_1_STATE_TYPE__MASK			0x00000003
    297 #define CP_LOAD_STATE_1_STATE_TYPE__SHIFT			0
    298 static inline uint32_t CP_LOAD_STATE_1_STATE_TYPE(enum adreno_state_type val)
    299 {
    300 	return ((val) << CP_LOAD_STATE_1_STATE_TYPE__SHIFT) & CP_LOAD_STATE_1_STATE_TYPE__MASK;
    301 }
    302 #define CP_LOAD_STATE_1_EXT_SRC_ADDR__MASK			0xfffffffc
    303 #define CP_LOAD_STATE_1_EXT_SRC_ADDR__SHIFT			2
    304 static inline uint32_t CP_LOAD_STATE_1_EXT_SRC_ADDR(uint32_t val)
    305 {
    306 	assert(!(val & 0x3));
    307 	return ((val >> 2) << CP_LOAD_STATE_1_EXT_SRC_ADDR__SHIFT) & CP_LOAD_STATE_1_EXT_SRC_ADDR__MASK;
    308 }
    309 
    310 #define REG_CP_LOAD_STATE_2					0x00000002
    311 #define CP_LOAD_STATE_2_EXT_SRC_ADDR_HI__MASK			0xffffffff
    312 #define CP_LOAD_STATE_2_EXT_SRC_ADDR_HI__SHIFT			0
    313 static inline uint32_t CP_LOAD_STATE_2_EXT_SRC_ADDR_HI(uint32_t val)
    314 {
    315 	return ((val) << CP_LOAD_STATE_2_EXT_SRC_ADDR_HI__SHIFT) & CP_LOAD_STATE_2_EXT_SRC_ADDR_HI__MASK;
    316 }
    317 
    318 #define REG_CP_DRAW_INDX_0					0x00000000
    319 #define CP_DRAW_INDX_0_VIZ_QUERY__MASK				0xffffffff
    320 #define CP_DRAW_INDX_0_VIZ_QUERY__SHIFT				0
    321 static inline uint32_t CP_DRAW_INDX_0_VIZ_QUERY(uint32_t val)
    322 {
    323 	return ((val) << CP_DRAW_INDX_0_VIZ_QUERY__SHIFT) & CP_DRAW_INDX_0_VIZ_QUERY__MASK;
    324 }
    325 
    326 #define REG_CP_DRAW_INDX_1					0x00000001
    327 #define CP_DRAW_INDX_1_PRIM_TYPE__MASK				0x0000003f
    328 #define CP_DRAW_INDX_1_PRIM_TYPE__SHIFT				0
    329 static inline uint32_t CP_DRAW_INDX_1_PRIM_TYPE(enum pc_di_primtype val)
    330 {
    331 	return ((val) << CP_DRAW_INDX_1_PRIM_TYPE__SHIFT) & CP_DRAW_INDX_1_PRIM_TYPE__MASK;
    332 }
    333 #define CP_DRAW_INDX_1_SOURCE_SELECT__MASK			0x000000c0
    334 #define CP_DRAW_INDX_1_SOURCE_SELECT__SHIFT			6
    335 static inline uint32_t CP_DRAW_INDX_1_SOURCE_SELECT(enum pc_di_src_sel val)
    336 {
    337 	return ((val) << CP_DRAW_INDX_1_SOURCE_SELECT__SHIFT) & CP_DRAW_INDX_1_SOURCE_SELECT__MASK;
    338 }
    339 #define CP_DRAW_INDX_1_VIS_CULL__MASK				0x00000600
    340 #define CP_DRAW_INDX_1_VIS_CULL__SHIFT				9
    341 static inline uint32_t CP_DRAW_INDX_1_VIS_CULL(enum pc_di_vis_cull_mode val)
    342 {
    343 	return ((val) << CP_DRAW_INDX_1_VIS_CULL__SHIFT) & CP_DRAW_INDX_1_VIS_CULL__MASK;
    344 }
    345 #define CP_DRAW_INDX_1_INDEX_SIZE__MASK				0x00000800
    346 #define CP_DRAW_INDX_1_INDEX_SIZE__SHIFT			11
    347 static inline uint32_t CP_DRAW_INDX_1_INDEX_SIZE(enum pc_di_index_size val)
    348 {
    349 	return ((val) << CP_DRAW_INDX_1_INDEX_SIZE__SHIFT) & CP_DRAW_INDX_1_INDEX_SIZE__MASK;
    350 }
    351 #define CP_DRAW_INDX_1_NOT_EOP					0x00001000
    352 #define CP_DRAW_INDX_1_SMALL_INDEX				0x00002000
    353 #define CP_DRAW_INDX_1_PRE_DRAW_INITIATOR_ENABLE		0x00004000
    354 #define CP_DRAW_INDX_1_NUM_INSTANCES__MASK			0xff000000
    355 #define CP_DRAW_INDX_1_NUM_INSTANCES__SHIFT			24
    356 static inline uint32_t CP_DRAW_INDX_1_NUM_INSTANCES(uint32_t val)
    357 {
    358 	return ((val) << CP_DRAW_INDX_1_NUM_INSTANCES__SHIFT) & CP_DRAW_INDX_1_NUM_INSTANCES__MASK;
    359 }
    360 
    361 #define REG_CP_DRAW_INDX_2					0x00000002
    362 #define CP_DRAW_INDX_2_NUM_INDICES__MASK			0xffffffff
    363 #define CP_DRAW_INDX_2_NUM_INDICES__SHIFT			0
    364 static inline uint32_t CP_DRAW_INDX_2_NUM_INDICES(uint32_t val)
    365 {
    366 	return ((val) << CP_DRAW_INDX_2_NUM_INDICES__SHIFT) & CP_DRAW_INDX_2_NUM_INDICES__MASK;
    367 }
    368 
    369 #define REG_CP_DRAW_INDX_3					0x00000003
    370 #define CP_DRAW_INDX_3_INDX_BASE__MASK				0xffffffff
    371 #define CP_DRAW_INDX_3_INDX_BASE__SHIFT				0
    372 static inline uint32_t CP_DRAW_INDX_3_INDX_BASE(uint32_t val)
    373 {
    374 	return ((val) << CP_DRAW_INDX_3_INDX_BASE__SHIFT) & CP_DRAW_INDX_3_INDX_BASE__MASK;
    375 }
    376 
    377 #define REG_CP_DRAW_INDX_4					0x00000004
    378 #define CP_DRAW_INDX_4_INDX_SIZE__MASK				0xffffffff
    379 #define CP_DRAW_INDX_4_INDX_SIZE__SHIFT				0
    380 static inline uint32_t CP_DRAW_INDX_4_INDX_SIZE(uint32_t val)
    381 {
    382 	return ((val) << CP_DRAW_INDX_4_INDX_SIZE__SHIFT) & CP_DRAW_INDX_4_INDX_SIZE__MASK;
    383 }
    384 
    385 #define REG_CP_DRAW_INDX_2_0					0x00000000
    386 #define CP_DRAW_INDX_2_0_VIZ_QUERY__MASK			0xffffffff
    387 #define CP_DRAW_INDX_2_0_VIZ_QUERY__SHIFT			0
    388 static inline uint32_t CP_DRAW_INDX_2_0_VIZ_QUERY(uint32_t val)
    389 {
    390 	return ((val) << CP_DRAW_INDX_2_0_VIZ_QUERY__SHIFT) & CP_DRAW_INDX_2_0_VIZ_QUERY__MASK;
    391 }
    392 
    393 #define REG_CP_DRAW_INDX_2_1					0x00000001
    394 #define CP_DRAW_INDX_2_1_PRIM_TYPE__MASK			0x0000003f
    395 #define CP_DRAW_INDX_2_1_PRIM_TYPE__SHIFT			0
    396 static inline uint32_t CP_DRAW_INDX_2_1_PRIM_TYPE(enum pc_di_primtype val)
    397 {
    398 	return ((val) << CP_DRAW_INDX_2_1_PRIM_TYPE__SHIFT) & CP_DRAW_INDX_2_1_PRIM_TYPE__MASK;
    399 }
    400 #define CP_DRAW_INDX_2_1_SOURCE_SELECT__MASK			0x000000c0
    401 #define CP_DRAW_INDX_2_1_SOURCE_SELECT__SHIFT			6
    402 static inline uint32_t CP_DRAW_INDX_2_1_SOURCE_SELECT(enum pc_di_src_sel val)
    403 {
    404 	return ((val) << CP_DRAW_INDX_2_1_SOURCE_SELECT__SHIFT) & CP_DRAW_INDX_2_1_SOURCE_SELECT__MASK;
    405 }
    406 #define CP_DRAW_INDX_2_1_VIS_CULL__MASK				0x00000600
    407 #define CP_DRAW_INDX_2_1_VIS_CULL__SHIFT			9
    408 static inline uint32_t CP_DRAW_INDX_2_1_VIS_CULL(enum pc_di_vis_cull_mode val)
    409 {
    410 	return ((val) << CP_DRAW_INDX_2_1_VIS_CULL__SHIFT) & CP_DRAW_INDX_2_1_VIS_CULL__MASK;
    411 }
    412 #define CP_DRAW_INDX_2_1_INDEX_SIZE__MASK			0x00000800
    413 #define CP_DRAW_INDX_2_1_INDEX_SIZE__SHIFT			11
    414 static inline uint32_t CP_DRAW_INDX_2_1_INDEX_SIZE(enum pc_di_index_size val)
    415 {
    416 	return ((val) << CP_DRAW_INDX_2_1_INDEX_SIZE__SHIFT) & CP_DRAW_INDX_2_1_INDEX_SIZE__MASK;
    417 }
    418 #define CP_DRAW_INDX_2_1_NOT_EOP				0x00001000
    419 #define CP_DRAW_INDX_2_1_SMALL_INDEX				0x00002000
    420 #define CP_DRAW_INDX_2_1_PRE_DRAW_INITIATOR_ENABLE		0x00004000
    421 #define CP_DRAW_INDX_2_1_NUM_INSTANCES__MASK			0xff000000
    422 #define CP_DRAW_INDX_2_1_NUM_INSTANCES__SHIFT			24
    423 static inline uint32_t CP_DRAW_INDX_2_1_NUM_INSTANCES(uint32_t val)
    424 {
    425 	return ((val) << CP_DRAW_INDX_2_1_NUM_INSTANCES__SHIFT) & CP_DRAW_INDX_2_1_NUM_INSTANCES__MASK;
    426 }
    427 
    428 #define REG_CP_DRAW_INDX_2_2					0x00000002
    429 #define CP_DRAW_INDX_2_2_NUM_INDICES__MASK			0xffffffff
    430 #define CP_DRAW_INDX_2_2_NUM_INDICES__SHIFT			0
    431 static inline uint32_t CP_DRAW_INDX_2_2_NUM_INDICES(uint32_t val)
    432 {
    433 	return ((val) << CP_DRAW_INDX_2_2_NUM_INDICES__SHIFT) & CP_DRAW_INDX_2_2_NUM_INDICES__MASK;
    434 }
    435 
    436 #define REG_CP_DRAW_INDX_OFFSET_0				0x00000000
    437 #define CP_DRAW_INDX_OFFSET_0_PRIM_TYPE__MASK			0x0000003f
    438 #define CP_DRAW_INDX_OFFSET_0_PRIM_TYPE__SHIFT			0
    439 static inline uint32_t CP_DRAW_INDX_OFFSET_0_PRIM_TYPE(enum pc_di_primtype val)
    440 {
    441 	return ((val) << CP_DRAW_INDX_OFFSET_0_PRIM_TYPE__SHIFT) & CP_DRAW_INDX_OFFSET_0_PRIM_TYPE__MASK;
    442 }
    443 #define CP_DRAW_INDX_OFFSET_0_SOURCE_SELECT__MASK		0x000000c0
    444 #define CP_DRAW_INDX_OFFSET_0_SOURCE_SELECT__SHIFT		6
    445 static inline uint32_t CP_DRAW_INDX_OFFSET_0_SOURCE_SELECT(enum pc_di_src_sel val)
    446 {
    447 	return ((val) << CP_DRAW_INDX_OFFSET_0_SOURCE_SELECT__SHIFT) & CP_DRAW_INDX_OFFSET_0_SOURCE_SELECT__MASK;
    448 }
    449 #define CP_DRAW_INDX_OFFSET_0_VIS_CULL__MASK			0x00000300
    450 #define CP_DRAW_INDX_OFFSET_0_VIS_CULL__SHIFT			8
    451 static inline uint32_t CP_DRAW_INDX_OFFSET_0_VIS_CULL(enum pc_di_vis_cull_mode val)
    452 {
    453 	return ((val) << CP_DRAW_INDX_OFFSET_0_VIS_CULL__SHIFT) & CP_DRAW_INDX_OFFSET_0_VIS_CULL__MASK;
    454 }
    455 #define CP_DRAW_INDX_OFFSET_0_INDEX_SIZE__MASK			0x00000c00
    456 #define CP_DRAW_INDX_OFFSET_0_INDEX_SIZE__SHIFT			10
    457 static inline uint32_t CP_DRAW_INDX_OFFSET_0_INDEX_SIZE(enum a4xx_index_size val)
    458 {
    459 	return ((val) << CP_DRAW_INDX_OFFSET_0_INDEX_SIZE__SHIFT) & CP_DRAW_INDX_OFFSET_0_INDEX_SIZE__MASK;
    460 }
    461 #define CP_DRAW_INDX_OFFSET_0_TESS_MODE__MASK			0x01f00000
    462 #define CP_DRAW_INDX_OFFSET_0_TESS_MODE__SHIFT			20
    463 static inline uint32_t CP_DRAW_INDX_OFFSET_0_TESS_MODE(uint32_t val)
    464 {
    465 	return ((val) << CP_DRAW_INDX_OFFSET_0_TESS_MODE__SHIFT) & CP_DRAW_INDX_OFFSET_0_TESS_MODE__MASK;
    466 }
    467 
    468 #define REG_CP_DRAW_INDX_OFFSET_1				0x00000001
    469 #define CP_DRAW_INDX_OFFSET_1_NUM_INSTANCES__MASK		0xffffffff
    470 #define CP_DRAW_INDX_OFFSET_1_NUM_INSTANCES__SHIFT		0
    471 static inline uint32_t CP_DRAW_INDX_OFFSET_1_NUM_INSTANCES(uint32_t val)
    472 {
    473 	return ((val) << CP_DRAW_INDX_OFFSET_1_NUM_INSTANCES__SHIFT) & CP_DRAW_INDX_OFFSET_1_NUM_INSTANCES__MASK;
    474 }
    475 
    476 #define REG_CP_DRAW_INDX_OFFSET_2				0x00000002
    477 #define CP_DRAW_INDX_OFFSET_2_NUM_INDICES__MASK			0xffffffff
    478 #define CP_DRAW_INDX_OFFSET_2_NUM_INDICES__SHIFT		0
    479 static inline uint32_t CP_DRAW_INDX_OFFSET_2_NUM_INDICES(uint32_t val)
    480 {
    481 	return ((val) << CP_DRAW_INDX_OFFSET_2_NUM_INDICES__SHIFT) & CP_DRAW_INDX_OFFSET_2_NUM_INDICES__MASK;
    482 }
    483 
    484 #define REG_CP_DRAW_INDX_OFFSET_3				0x00000003
    485 
    486 #define REG_CP_DRAW_INDX_OFFSET_4				0x00000004
    487 #define CP_DRAW_INDX_OFFSET_4_INDX_BASE__MASK			0xffffffff
    488 #define CP_DRAW_INDX_OFFSET_4_INDX_BASE__SHIFT			0
    489 static inline uint32_t CP_DRAW_INDX_OFFSET_4_INDX_BASE(uint32_t val)
    490 {
    491 	return ((val) << CP_DRAW_INDX_OFFSET_4_INDX_BASE__SHIFT) & CP_DRAW_INDX_OFFSET_4_INDX_BASE__MASK;
    492 }
    493 
    494 #define REG_CP_DRAW_INDX_OFFSET_5				0x00000005
    495 #define CP_DRAW_INDX_OFFSET_5_INDX_SIZE__MASK			0xffffffff
    496 #define CP_DRAW_INDX_OFFSET_5_INDX_SIZE__SHIFT			0
    497 static inline uint32_t CP_DRAW_INDX_OFFSET_5_INDX_SIZE(uint32_t val)
    498 {
    499 	return ((val) << CP_DRAW_INDX_OFFSET_5_INDX_SIZE__SHIFT) & CP_DRAW_INDX_OFFSET_5_INDX_SIZE__MASK;
    500 }
    501 
    502 static inline uint32_t REG_CP_SET_DRAW_STATE_(uint32_t i0) { return 0x00000000 + 0x3*i0; }
    503 
    504 static inline uint32_t REG_CP_SET_DRAW_STATE__0(uint32_t i0) { return 0x00000000 + 0x3*i0; }
    505 #define CP_SET_DRAW_STATE__0_COUNT__MASK			0x0000ffff
    506 #define CP_SET_DRAW_STATE__0_COUNT__SHIFT			0
    507 static inline uint32_t CP_SET_DRAW_STATE__0_COUNT(uint32_t val)
    508 {
    509 	return ((val) << CP_SET_DRAW_STATE__0_COUNT__SHIFT) & CP_SET_DRAW_STATE__0_COUNT__MASK;
    510 }
    511 #define CP_SET_DRAW_STATE__0_DIRTY				0x00010000
    512 #define CP_SET_DRAW_STATE__0_DISABLE				0x00020000
    513 #define CP_SET_DRAW_STATE__0_DISABLE_ALL_GROUPS			0x00040000
    514 #define CP_SET_DRAW_STATE__0_LOAD_IMMED				0x00080000
    515 #define CP_SET_DRAW_STATE__0_GROUP_ID__MASK			0x1f000000
    516 #define CP_SET_DRAW_STATE__0_GROUP_ID__SHIFT			24
    517 static inline uint32_t CP_SET_DRAW_STATE__0_GROUP_ID(uint32_t val)
    518 {
    519 	return ((val) << CP_SET_DRAW_STATE__0_GROUP_ID__SHIFT) & CP_SET_DRAW_STATE__0_GROUP_ID__MASK;
    520 }
    521 
    522 static inline uint32_t REG_CP_SET_DRAW_STATE__1(uint32_t i0) { return 0x00000001 + 0x3*i0; }
    523 #define CP_SET_DRAW_STATE__1_ADDR_LO__MASK			0xffffffff
    524 #define CP_SET_DRAW_STATE__1_ADDR_LO__SHIFT			0
    525 static inline uint32_t CP_SET_DRAW_STATE__1_ADDR_LO(uint32_t val)
    526 {
    527 	return ((val) << CP_SET_DRAW_STATE__1_ADDR_LO__SHIFT) & CP_SET_DRAW_STATE__1_ADDR_LO__MASK;
    528 }
    529 
    530 static inline uint32_t REG_CP_SET_DRAW_STATE__2(uint32_t i0) { return 0x00000002 + 0x3*i0; }
    531 #define CP_SET_DRAW_STATE__2_ADDR_HI__MASK			0xffffffff
    532 #define CP_SET_DRAW_STATE__2_ADDR_HI__SHIFT			0
    533 static inline uint32_t CP_SET_DRAW_STATE__2_ADDR_HI(uint32_t val)
    534 {
    535 	return ((val) << CP_SET_DRAW_STATE__2_ADDR_HI__SHIFT) & CP_SET_DRAW_STATE__2_ADDR_HI__MASK;
    536 }
    537 
    538 #define REG_CP_SET_BIN_0					0x00000000
    539 
    540 #define REG_CP_SET_BIN_1					0x00000001
    541 #define CP_SET_BIN_1_X1__MASK					0x0000ffff
    542 #define CP_SET_BIN_1_X1__SHIFT					0
    543 static inline uint32_t CP_SET_BIN_1_X1(uint32_t val)
    544 {
    545 	return ((val) << CP_SET_BIN_1_X1__SHIFT) & CP_SET_BIN_1_X1__MASK;
    546 }
    547 #define CP_SET_BIN_1_Y1__MASK					0xffff0000
    548 #define CP_SET_BIN_1_Y1__SHIFT					16
    549 static inline uint32_t CP_SET_BIN_1_Y1(uint32_t val)
    550 {
    551 	return ((val) << CP_SET_BIN_1_Y1__SHIFT) & CP_SET_BIN_1_Y1__MASK;
    552 }
    553 
    554 #define REG_CP_SET_BIN_2					0x00000002
    555 #define CP_SET_BIN_2_X2__MASK					0x0000ffff
    556 #define CP_SET_BIN_2_X2__SHIFT					0
    557 static inline uint32_t CP_SET_BIN_2_X2(uint32_t val)
    558 {
    559 	return ((val) << CP_SET_BIN_2_X2__SHIFT) & CP_SET_BIN_2_X2__MASK;
    560 }
    561 #define CP_SET_BIN_2_Y2__MASK					0xffff0000
    562 #define CP_SET_BIN_2_Y2__SHIFT					16
    563 static inline uint32_t CP_SET_BIN_2_Y2(uint32_t val)
    564 {
    565 	return ((val) << CP_SET_BIN_2_Y2__SHIFT) & CP_SET_BIN_2_Y2__MASK;
    566 }
    567 
    568 #define REG_CP_SET_BIN_DATA_0					0x00000000
    569 #define CP_SET_BIN_DATA_0_BIN_DATA_ADDR__MASK			0xffffffff
    570 #define CP_SET_BIN_DATA_0_BIN_DATA_ADDR__SHIFT			0
    571 static inline uint32_t CP_SET_BIN_DATA_0_BIN_DATA_ADDR(uint32_t val)
    572 {
    573 	return ((val) << CP_SET_BIN_DATA_0_BIN_DATA_ADDR__SHIFT) & CP_SET_BIN_DATA_0_BIN_DATA_ADDR__MASK;
    574 }
    575 
    576 #define REG_CP_SET_BIN_DATA_1					0x00000001
    577 #define CP_SET_BIN_DATA_1_BIN_SIZE_ADDRESS__MASK		0xffffffff
    578 #define CP_SET_BIN_DATA_1_BIN_SIZE_ADDRESS__SHIFT		0
    579 static inline uint32_t CP_SET_BIN_DATA_1_BIN_SIZE_ADDRESS(uint32_t val)
    580 {
    581 	return ((val) << CP_SET_BIN_DATA_1_BIN_SIZE_ADDRESS__SHIFT) & CP_SET_BIN_DATA_1_BIN_SIZE_ADDRESS__MASK;
    582 }
    583 
    584 #define REG_CP_REG_TO_MEM_0					0x00000000
    585 #define CP_REG_TO_MEM_0_REG__MASK				0x0000ffff
    586 #define CP_REG_TO_MEM_0_REG__SHIFT				0
    587 static inline uint32_t CP_REG_TO_MEM_0_REG(uint32_t val)
    588 {
    589 	return ((val) << CP_REG_TO_MEM_0_REG__SHIFT) & CP_REG_TO_MEM_0_REG__MASK;
    590 }
    591 #define CP_REG_TO_MEM_0_CNT__MASK				0x3ff80000
    592 #define CP_REG_TO_MEM_0_CNT__SHIFT				19
    593 static inline uint32_t CP_REG_TO_MEM_0_CNT(uint32_t val)
    594 {
    595 	return ((val) << CP_REG_TO_MEM_0_CNT__SHIFT) & CP_REG_TO_MEM_0_CNT__MASK;
    596 }
    597 #define CP_REG_TO_MEM_0_64B					0x40000000
    598 #define CP_REG_TO_MEM_0_ACCUMULATE				0x80000000
    599 
    600 #define REG_CP_REG_TO_MEM_1					0x00000001
    601 #define CP_REG_TO_MEM_1_DEST__MASK				0xffffffff
    602 #define CP_REG_TO_MEM_1_DEST__SHIFT				0
    603 static inline uint32_t CP_REG_TO_MEM_1_DEST(uint32_t val)
    604 {
    605 	return ((val) << CP_REG_TO_MEM_1_DEST__SHIFT) & CP_REG_TO_MEM_1_DEST__MASK;
    606 }
    607 
    608 #define REG_CP_DISPATCH_COMPUTE_0				0x00000000
    609 
    610 #define REG_CP_DISPATCH_COMPUTE_1				0x00000001
    611 #define CP_DISPATCH_COMPUTE_1_X__MASK				0xffffffff
    612 #define CP_DISPATCH_COMPUTE_1_X__SHIFT				0
    613 static inline uint32_t CP_DISPATCH_COMPUTE_1_X(uint32_t val)
    614 {
    615 	return ((val) << CP_DISPATCH_COMPUTE_1_X__SHIFT) & CP_DISPATCH_COMPUTE_1_X__MASK;
    616 }
    617 
    618 #define REG_CP_DISPATCH_COMPUTE_2				0x00000002
    619 #define CP_DISPATCH_COMPUTE_2_Y__MASK				0xffffffff
    620 #define CP_DISPATCH_COMPUTE_2_Y__SHIFT				0
    621 static inline uint32_t CP_DISPATCH_COMPUTE_2_Y(uint32_t val)
    622 {
    623 	return ((val) << CP_DISPATCH_COMPUTE_2_Y__SHIFT) & CP_DISPATCH_COMPUTE_2_Y__MASK;
    624 }
    625 
    626 #define REG_CP_DISPATCH_COMPUTE_3				0x00000003
    627 #define CP_DISPATCH_COMPUTE_3_Z__MASK				0xffffffff
    628 #define CP_DISPATCH_COMPUTE_3_Z__SHIFT				0
    629 static inline uint32_t CP_DISPATCH_COMPUTE_3_Z(uint32_t val)
    630 {
    631 	return ((val) << CP_DISPATCH_COMPUTE_3_Z__SHIFT) & CP_DISPATCH_COMPUTE_3_Z__MASK;
    632 }
    633 
    634 #define REG_CP_SET_RENDER_MODE_0				0x00000000
    635 #define CP_SET_RENDER_MODE_0_MODE__MASK				0x000001ff
    636 #define CP_SET_RENDER_MODE_0_MODE__SHIFT			0
    637 static inline uint32_t CP_SET_RENDER_MODE_0_MODE(enum render_mode_cmd val)
    638 {
    639 	return ((val) << CP_SET_RENDER_MODE_0_MODE__SHIFT) & CP_SET_RENDER_MODE_0_MODE__MASK;
    640 }
    641 
    642 #define REG_CP_SET_RENDER_MODE_1				0x00000001
    643 #define CP_SET_RENDER_MODE_1_ADDR_0_LO__MASK			0xffffffff
    644 #define CP_SET_RENDER_MODE_1_ADDR_0_LO__SHIFT			0
    645 static inline uint32_t CP_SET_RENDER_MODE_1_ADDR_0_LO(uint32_t val)
    646 {
    647 	return ((val) << CP_SET_RENDER_MODE_1_ADDR_0_LO__SHIFT) & CP_SET_RENDER_MODE_1_ADDR_0_LO__MASK;
    648 }
    649 
    650 #define REG_CP_SET_RENDER_MODE_2				0x00000002
    651 #define CP_SET_RENDER_MODE_2_ADDR_0_HI__MASK			0xffffffff
    652 #define CP_SET_RENDER_MODE_2_ADDR_0_HI__SHIFT			0
    653 static inline uint32_t CP_SET_RENDER_MODE_2_ADDR_0_HI(uint32_t val)
    654 {
    655 	return ((val) << CP_SET_RENDER_MODE_2_ADDR_0_HI__SHIFT) & CP_SET_RENDER_MODE_2_ADDR_0_HI__MASK;
    656 }
    657 
    658 #define REG_CP_SET_RENDER_MODE_3				0x00000003
    659 #define CP_SET_RENDER_MODE_3_GMEM_ENABLE			0x00000010
    660 
    661 #define REG_CP_SET_RENDER_MODE_4				0x00000004
    662 
    663 #define REG_CP_SET_RENDER_MODE_5				0x00000005
    664 #define CP_SET_RENDER_MODE_5_ADDR_1_LEN__MASK			0xffffffff
    665 #define CP_SET_RENDER_MODE_5_ADDR_1_LEN__SHIFT			0
    666 static inline uint32_t CP_SET_RENDER_MODE_5_ADDR_1_LEN(uint32_t val)
    667 {
    668 	return ((val) << CP_SET_RENDER_MODE_5_ADDR_1_LEN__SHIFT) & CP_SET_RENDER_MODE_5_ADDR_1_LEN__MASK;
    669 }
    670 
    671 #define REG_CP_SET_RENDER_MODE_6				0x00000006
    672 #define CP_SET_RENDER_MODE_6_ADDR_1_LO__MASK			0xffffffff
    673 #define CP_SET_RENDER_MODE_6_ADDR_1_LO__SHIFT			0
    674 static inline uint32_t CP_SET_RENDER_MODE_6_ADDR_1_LO(uint32_t val)
    675 {
    676 	return ((val) << CP_SET_RENDER_MODE_6_ADDR_1_LO__SHIFT) & CP_SET_RENDER_MODE_6_ADDR_1_LO__MASK;
    677 }
    678 
    679 #define REG_CP_SET_RENDER_MODE_7				0x00000007
    680 #define CP_SET_RENDER_MODE_7_ADDR_1_HI__MASK			0xffffffff
    681 #define CP_SET_RENDER_MODE_7_ADDR_1_HI__SHIFT			0
    682 static inline uint32_t CP_SET_RENDER_MODE_7_ADDR_1_HI(uint32_t val)
    683 {
    684 	return ((val) << CP_SET_RENDER_MODE_7_ADDR_1_HI__SHIFT) & CP_SET_RENDER_MODE_7_ADDR_1_HI__MASK;
    685 }
    686 
    687 #define REG_CP_PERFCOUNTER_ACTION_0				0x00000000
    688 
    689 #define REG_CP_PERFCOUNTER_ACTION_1				0x00000001
    690 #define CP_PERFCOUNTER_ACTION_1_ADDR_0_LO__MASK			0xffffffff
    691 #define CP_PERFCOUNTER_ACTION_1_ADDR_0_LO__SHIFT		0
    692 static inline uint32_t CP_PERFCOUNTER_ACTION_1_ADDR_0_LO(uint32_t val)
    693 {
    694 	return ((val) << CP_PERFCOUNTER_ACTION_1_ADDR_0_LO__SHIFT) & CP_PERFCOUNTER_ACTION_1_ADDR_0_LO__MASK;
    695 }
    696 
    697 #define REG_CP_PERFCOUNTER_ACTION_2				0x00000002
    698 #define CP_PERFCOUNTER_ACTION_2_ADDR_0_HI__MASK			0xffffffff
    699 #define CP_PERFCOUNTER_ACTION_2_ADDR_0_HI__SHIFT		0
    700 static inline uint32_t CP_PERFCOUNTER_ACTION_2_ADDR_0_HI(uint32_t val)
    701 {
    702 	return ((val) << CP_PERFCOUNTER_ACTION_2_ADDR_0_HI__SHIFT) & CP_PERFCOUNTER_ACTION_2_ADDR_0_HI__MASK;
    703 }
    704 
    705 #define REG_CP_EVENT_WRITE_0					0x00000000
    706 #define CP_EVENT_WRITE_0_EVENT__MASK				0x000000ff
    707 #define CP_EVENT_WRITE_0_EVENT__SHIFT				0
    708 static inline uint32_t CP_EVENT_WRITE_0_EVENT(enum vgt_event_type val)
    709 {
    710 	return ((val) << CP_EVENT_WRITE_0_EVENT__SHIFT) & CP_EVENT_WRITE_0_EVENT__MASK;
    711 }
    712 
    713 #define REG_CP_EVENT_WRITE_1					0x00000001
    714 #define CP_EVENT_WRITE_1_ADDR_0_LO__MASK			0xffffffff
    715 #define CP_EVENT_WRITE_1_ADDR_0_LO__SHIFT			0
    716 static inline uint32_t CP_EVENT_WRITE_1_ADDR_0_LO(uint32_t val)
    717 {
    718 	return ((val) << CP_EVENT_WRITE_1_ADDR_0_LO__SHIFT) & CP_EVENT_WRITE_1_ADDR_0_LO__MASK;
    719 }
    720 
    721 #define REG_CP_EVENT_WRITE_2					0x00000002
    722 #define CP_EVENT_WRITE_2_ADDR_0_HI__MASK			0xffffffff
    723 #define CP_EVENT_WRITE_2_ADDR_0_HI__SHIFT			0
    724 static inline uint32_t CP_EVENT_WRITE_2_ADDR_0_HI(uint32_t val)
    725 {
    726 	return ((val) << CP_EVENT_WRITE_2_ADDR_0_HI__SHIFT) & CP_EVENT_WRITE_2_ADDR_0_HI__MASK;
    727 }
    728 
    729 #define REG_CP_EVENT_WRITE_3					0x00000003
    730 
    731 #define REG_CP_BLIT_0						0x00000000
    732 #define CP_BLIT_0_OP__MASK					0x0000000f
    733 #define CP_BLIT_0_OP__SHIFT					0
    734 static inline uint32_t CP_BLIT_0_OP(enum cp_blit_cmd val)
    735 {
    736 	return ((val) << CP_BLIT_0_OP__SHIFT) & CP_BLIT_0_OP__MASK;
    737 }
    738 
    739 #define REG_CP_BLIT_1						0x00000001
    740 #define CP_BLIT_1_SRC_X1__MASK					0x0000ffff
    741 #define CP_BLIT_1_SRC_X1__SHIFT					0
    742 static inline uint32_t CP_BLIT_1_SRC_X1(uint32_t val)
    743 {
    744 	return ((val) << CP_BLIT_1_SRC_X1__SHIFT) & CP_BLIT_1_SRC_X1__MASK;
    745 }
    746 #define CP_BLIT_1_SRC_Y1__MASK					0xffff0000
    747 #define CP_BLIT_1_SRC_Y1__SHIFT					16
    748 static inline uint32_t CP_BLIT_1_SRC_Y1(uint32_t val)
    749 {
    750 	return ((val) << CP_BLIT_1_SRC_Y1__SHIFT) & CP_BLIT_1_SRC_Y1__MASK;
    751 }
    752 
    753 #define REG_CP_BLIT_2						0x00000002
    754 #define CP_BLIT_2_SRC_X2__MASK					0x0000ffff
    755 #define CP_BLIT_2_SRC_X2__SHIFT					0
    756 static inline uint32_t CP_BLIT_2_SRC_X2(uint32_t val)
    757 {
    758 	return ((val) << CP_BLIT_2_SRC_X2__SHIFT) & CP_BLIT_2_SRC_X2__MASK;
    759 }
    760 #define CP_BLIT_2_SRC_Y2__MASK					0xffff0000
    761 #define CP_BLIT_2_SRC_Y2__SHIFT					16
    762 static inline uint32_t CP_BLIT_2_SRC_Y2(uint32_t val)
    763 {
    764 	return ((val) << CP_BLIT_2_SRC_Y2__SHIFT) & CP_BLIT_2_SRC_Y2__MASK;
    765 }
    766 
    767 #define REG_CP_BLIT_3						0x00000003
    768 #define CP_BLIT_3_DST_X1__MASK					0x0000ffff
    769 #define CP_BLIT_3_DST_X1__SHIFT					0
    770 static inline uint32_t CP_BLIT_3_DST_X1(uint32_t val)
    771 {
    772 	return ((val) << CP_BLIT_3_DST_X1__SHIFT) & CP_BLIT_3_DST_X1__MASK;
    773 }
    774 #define CP_BLIT_3_DST_Y1__MASK					0xffff0000
    775 #define CP_BLIT_3_DST_Y1__SHIFT					16
    776 static inline uint32_t CP_BLIT_3_DST_Y1(uint32_t val)
    777 {
    778 	return ((val) << CP_BLIT_3_DST_Y1__SHIFT) & CP_BLIT_3_DST_Y1__MASK;
    779 }
    780 
    781 #define REG_CP_BLIT_4						0x00000004
    782 #define CP_BLIT_4_DST_X2__MASK					0x0000ffff
    783 #define CP_BLIT_4_DST_X2__SHIFT					0
    784 static inline uint32_t CP_BLIT_4_DST_X2(uint32_t val)
    785 {
    786 	return ((val) << CP_BLIT_4_DST_X2__SHIFT) & CP_BLIT_4_DST_X2__MASK;
    787 }
    788 #define CP_BLIT_4_DST_Y2__MASK					0xffff0000
    789 #define CP_BLIT_4_DST_Y2__SHIFT					16
    790 static inline uint32_t CP_BLIT_4_DST_Y2(uint32_t val)
    791 {
    792 	return ((val) << CP_BLIT_4_DST_Y2__SHIFT) & CP_BLIT_4_DST_Y2__MASK;
    793 }
    794 
    795 
    796 #endif /* ADRENO_PM4_XML */
    797