Lines Matching full:capture

26  * Define all device tables of GuC error capture register lists
307 if (!list || guc->capture->extlists) in guc_capture_alloc_steered_lists()
347 guc_dbg(guc, "capture found %d ext-regs.\n", num_tot_regs); in guc_capture_alloc_steered_lists()
348 guc->capture->extlists = extlists; in guc_capture_alloc_steered_lists()
416 const struct __guc_mmio_reg_descr_group *reglists = guc->capture->reglists; in guc_capture_list_init()
417 struct __guc_mmio_reg_descr_group *extlists = guc->capture->extlists; in guc_capture_list_init()
447 guc_dbg(guc, "Got short capture reglist init: %d out %d.\n", i, num_entries); in guc_capture_list_init()
476 struct intel_guc_state_capture *gc = guc->capture; in guc_capture_getlistsize()
481 guc_warn(guc, "No capture reglist for this device\n"); in guc_capture_getlistsize()
493 guc_warn(guc, "Missing capture reglist: global!\n"); in guc_capture_getlistsize()
495 guc_warn(guc, "Missing capture reglist: %s(%u):%s(%u)!\n", in guc_capture_getlistsize()
526 struct intel_guc_state_capture *gc = guc->capture; in intel_guc_capture_getlist()
558 guc_dbg(guc, "Failed to alloc cached register capture list"); in intel_guc_capture_getlist()
562 /* populate capture list header */ in intel_guc_capture_getlist()
564 num_regs = guc_cap_list_num_regs(guc->capture, owner, type, classid); in intel_guc_capture_getlist()
587 struct intel_guc_state_capture *gc = guc->capture; in intel_guc_capture_getnullheader()
599 guc_dbg(guc, "Failed to alloc cached register capture null list"); in intel_guc_capture_getnullheader()
619 if (!guc->capture) in guc_capture_output_min_size_est()
624 * were all unrelated, then a burst of multiple error-capture events would dump in guc_capture_output_min_size_est()
666 * NOTE: min_size is much smaller than the capture region allocation (DG2: <80K vs 1MB) in check_guc_capture_size()
670 * when processing the G2H event capture-notification, search for: in check_guc_capture_size()
674 guc_warn(guc, "Failed to calculate error state capture buffer minimum size: %d!\n", in check_guc_capture_size()
677 guc_warn(guc, "Error state capture buffer maybe small: %d < %d\n", in check_guc_capture_size()
680 guc_dbg(guc, "Error state capture buffer lacks spare size: %d < %d (min = %d)\n", in check_guc_capture_size()
687 * --> alloc A: GuC input capture regs lists (registered to GuC via ADS).
697 * --> alloc B: GuC output capture buf (registered via guc_init_params(log_param))
699 * Note2: 'x 3' to hold multiple capture groups
701 * GUC Runtime notify capture:
707 * --> alloc C: A capture-output-node structure that includes misc capture info along
710 * guc->capture->cachelist and populated with the error-capture
711 * data from GuC and then it's added into guc->capture->outlist linked
713 * and err_print_gt, (when user invokes the error capture sysfs).
738 * capture-output-node back to the internal
758 * GuC's error-capture output is a ring buffer populated in a byte-stream fashion:
760 * The GuC Log buffer region for error-capture is managed like a ring buffer.
761 * The GuC firmware dumps error capture logs into this ring in a byte-stream flow.
763 * capture output structures are dword aligned.
766 * than one dword but the tail end of the err-capture buffer-region has lesser space left,
797 guc_dbg(guc, "Register capture log not dword aligned, skipping.\n"); in guc_capture_log_remove_dw()
903 * if unclaimed error capture events occurred prior to shutdown. in guc_capture_delete_prealloc_nodes()
905 list_for_each_entry_safe(n, ntmp, &guc->capture->outlist, link) in guc_capture_delete_prealloc_nodes()
908 list_for_each_entry_safe(n, ntmp, &guc->capture->cachelist, link) in guc_capture_delete_prealloc_nodes()
942 guc->capture->max_mmio_per_node); in guc_capture_init_node()
956 if (!list_empty(&guc->capture->cachelist)) { in guc_capture_get_prealloc_node()
960 list_for_each_entry_safe(n, ntmp, &guc->capture->cachelist, link) { in guc_capture_get_prealloc_node()
969 list_for_each_entry_safe(n, ntmp, &guc->capture->outlist, link) { in guc_capture_get_prealloc_node()
992 new->reginfo[i].regs = kcalloc(guc->capture->max_mmio_per_node, in guc_capture_alloc_one_node()
1025 guc->capture->max_mmio_per_node); in guc_capture_clone_node()
1055 guc_warn(guc, "Register capture pre-alloc-cache failure\n"); in __guc_capture_create_prealloc_nodes()
1059 guc_capture_add_node_to_cachelist(guc->capture, node); in __guc_capture_create_prealloc_nodes()
1074 tmp = guc_cap_list_num_regs(guc->capture, i, j, k); in guc_get_max_reglist_count()
1090 if (guc->capture->max_mmio_per_node) in guc_capture_create_prealloc_nodes()
1093 guc->capture->max_mmio_per_node = guc_get_max_reglist_count(guc); in guc_capture_create_prealloc_nodes()
1113 guc_warn(guc, "Got mis-aligned register capture entries\n"); in guc_capture_extract_reglists()
1118 /* first get the capture group header */ in guc_capture_extract_reglists()
1128 * | Capture Group | in guc_capture_extract_reglists()
1130 * | | Capture Group Header: | | in guc_capture_extract_reglists()
1186 /* unknown capture type - skip over to next capture set */ in guc_capture_extract_reglists()
1197 * Based on the current capture type and what we have so far, in guc_capture_extract_reglists()
1206 guc_capture_add_node_to_outlist(guc->capture, node); in guc_capture_extract_reglists()
1211 guc_capture_add_node_to_outlist(guc->capture, node); in guc_capture_extract_reglists()
1217 guc_capture_add_node_to_outlist(guc->capture, node); in guc_capture_extract_reglists()
1231 guc_dbg(guc, "Register capture missing global dump: %08x!\n", in guc_capture_extract_reglists()
1251 if (numregs > guc->capture->max_mmio_per_node) { in guc_capture_extract_reglists()
1252 guc_dbg(guc, "Register capture list extraction clipped by prealloc!\n"); in guc_capture_extract_reglists()
1253 numregs = guc->capture->max_mmio_per_node; in guc_capture_extract_reglists()
1271 guc_capture_add_node_to_outlist(guc->capture, node); in guc_capture_extract_reglists()
1277 guc_capture_add_node_to_cachelist(guc->capture, node); in guc_capture_extract_reglists()
1332 guc_err(guc, "Register capture buffer in invalid state: read = 0x%X, size = 0x%X!\n", in __guc_capture_process_output()
1362 const struct __guc_mmio_reg_descr_group *reglists = guc->capture->reglists; in guc_capture_reg_to_str()
1363 struct __guc_mmio_reg_descr_group *extlists = guc->capture->extlists; in guc_capture_reg_to_str()
1417 "full-capture", in intel_guc_capture_print_engine_node()
1418 "partial-capture" in intel_guc_capture_print_engine_node()
1442 i915_error_printf(ebuf, "global --- GuC Error Capture on %s command stream:\n", in intel_guc_capture_print_engine_node()
1543 if (!guc->capture) in intel_guc_capture_is_matching_engine()
1547 * Look for a matching GuC reported error capture node from in intel_guc_capture_is_matching_engine()
1551 list_for_each_entry(n, &guc->capture->outlist, link) { in intel_guc_capture_is_matching_engine()
1573 if (!guc->capture) in intel_guc_capture_get_matching_node()
1579 * Look for a matching GuC reported error capture node from in intel_guc_capture_get_matching_node()
1583 list_for_each_entry_safe(n, ntmp, &guc->capture->outlist, link) { in intel_guc_capture_get_matching_node()
1590 ee->guc_capture = guc->capture; in intel_guc_capture_get_matching_node()
1596 guc_warn(guc, "No register capture node found for 0x%04X / 0x%08X\n", in intel_guc_capture_get_matching_node()
1602 if (guc->capture) in intel_guc_capture_process()
1626 if (!guc->capture) in intel_guc_capture_destroy()
1629 guc_capture_free_ads_cache(guc->capture); in intel_guc_capture_destroy()
1633 guc_capture_free_extlists(guc->capture->extlists); in intel_guc_capture_destroy()
1634 kfree(guc->capture->extlists); in intel_guc_capture_destroy()
1636 kfree(guc->capture); in intel_guc_capture_destroy()
1637 guc->capture = NULL; in intel_guc_capture_destroy()
1642 guc->capture = kzalloc(sizeof(*guc->capture), GFP_KERNEL); in intel_guc_capture_init()
1643 if (!guc->capture) in intel_guc_capture_init()
1646 guc->capture->reglists = guc_capture_get_device_reglist(guc); in intel_guc_capture_init()
1648 INIT_LIST_HEAD(&guc->capture->outlist); in intel_guc_capture_init()
1649 INIT_LIST_HEAD(&guc->capture->cachelist); in intel_guc_capture_init()