Lines Matching full:capture

26  * Define all device tables of GuC error capture register lists
311 if (!list || guc->capture->extlists) in guc_capture_alloc_steered_lists()
351 guc_dbg(guc, "capture found %d ext-regs.\n", num_tot_regs); in guc_capture_alloc_steered_lists()
352 guc->capture->extlists = extlists; in guc_capture_alloc_steered_lists()
420 const struct __guc_mmio_reg_descr_group *reglists = guc->capture->reglists; in guc_capture_list_init()
421 struct __guc_mmio_reg_descr_group *extlists = guc->capture->extlists; in guc_capture_list_init()
451 guc_dbg(guc, "Got short capture reglist init: %d out %d.\n", i, num_entries); in guc_capture_list_init()
480 struct intel_guc_state_capture *gc = guc->capture; in guc_capture_getlistsize()
485 guc_warn(guc, "No capture reglist for this device\n"); in guc_capture_getlistsize()
497 guc_warn(guc, "Missing capture reglist: global!\n"); in guc_capture_getlistsize()
499 guc_warn(guc, "Missing capture reglist: %s(%u):%s(%u)!\n", in guc_capture_getlistsize()
530 struct intel_guc_state_capture *gc = guc->capture; in intel_guc_capture_getlist()
562 guc_dbg(guc, "Failed to alloc cached register capture list"); in intel_guc_capture_getlist()
566 /* populate capture list header */ in intel_guc_capture_getlist()
568 num_regs = guc_cap_list_num_regs(guc->capture, owner, type, classid); in intel_guc_capture_getlist()
591 struct intel_guc_state_capture *gc = guc->capture; in intel_guc_capture_getnullheader()
603 guc_dbg(guc, "Failed to alloc cached register capture null list"); in intel_guc_capture_getnullheader()
623 if (!guc->capture) in guc_capture_output_min_size_est()
628 * were all unrelated, then a burst of multiple error-capture events would dump in guc_capture_output_min_size_est()
670 * NOTE: min_size is much smaller than the capture region allocation (DG2: <80K vs 1MB) in check_guc_capture_size()
674 * when processing the G2H event capture-notification, search for: in check_guc_capture_size()
678 guc_warn(guc, "Failed to calculate error state capture buffer minimum size: %d!\n", in check_guc_capture_size()
681 guc_warn(guc, "Error state capture buffer maybe small: %d < %d\n", in check_guc_capture_size()
684 guc_dbg(guc, "Error state capture buffer lacks spare size: %d < %d (min = %d)\n", in check_guc_capture_size()
691 * --> alloc A: GuC input capture regs lists (registered to GuC via ADS).
701 * --> alloc B: GuC output capture buf (registered via guc_init_params(log_param))
703 * Note2: 'x 3' to hold multiple capture groups
705 * GUC Runtime notify capture:
711 * --> alloc C: A capture-output-node structure that includes misc capture info along
714 * guc->capture->cachelist and populated with the error-capture
715 * data from GuC and then it's added into guc->capture->outlist linked
717 * and err_print_gt, (when user invokes the error capture sysfs).
742 * capture-output-node back to the internal
762 * GuC's error-capture output is a ring buffer populated in a byte-stream fashion:
764 * The GuC Log buffer region for error-capture is managed like a ring buffer.
765 * The GuC firmware dumps error capture logs into this ring in a byte-stream flow.
767 * capture output structures are dword aligned.
770 * than one dword but the tail end of the err-capture buffer-region has lesser space left,
801 guc_dbg(guc, "Register capture log not dword aligned, skipping.\n"); in guc_capture_log_remove_dw()
907 * if unclaimed error capture events occurred prior to shutdown. in guc_capture_delete_prealloc_nodes()
909 list_for_each_entry_safe(n, ntmp, &guc->capture->outlist, link) in guc_capture_delete_prealloc_nodes()
912 list_for_each_entry_safe(n, ntmp, &guc->capture->cachelist, link) in guc_capture_delete_prealloc_nodes()
946 guc->capture->max_mmio_per_node); in guc_capture_init_node()
960 if (!list_empty(&guc->capture->cachelist)) { in guc_capture_get_prealloc_node()
964 list_for_each_entry_safe(n, ntmp, &guc->capture->cachelist, link) { in guc_capture_get_prealloc_node()
973 list_for_each_entry_safe(n, ntmp, &guc->capture->outlist, link) { in guc_capture_get_prealloc_node()
996 new->reginfo[i].regs = kcalloc(guc->capture->max_mmio_per_node, in guc_capture_alloc_one_node()
1029 guc->capture->max_mmio_per_node); in guc_capture_clone_node()
1059 guc_warn(guc, "Register capture pre-alloc-cache failure\n"); in __guc_capture_create_prealloc_nodes()
1063 guc_capture_add_node_to_cachelist(guc->capture, node); in __guc_capture_create_prealloc_nodes()
1078 tmp = guc_cap_list_num_regs(guc->capture, i, j, k); in guc_get_max_reglist_count()
1094 if (guc->capture->max_mmio_per_node) in guc_capture_create_prealloc_nodes()
1097 guc->capture->max_mmio_per_node = guc_get_max_reglist_count(guc); in guc_capture_create_prealloc_nodes()
1117 guc_warn(guc, "Got mis-aligned register capture entries\n"); in guc_capture_extract_reglists()
1122 /* first get the capture group header */ in guc_capture_extract_reglists()
1132 * | Capture Group | in guc_capture_extract_reglists()
1134 * | | Capture Group Header: | | in guc_capture_extract_reglists()
1190 /* unknown capture type - skip over to next capture set */ in guc_capture_extract_reglists()
1201 * Based on the current capture type and what we have so far, in guc_capture_extract_reglists()
1210 guc_capture_add_node_to_outlist(guc->capture, node); in guc_capture_extract_reglists()
1215 guc_capture_add_node_to_outlist(guc->capture, node); in guc_capture_extract_reglists()
1221 guc_capture_add_node_to_outlist(guc->capture, node); in guc_capture_extract_reglists()
1235 guc_dbg(guc, "Register capture missing global dump: %08x!\n", in guc_capture_extract_reglists()
1255 if (numregs > guc->capture->max_mmio_per_node) { in guc_capture_extract_reglists()
1256 guc_dbg(guc, "Register capture list extraction clipped by prealloc!\n"); in guc_capture_extract_reglists()
1257 numregs = guc->capture->max_mmio_per_node; in guc_capture_extract_reglists()
1275 guc_capture_add_node_to_outlist(guc->capture, node); in guc_capture_extract_reglists()
1281 guc_capture_add_node_to_cachelist(guc->capture, node); in guc_capture_extract_reglists()
1336 guc_err(guc, "Register capture buffer in invalid state: read = 0x%X, size = 0x%X!\n", in __guc_capture_process_output()
1366 const struct __guc_mmio_reg_descr_group *reglists = guc->capture->reglists; in guc_capture_reg_to_str()
1367 struct __guc_mmio_reg_descr_group *extlists = guc->capture->extlists; in guc_capture_reg_to_str()
1421 "full-capture", in intel_guc_capture_print_engine_node()
1422 "partial-capture" in intel_guc_capture_print_engine_node()
1446 i915_error_printf(ebuf, "global --- GuC Error Capture on %s command stream:\n", in intel_guc_capture_print_engine_node()
1547 if (!guc->capture) in intel_guc_capture_is_matching_engine()
1551 * Look for a matching GuC reported error capture node from in intel_guc_capture_is_matching_engine()
1555 list_for_each_entry(n, &guc->capture->outlist, link) { in intel_guc_capture_is_matching_engine()
1577 if (!guc->capture) in intel_guc_capture_get_matching_node()
1583 * Look for a matching GuC reported error capture node from in intel_guc_capture_get_matching_node()
1587 list_for_each_entry_safe(n, ntmp, &guc->capture->outlist, link) { in intel_guc_capture_get_matching_node()
1594 ee->guc_capture = guc->capture; in intel_guc_capture_get_matching_node()
1600 guc_warn(guc, "No register capture node found for 0x%04X / 0x%08X\n", in intel_guc_capture_get_matching_node()
1606 if (guc->capture) in intel_guc_capture_process()
1630 if (!guc->capture) in intel_guc_capture_destroy()
1633 guc_capture_free_ads_cache(guc->capture); in intel_guc_capture_destroy()
1637 guc_capture_free_extlists(guc->capture->extlists); in intel_guc_capture_destroy()
1638 kfree(guc->capture->extlists); in intel_guc_capture_destroy()
1640 kfree(guc->capture); in intel_guc_capture_destroy()
1641 guc->capture = NULL; in intel_guc_capture_destroy()
1646 guc->capture = kzalloc(sizeof(*guc->capture), GFP_KERNEL); in intel_guc_capture_init()
1647 if (!guc->capture) in intel_guc_capture_init()
1650 guc->capture->reglists = guc_capture_get_device_reglist(guc); in intel_guc_capture_init()
1652 INIT_LIST_HEAD(&guc->capture->outlist); in intel_guc_capture_init()
1653 INIT_LIST_HEAD(&guc->capture->cachelist); in intel_guc_capture_init()