Lines Matching refs:ib

58 	uint32_t *ib;  member
69 static void ac_do_parse_ib(FILE *f, struct ac_ib_parser *ib);
172 static uint32_t ac_ib_get(struct ac_ib_parser *ib) in ac_ib_get() argument
176 if (ib->cur_dw < ib->num_dw) { in ac_ib_get()
177 v = ib->ib[ib->cur_dw]; in ac_ib_get()
187 fprintf(ib->f, COLOR_RED "Valgrind: The next DWORD is garbage" in ac_ib_get()
190 fprintf(ib->f, "\n\035#%08x ", v); in ac_ib_get()
192 fprintf(ib->f, "\n\035#???????? "); in ac_ib_get()
195 ib->cur_dw++; in ac_ib_get()
200 struct ac_ib_parser *ib) in ac_parse_set_reg_packet() argument
202 unsigned reg_dw = ac_ib_get(ib); in ac_parse_set_reg_packet()
213 ac_dump_reg(f, ib->chip_class, reg + i*4, ac_ib_get(ib), ~0); in ac_parse_set_reg_packet()
216 static void ac_parse_packet3(FILE *f, uint32_t header, struct ac_ib_parser *ib, in ac_parse_packet3() argument
219 unsigned first_dw = ib->cur_dw; in ac_parse_packet3()
249 ac_parse_set_reg_packet(f, count, SI_CONTEXT_REG_OFFSET, ib); in ac_parse_packet3()
252 ac_parse_set_reg_packet(f, count, SI_CONFIG_REG_OFFSET, ib); in ac_parse_packet3()
255 ac_parse_set_reg_packet(f, count, CIK_UCONFIG_REG_OFFSET, ib); in ac_parse_packet3()
258 ac_parse_set_reg_packet(f, count, SI_SH_REG_OFFSET, ib); in ac_parse_packet3()
261 ac_dump_reg(f, ib->chip_class, R_0301F0_CP_COHER_CNTL, ac_ib_get(ib), ~0); in ac_parse_packet3()
262 ac_dump_reg(f, ib->chip_class, R_0301F4_CP_COHER_SIZE, ac_ib_get(ib), ~0); in ac_parse_packet3()
263 ac_dump_reg(f, ib->chip_class, R_030230_CP_COHER_SIZE_HI, ac_ib_get(ib), ~0); in ac_parse_packet3()
264 ac_dump_reg(f, ib->chip_class, R_0301F8_CP_COHER_BASE, ac_ib_get(ib), ~0); in ac_parse_packet3()
265 ac_dump_reg(f, ib->chip_class, R_0301E4_CP_COHER_BASE_HI, ac_ib_get(ib), ~0); in ac_parse_packet3()
266 print_named_value(f, "POLL_INTERVAL", ac_ib_get(ib), 16); in ac_parse_packet3()
269 if (ib->chip_class >= CIK) { in ac_parse_packet3()
270 ac_dump_reg(f, ib->chip_class, R_0301F0_CP_COHER_CNTL, ac_ib_get(ib), ~0); in ac_parse_packet3()
271 ac_dump_reg(f, ib->chip_class, R_0301F4_CP_COHER_SIZE, ac_ib_get(ib), ~0); in ac_parse_packet3()
272 ac_dump_reg(f, ib->chip_class, R_0301F8_CP_COHER_BASE, ac_ib_get(ib), ~0); in ac_parse_packet3()
274 ac_dump_reg(f, ib->chip_class, R_0085F0_CP_COHER_CNTL, ac_ib_get(ib), ~0); in ac_parse_packet3()
275 ac_dump_reg(f, ib->chip_class, R_0085F4_CP_COHER_SIZE, ac_ib_get(ib), ~0); in ac_parse_packet3()
276 ac_dump_reg(f, ib->chip_class, R_0085F8_CP_COHER_BASE, ac_ib_get(ib), ~0); in ac_parse_packet3()
278 print_named_value(f, "POLL_INTERVAL", ac_ib_get(ib), 16); in ac_parse_packet3()
281 uint32_t event_dw = ac_ib_get(ib); in ac_parse_packet3()
282 ac_dump_reg(f, ib->chip_class, R_028A90_VGT_EVENT_INITIATOR, event_dw, in ac_parse_packet3()
287 print_named_value(f, "ADDRESS_LO", ac_ib_get(ib), 32); in ac_parse_packet3()
288 print_named_value(f, "ADDRESS_HI", ac_ib_get(ib), 16); in ac_parse_packet3()
293 uint32_t event_dw = ac_ib_get(ib); in ac_parse_packet3()
294 ac_dump_reg(f, ib->chip_class, R_028A90_VGT_EVENT_INITIATOR, event_dw, in ac_parse_packet3()
302 print_named_value(f, "ADDRESS_LO", ac_ib_get(ib), 32); in ac_parse_packet3()
303 uint32_t addr_hi_dw = ac_ib_get(ib); in ac_parse_packet3()
308 print_named_value(f, "DATA_LO", ac_ib_get(ib), 32); in ac_parse_packet3()
309 print_named_value(f, "DATA_HI", ac_ib_get(ib), 32); in ac_parse_packet3()
313 uint32_t event_dw = ac_ib_get(ib); in ac_parse_packet3()
314 ac_dump_reg(f, ib->chip_class, R_028A90_VGT_EVENT_INITIATOR, event_dw, in ac_parse_packet3()
325 uint32_t sel_dw = ac_ib_get(ib); in ac_parse_packet3()
329 print_named_value(f, "ADDRESS_LO", ac_ib_get(ib), 32); in ac_parse_packet3()
330 print_named_value(f, "ADDRESS_HI", ac_ib_get(ib), 32); in ac_parse_packet3()
331 print_named_value(f, "DATA_LO", ac_ib_get(ib), 32); in ac_parse_packet3()
332 print_named_value(f, "DATA_HI", ac_ib_get(ib), 32); in ac_parse_packet3()
333 print_named_value(f, "CTXID", ac_ib_get(ib), 32); in ac_parse_packet3()
337 print_named_value(f, "OP", ac_ib_get(ib), 32); in ac_parse_packet3()
338 print_named_value(f, "ADDRESS_LO", ac_ib_get(ib), 32); in ac_parse_packet3()
339 print_named_value(f, "ADDRESS_HI", ac_ib_get(ib), 32); in ac_parse_packet3()
340 print_named_value(f, "REF", ac_ib_get(ib), 32); in ac_parse_packet3()
341 print_named_value(f, "MASK", ac_ib_get(ib), 32); in ac_parse_packet3()
342 print_named_value(f, "POLL_INTERVAL", ac_ib_get(ib), 16); in ac_parse_packet3()
345 ac_dump_reg(f, ib->chip_class, R_030930_VGT_NUM_INDICES, ac_ib_get(ib), ~0); in ac_parse_packet3()
346 ac_dump_reg(f, ib->chip_class, R_0287F0_VGT_DRAW_INITIATOR, ac_ib_get(ib), ~0); in ac_parse_packet3()
349 ac_dump_reg(f, ib->chip_class, R_028A78_VGT_DMA_MAX_SIZE, ac_ib_get(ib), ~0); in ac_parse_packet3()
350 ac_dump_reg(f, ib->chip_class, R_0287E8_VGT_DMA_BASE, ac_ib_get(ib), ~0); in ac_parse_packet3()
351 ac_dump_reg(f, ib->chip_class, R_0287E4_VGT_DMA_BASE_HI, ac_ib_get(ib), ~0); in ac_parse_packet3()
352 ac_dump_reg(f, ib->chip_class, R_030930_VGT_NUM_INDICES, ac_ib_get(ib), ~0); in ac_parse_packet3()
353 ac_dump_reg(f, ib->chip_class, R_0287F0_VGT_DRAW_INITIATOR, ac_ib_get(ib), ~0); in ac_parse_packet3()
356 ac_dump_reg(f, ib->chip_class, R_028A7C_VGT_DMA_INDEX_TYPE, ac_ib_get(ib), ~0); in ac_parse_packet3()
359 ac_dump_reg(f, ib->chip_class, R_030934_VGT_NUM_INSTANCES, ac_ib_get(ib), ~0); in ac_parse_packet3()
362 ac_dump_reg(f, ib->chip_class, R_370_CONTROL, ac_ib_get(ib), ~0); in ac_parse_packet3()
363 ac_dump_reg(f, ib->chip_class, R_371_DST_ADDR_LO, ac_ib_get(ib), ~0); in ac_parse_packet3()
364 ac_dump_reg(f, ib->chip_class, R_372_DST_ADDR_HI, ac_ib_get(ib), ~0); in ac_parse_packet3()
368 ac_dump_reg(f, ib->chip_class, R_410_CP_DMA_WORD0, ac_ib_get(ib), ~0); in ac_parse_packet3()
369 ac_dump_reg(f, ib->chip_class, R_411_CP_DMA_WORD1, ac_ib_get(ib), ~0); in ac_parse_packet3()
370 ac_dump_reg(f, ib->chip_class, R_412_CP_DMA_WORD2, ac_ib_get(ib), ~0); in ac_parse_packet3()
371 ac_dump_reg(f, ib->chip_class, R_413_CP_DMA_WORD3, ac_ib_get(ib), ~0); in ac_parse_packet3()
372 ac_dump_reg(f, ib->chip_class, R_414_COMMAND, ac_ib_get(ib), ~0); in ac_parse_packet3()
375 ac_dump_reg(f, ib->chip_class, R_500_DMA_DATA_WORD0, ac_ib_get(ib), ~0); in ac_parse_packet3()
376 ac_dump_reg(f, ib->chip_class, R_501_SRC_ADDR_LO, ac_ib_get(ib), ~0); in ac_parse_packet3()
377 ac_dump_reg(f, ib->chip_class, R_502_SRC_ADDR_HI, ac_ib_get(ib), ~0); in ac_parse_packet3()
378 ac_dump_reg(f, ib->chip_class, R_503_DST_ADDR_LO, ac_ib_get(ib), ~0); in ac_parse_packet3()
379 ac_dump_reg(f, ib->chip_class, R_504_DST_ADDR_HI, ac_ib_get(ib), ~0); in ac_parse_packet3()
380 ac_dump_reg(f, ib->chip_class, R_414_COMMAND, ac_ib_get(ib), ~0); in ac_parse_packet3()
385 uint32_t base_lo_dw = ac_ib_get(ib); in ac_parse_packet3()
386 ac_dump_reg(f, ib->chip_class, R_3F0_IB_BASE_LO, base_lo_dw, ~0); in ac_parse_packet3()
387 uint32_t base_hi_dw = ac_ib_get(ib); in ac_parse_packet3()
388 ac_dump_reg(f, ib->chip_class, R_3F1_IB_BASE_HI, base_hi_dw, ~0); in ac_parse_packet3()
389 uint32_t control_dw = ac_ib_get(ib); in ac_parse_packet3()
390 ac_dump_reg(f, ib->chip_class, R_3F2_CONTROL, control_dw, ~0); in ac_parse_packet3()
392 if (!ib->addr_callback) in ac_parse_packet3()
396 void *data = ib->addr_callback(ib->addr_callback_data, addr); in ac_parse_packet3()
401 ib->ib = data; in ac_parse_packet3()
402 ib->num_dw = G_3F2_IB_SIZE(control_dw); in ac_parse_packet3()
403 ib->cur_dw = 0; in ac_parse_packet3()
408 memcpy(&ib_recurse, ib, sizeof(ib_recurse)); in ac_parse_packet3()
409 ib_recurse.ib = data; in ac_parse_packet3()
413 if (*current_trace_id == *ib->trace_ids) { in ac_parse_packet3()
433 } else if (count == 0 && ib->cur_dw < ib->num_dw && in ac_parse_packet3()
434 AC_IS_TRACE_POINT(ib->ib[ib->cur_dw])) { in ac_parse_packet3()
435 unsigned packet_id = AC_GET_TRACE_POINT_ID(ib->ib[ib->cur_dw]); in ac_parse_packet3()
440 if (!ib->trace_id_count) in ac_parse_packet3()
446 if (packet_id < *ib->trace_ids) in ac_parse_packet3()
450 else if (packet_id == *ib->trace_ids) in ac_parse_packet3()
455 else if (packet_id+1 == *ib->trace_ids) in ac_parse_packet3()
471 while (ib->cur_dw <= first_dw + count) in ac_parse_packet3()
472 ac_ib_get(ib); in ac_parse_packet3()
474 if (ib->cur_dw > first_dw + count + 1) in ac_parse_packet3()
482 static void ac_do_parse_ib(FILE *f, struct ac_ib_parser *ib) in ac_do_parse_ib() argument
486 while (ib->cur_dw < ib->num_dw) { in ac_do_parse_ib()
487 uint32_t header = ac_ib_get(ib); in ac_do_parse_ib()
492 ac_parse_packet3(f, header, ib, &current_trace_id); in ac_do_parse_ib()
563 struct ac_ib_parser ib = {}; in ac_parse_ib_chunk() local
564 ib.ib = ib_ptr; in ac_parse_ib_chunk()
565 ib.num_dw = num_dw; in ac_parse_ib_chunk()
566 ib.trace_ids = trace_ids; in ac_parse_ib_chunk()
567 ib.trace_id_count = trace_id_count; in ac_parse_ib_chunk()
568 ib.chip_class = chip_class; in ac_parse_ib_chunk()
569 ib.addr_callback = addr_callback; in ac_parse_ib_chunk()
570 ib.addr_callback_data = addr_callback_data; in ac_parse_ib_chunk()
575 ib.f = memf; in ac_parse_ib_chunk()
576 ac_do_parse_ib(memf, &ib); in ac_parse_ib_chunk()
584 if (ib.cur_dw > ib.num_dw) { in ac_parse_ib_chunk()
604 void ac_parse_ib(FILE *f, uint32_t *ib, int num_dw, const int *trace_ids, in ac_parse_ib() argument
611 ac_parse_ib_chunk(f, ib, num_dw, trace_ids, trace_id_count, in ac_parse_ib()