Lines Matching defs:a6xx_state

105 static void *state_kcalloc(struct a6xx_gpu_state *a6xx_state, int nr, size_t objsize)
113 list_add_tail(&obj->node, &a6xx_state->objs);
117 static void *state_kmemdup(struct a6xx_gpu_state *a6xx_state, void *src,
120 void *dst = state_kcalloc(a6xx_state, 1, size);
250 struct a6xx_gpu_state *a6xx_state,
256 obj->data = state_kcalloc(a6xx_state, VBIF_DEBUGBUS_BLOCK_SIZE,
304 struct a6xx_gpu_state *a6xx_state,
311 obj->data = state_kcalloc(a6xx_state, block->count, sizeof(u64));
322 struct a6xx_gpu_state *a6xx_state,
329 obj->data = state_kcalloc(a6xx_state, block->count, sizeof(u64));
340 struct a6xx_gpu_state *a6xx_state)
348 a6xx_state->debugbus = state_kcalloc(a6xx_state, nr_debugbus_blocks,
349 sizeof(*a6xx_state->debugbus));
351 if (a6xx_state->debugbus) {
356 a6xx_state,
358 &a6xx_state->debugbus[i]);
360 a6xx_state->nr_debugbus = ARRAY_SIZE(a6xx_debugbus_blocks);
368 a6xx_get_debugbus_block(gpu, a6xx_state,
370 &a6xx_state->debugbus[i]);
372 a6xx_state->nr_debugbus += 1;
379 a6xx_state,
381 &a6xx_state->debugbus[i]);
387 struct a6xx_gpu_state *a6xx_state)
414 a6xx_state->debugbus = state_kcalloc(a6xx_state, total_debugbus_blocks,
415 sizeof(*a6xx_state->debugbus));
417 if (a6xx_state->debugbus) {
420 a6xx_state, &a7xx_debugbus_blocks[debugbus_blocks[i]],
421 &a6xx_state->debugbus[i]);
426 a6xx_state, &a7xx_debugbus_blocks[gbif_debugbus_blocks[i]],
427 &a6xx_state->debugbus[i + debugbus_blocks_count]);
434 struct a6xx_gpu_state *a6xx_state)
494 a7xx_get_debugbus_blocks(gpu, a6xx_state);
496 a6xx_get_debugbus_blocks(gpu, a6xx_state);
501 a6xx_state->vbif_debugbus =
502 state_kcalloc(a6xx_state, 1,
503 sizeof(*a6xx_state->vbif_debugbus));
505 if (a6xx_state->vbif_debugbus)
506 a6xx_get_vbif_debugbus_block(gpu, a6xx_state,
507 a6xx_state->vbif_debugbus);
523 a6xx_state->cx_debugbus =
524 state_kcalloc(a6xx_state,
526 sizeof(*a6xx_state->cx_debugbus));
528 if (a6xx_state->cx_debugbus) {
533 a6xx_state,
535 &a6xx_state->cx_debugbus[i]);
537 a6xx_state->nr_cx_debugbus =
549 struct a6xx_gpu_state *a6xx_state,
590 obj->data = state_kmemdup(a6xx_state, dumper->ptr + A6XX_CD_DATA_OFFSET,
595 struct a6xx_gpu_state *a6xx_state,
632 obj->data = state_kmemdup(a6xx_state, dumper->ptr + A6XX_CD_DATA_OFFSET,
637 struct a6xx_gpu_state *a6xx_state,
642 a6xx_state->dbgahb_clusters = state_kcalloc(a6xx_state,
644 sizeof(*a6xx_state->dbgahb_clusters));
646 if (!a6xx_state->dbgahb_clusters)
649 a6xx_state->nr_dbgahb_clusters = ARRAY_SIZE(a6xx_dbgahb_clusters);
652 a6xx_get_dbgahb_cluster(gpu, a6xx_state,
654 &a6xx_state->dbgahb_clusters[i], dumper);
658 struct a6xx_gpu_state *a6xx_state,
675 a6xx_state->dbgahb_clusters = state_kcalloc(a6xx_state,
677 sizeof(*a6xx_state->dbgahb_clusters));
679 if (!a6xx_state->dbgahb_clusters)
682 a6xx_state->nr_dbgahb_clusters = dbgahb_clusters_size;
685 a7xx_get_dbgahb_cluster(gpu, a6xx_state,
687 &a6xx_state->dbgahb_clusters[i], dumper);
692 struct a6xx_gpu_state *a6xx_state,
747 obj->data = state_kmemdup(a6xx_state, dumper->ptr + A6XX_CD_DATA_OFFSET,
752 struct a6xx_gpu_state *a6xx_state,
792 obj->data = state_kmemdup(a6xx_state, dumper->ptr + A6XX_CD_DATA_OFFSET,
797 struct a6xx_gpu_state *a6xx_state,
802 a6xx_state->clusters = state_kcalloc(a6xx_state,
803 ARRAY_SIZE(a6xx_clusters), sizeof(*a6xx_state->clusters));
805 if (!a6xx_state->clusters)
808 a6xx_state->nr_clusters = ARRAY_SIZE(a6xx_clusters);
811 a6xx_get_cluster(gpu, a6xx_state, &a6xx_clusters[i],
812 &a6xx_state->clusters[i], dumper);
816 struct a6xx_gpu_state *a6xx_state,
836 a6xx_state->clusters = state_kcalloc(a6xx_state,
837 clusters_size, sizeof(*a6xx_state->clusters));
839 if (!a6xx_state->clusters)
842 a6xx_state->nr_clusters = clusters_size;
845 a7xx_get_cluster(gpu, a6xx_state, &clusters[i],
846 &a6xx_state->clusters[i], dumper);
851 struct a6xx_gpu_state *a6xx_state,
880 obj->data = state_kmemdup(a6xx_state, dumper->ptr + A6XX_CD_DATA_OFFSET,
885 struct a6xx_gpu_state *a6xx_state,
925 obj->data = state_kmemdup(a6xx_state, dumper->ptr + A6XX_CD_DATA_OFFSET,
935 struct a6xx_gpu_state *a6xx_state,
940 a6xx_state->shaders = state_kcalloc(a6xx_state,
941 ARRAY_SIZE(a6xx_shader_blocks), sizeof(*a6xx_state->shaders));
943 if (!a6xx_state->shaders)
946 a6xx_state->nr_shaders = ARRAY_SIZE(a6xx_shader_blocks);
949 a6xx_get_shader_block(gpu, a6xx_state, &a6xx_shader_blocks[i],
950 &a6xx_state->shaders[i], dumper);
954 struct a6xx_gpu_state *a6xx_state,
974 a6xx_state->shaders = state_kcalloc(a6xx_state,
975 num_shader_blocks, sizeof(*a6xx_state->shaders));
977 if (!a6xx_state->shaders)
980 a6xx_state->nr_shaders = num_shader_blocks;
983 a7xx_get_shader_block(gpu, a6xx_state, &shader_blocks[i],
984 &a6xx_state->shaders[i], dumper);
989 struct a6xx_gpu_state *a6xx_state,
1021 obj->data = state_kmemdup(a6xx_state, dumper->ptr + A6XX_CD_DATA_OFFSET,
1027 struct a6xx_gpu_state *a6xx_state,
1064 obj->data = state_kmemdup(a6xx_state, dumper->ptr + A6XX_CD_DATA_OFFSET,
1069 struct a6xx_gpu_state *a6xx_state,
1101 obj->data = state_kmemdup(a6xx_state, dumper->ptr + A6XX_CD_DATA_OFFSET,
1108 struct a6xx_gpu_state *a6xx_state,
1123 obj->data = state_kcalloc(a6xx_state, regcount, sizeof(u32));
1138 struct a6xx_gpu_state *a6xx_state,
1148 obj->data = state_kcalloc(a6xx_state, regcount, sizeof(u32));
1162 struct a6xx_gpu_state *a6xx_state,
1169 a7xx_get_ahb_gpu_registers(gpu, a6xx_state, regs->regs, obj);
1174 struct a6xx_gpu_state *a6xx_state,
1188 obj->data = state_kcalloc(a6xx_state, regcount, sizeof(u32));
1211 struct a6xx_gpu_state *a6xx_state)
1216 a6xx_state->gmu_registers = state_kcalloc(a6xx_state,
1217 3, sizeof(*a6xx_state->gmu_registers));
1219 if (!a6xx_state->gmu_registers)
1222 a6xx_state->nr_gmu_registers = 3;
1225 _a6xx_get_gmu_registers(gpu, a6xx_state, &a6xx_gmu_reglist[0],
1226 &a6xx_state->gmu_registers[0], false);
1227 _a6xx_get_gmu_registers(gpu, a6xx_state, &a6xx_gmu_reglist[1],
1228 &a6xx_state->gmu_registers[1], true);
1236 _a6xx_get_gmu_registers(gpu, a6xx_state, &a6xx_gmu_reglist[2],
1237 &a6xx_state->gmu_registers[2], false);
1241 struct a6xx_gpu_state *a6xx_state, struct a6xx_gmu_bo *bo)
1248 snapshot = state_kcalloc(a6xx_state, 1, sizeof(*snapshot));
1264 struct a6xx_gpu_state *a6xx_state)
1271 BUILD_BUG_ON(ARRAY_SIZE(gmu->queues) != ARRAY_SIZE(a6xx_state->hfi_queue_history));
1277 a6xx_state->hfi_queue_history[i][j] = queue->history[idx];
1285 struct a6xx_gpu_state *a6xx_state,
1294 a6xx_state->registers = state_kcalloc(a6xx_state,
1295 count, sizeof(*a6xx_state->registers));
1297 if (!a6xx_state->registers)
1300 a6xx_state->nr_registers = count;
1303 a6xx_state, &a6xx_ahb_reglist,
1304 &a6xx_state->registers[index++]);
1308 a6xx_state, &a6xx_gbif_reglist,
1309 &a6xx_state->registers[index++]);
1312 a6xx_state, &a6xx_vbif_reglist,
1313 &a6xx_state->registers[index++]);
1324 a6xx_state, &a6xx_reglist[i],
1325 &a6xx_state->registers[index++]);
1331 a6xx_state, &a6xx_reglist[i],
1332 &a6xx_state->registers[index++],
1337 a6xx_state, &a6xx_hlsq_reglist[i],
1338 &a6xx_state->registers[index++],
1345 struct a6xx_gpu_state *a6xx_state,
1380 a6xx_state->registers = state_kcalloc(a6xx_state,
1381 count, sizeof(*a6xx_state->registers));
1383 if (!a6xx_state->registers)
1386 a6xx_state->nr_registers = count;
1388 a7xx_get_ahb_gpu_registers(gpu, a6xx_state, pre_crashdumper_regs,
1389 &a6xx_state->registers[index++]);
1393 a6xx_state, &reglist[0],
1394 &a6xx_state->registers[index++]);
1400 a6xx_state, &reglist[i],
1401 &a6xx_state->registers[index++],
1406 struct a6xx_gpu_state *a6xx_state)
1416 a6xx_state, regs,
1417 &a6xx_state->registers[a6xx_state->nr_registers - 1]);
1440 struct a6xx_gpu_state *a6xx_state,
1451 obj->data = state_kcalloc(a6xx_state, count, sizeof(u32));
1465 struct a6xx_gpu_state *a6xx_state)
1471 a6xx_state->indexed_regs = state_kcalloc(a6xx_state, count,
1472 sizeof(*a6xx_state->indexed_regs));
1473 if (!a6xx_state->indexed_regs)
1477 a6xx_get_indexed_regs(gpu, a6xx_state, &a6xx_indexed_reglist[i],
1478 &a6xx_state->indexed_regs[i]);
1487 a6xx_get_indexed_regs(gpu, a6xx_state, &a6xx_cp_mempool_indexed,
1488 &a6xx_state->indexed_regs[i]);
1491 a6xx_state->nr_indexed_regs = count;
1500 a6xx_get_indexed_regs(gpu, a6xx_state, &a6xx_cp_mempool_indexed,
1501 &a6xx_state->indexed_regs[i]);
1507 a6xx_state->indexed_regs[i].data[0x2000] = mempool_size;
1514 struct a6xx_gpu_state *a6xx_state)
1531 a6xx_state->indexed_regs = state_kcalloc(a6xx_state,
1533 sizeof(*a6xx_state->indexed_regs));
1534 if (!a6xx_state->indexed_regs)
1537 a6xx_state->nr_indexed_regs = indexed_count + mempool_count;
1541 a6xx_get_indexed_regs(gpu, a6xx_state, &indexed_regs[i],
1542 &a6xx_state->indexed_regs[i]);
1549 a6xx_get_indexed_regs(gpu, a6xx_state, &a7xx_cp_bv_mempool_indexed[i],
1550 &a6xx_state->indexed_regs[indexed_count + i]);
1562 struct a6xx_gpu_state *a6xx_state = kzalloc(sizeof(*a6xx_state),
1567 if (!a6xx_state)
1570 INIT_LIST_HEAD(&a6xx_state->objs);
1573 adreno_gpu_state_get(gpu, &a6xx_state->base);
1576 a6xx_get_gmu_registers(gpu, a6xx_state);
1578 a6xx_state->gmu_log = a6xx_snapshot_gmu_bo(a6xx_state, &a6xx_gpu->gmu.log);
1579 a6xx_state->gmu_hfi = a6xx_snapshot_gmu_bo(a6xx_state, &a6xx_gpu->gmu.hfi);
1580 a6xx_state->gmu_debug = a6xx_snapshot_gmu_bo(a6xx_state, &a6xx_gpu->gmu.debug);
1582 a6xx_snapshot_gmu_hfi_history(gpu, a6xx_state);
1587 return &a6xx_state->base;
1591 a7xx_get_indexed_registers(gpu, a6xx_state);
1593 a6xx_get_indexed_registers(gpu, a6xx_state);
1607 a7xx_get_registers(gpu, a6xx_state, dumper);
1610 a7xx_get_shaders(gpu, a6xx_state, dumper);
1611 a7xx_get_clusters(gpu, a6xx_state, dumper);
1612 a7xx_get_dbgahb_clusters(gpu, a6xx_state, dumper);
1617 a7xx_get_post_crashdumper_registers(gpu, a6xx_state);
1619 a6xx_get_registers(gpu, a6xx_state, dumper);
1622 a6xx_get_shaders(gpu, a6xx_state, dumper);
1623 a6xx_get_clusters(gpu, a6xx_state, dumper);
1624 a6xx_get_dbgahb_clusters(gpu, a6xx_state, dumper);
1631 a6xx_get_debugbus(gpu, a6xx_state);
1633 a6xx_state->gpu_initialized = !gpu->needs_hw_init;
1635 return &a6xx_state->base;
1643 struct a6xx_gpu_state *a6xx_state = container_of(state,
1646 if (a6xx_state->gmu_log)
1647 kvfree(a6xx_state->gmu_log->data);
1649 if (a6xx_state->gmu_hfi)
1650 kvfree(a6xx_state->gmu_hfi->data);
1652 if (a6xx_state->gmu_debug)
1653 kvfree(a6xx_state->gmu_debug->data);
1655 list_for_each_entry_safe(obj, tmp, &a6xx_state->objs, node) {
1661 kfree(a6xx_state);
1917 static void a6xx_show_debugbus(struct a6xx_gpu_state *a6xx_state,
1922 for (i = 0; i < a6xx_state->nr_debugbus; i++) {
1923 struct a6xx_gpu_state_obj *obj = &a6xx_state->debugbus[i];
1928 if (a6xx_state->vbif_debugbus) {
1929 struct a6xx_gpu_state_obj *obj = a6xx_state->vbif_debugbus;
1938 for (i = 0; i < a6xx_state->nr_cx_debugbus; i++) {
1939 struct a6xx_gpu_state_obj *obj = &a6xx_state->cx_debugbus[i];
1949 struct a6xx_gpu_state *a6xx_state = container_of(state,
1956 drm_printf(p, "gpu-initialized: %d\n", a6xx_state->gpu_initialized);
1961 if (a6xx_state->gmu_log) {
1962 struct msm_gpu_state_bo *gmu_log = a6xx_state->gmu_log;
1971 if (a6xx_state->gmu_hfi) {
1972 struct msm_gpu_state_bo *gmu_hfi = a6xx_state->gmu_hfi;
1977 for (i = 0; i < ARRAY_SIZE(a6xx_state->hfi_queue_history); i++) {
1980 drm_printf(p, " %d", a6xx_state->hfi_queue_history[i][j]);
1989 if (a6xx_state->gmu_debug) {
1990 struct msm_gpu_state_bo *gmu_debug = a6xx_state->gmu_debug;
1999 for (i = 0; i < a6xx_state->nr_registers; i++) {
2000 struct a6xx_gpu_state_obj *obj = &a6xx_state->registers[i];
2015 for (i = 0; i < a6xx_state->nr_gmu_registers; i++) {
2016 struct a6xx_gpu_state_obj *obj = &a6xx_state->gmu_registers[i];
2026 for (i = 0; i < a6xx_state->nr_indexed_regs; i++)
2027 a6xx_show_indexed_regs(&a6xx_state->indexed_regs[i], p);
2030 for (i = 0; i < a6xx_state->nr_shaders; i++) {
2032 a7xx_show_shader(&a6xx_state->shaders[i], p);
2034 a6xx_show_shader(&a6xx_state->shaders[i], p);
2038 for (i = 0; i < a6xx_state->nr_clusters; i++) {
2040 a7xx_show_cluster(&a6xx_state->clusters[i], p);
2042 a6xx_show_cluster(&a6xx_state->clusters[i], p);
2045 for (i = 0; i < a6xx_state->nr_dbgahb_clusters; i++) {
2047 a7xx_show_dbgahb_cluster(&a6xx_state->dbgahb_clusters[i], p);
2049 a6xx_show_dbgahb_cluster(&a6xx_state->dbgahb_clusters[i], p);
2053 a6xx_show_debugbus(a6xx_state, p);