adreno_pm4.xml.h 27 KB

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