Lines Matching full:gt

149 static bool needs_wa_dual_queue(struct xe_gt *gt)  in needs_wa_dual_queue()  argument
156 if (XE_GT_WA(gt, 22011391025)) in needs_wa_dual_queue()
171 if (CCS_MASK(gt) && GRAPHICS_VERx100(gt_to_xe(gt)) >= 1270) in needs_wa_dual_queue()
180 struct xe_gt *gt = guc_to_gt(guc); in guc_ctl_wa_flags() local
183 if (XE_GT_WA(gt, 22012773006)) in guc_ctl_wa_flags()
186 if (XE_GT_WA(gt, 14014475959)) in guc_ctl_wa_flags()
189 if (needs_wa_dual_queue(gt)) in guc_ctl_wa_flags()
194 * this flag: make sure each CS is stopped when preparing for GT reset in guc_ctl_wa_flags()
200 if (XE_GT_WA(gt, 22012727170) || XE_GT_WA(gt, 22012727685)) in guc_ctl_wa_flags()
203 if (XE_GT_WA(gt, 18020744125) && in guc_ctl_wa_flags()
204 !xe_hw_engine_mask_per_class(gt, XE_ENGINE_CLASS_RENDER)) in guc_ctl_wa_flags()
207 if (XE_GT_WA(gt, 1509372804)) in guc_ctl_wa_flags()
210 if (XE_GT_WA(gt, 14018913170)) in guc_ctl_wa_flags()
213 if (XE_GT_WA(gt, 16023683509)) in guc_ctl_wa_flags()
228 struct xe_gt *gt = guc_to_gt(guc); in guc_print_params() local
236 xe_gt_dbg(gt, "GuC param[%2d] = 0x%08x\n", i, params[i]); in guc_print_params()
274 struct xe_gt *gt = guc_to_gt(guc); in guc_write_params() local
277 xe_force_wake_assert_held(gt_to_fw(gt), XE_FW_GT); in guc_write_params()
279 xe_mmio_write32(&gt->mmio, SOFT_SCRATCH(0), 0); in guc_write_params()
282 xe_mmio_write32(&gt->mmio, SOFT_SCRATCH(1 + i), guc->params[i]); in guc_write_params()
288 struct xe_gt *gt = guc_to_gt(guc); in guc_action_register_g2g_buffer() local
289 struct xe_device *xe = gt_to_xe(gt); in guc_action_register_g2g_buffer()
308 struct xe_gt *gt = guc_to_gt(guc); in guc_action_deregister_g2g_buffer() local
309 struct xe_device *xe = gt_to_xe(gt); in guc_action_deregister_g2g_buffer()
322 #define G2G_DEV(gt) (((gt)->info.type == XE_GT_TYPE_MAIN) ? 0 : 1) argument
436 struct xe_gt *gt = guc_to_gt(guc); in guc_g2g_size() local
437 struct xe_device *xe = gt_to_xe(gt); in guc_g2g_size()
458 struct xe_gt *gt = guc_to_gt(guc); in guc_g2g_alloc() local
459 struct xe_device *xe = gt_to_xe(gt); in guc_g2g_alloc()
460 struct xe_tile *tile = gt_to_tile(gt); in guc_g2g_alloc()
467 if (gt->info.id != 0) { in guc_g2g_alloc()
512 struct xe_gt *far_gt, *gt = guc_to_gt(guc); in guc_g2g_start() local
513 struct xe_device *xe = gt_to_xe(gt); in guc_g2g_start()
526 /* GuC interface will need extending if more GT device types are ever created. */ in guc_g2g_start()
527 xe_gt_assert(gt, (gt->info.type == XE_GT_TYPE_MAIN) || (gt->info.type == XE_GT_TYPE_MEDIA)); in guc_g2g_start()
535 if (far_gt->info.id == gt->info.id) in guc_g2g_start()
557 if (far_gt->info.id == gt->info.id) in guc_g2g_start()
588 struct xe_gt *gt = guc_to_gt(guc); in supports_dynamic_ics() local
597 * users of mlrc). On the primary GT side, to avoid it being used in in supports_dynamic_ics()
601 if (xe_gt_is_media_type(gt) || gt->ccs_mode > 1) in supports_dynamic_ics()
656 struct xe_gt *gt = guc_to_gt(guc); in guc_fini_hw() local
659 fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FORCEWAKE_ALL); in guc_fini_hw()
661 xe_force_wake_put(gt_to_fw(gt), fw_ref); in guc_fini_hw()
674 struct xe_gt *gt = guc_to_gt(guc); in xe_guc_comm_init_early() local
676 if (xe_gt_is_media_type(gt)) in xe_guc_comm_init_early()
708 struct xe_gt *gt = guc_to_gt(guc); in vf_guc_init_noalloc() local
711 err = xe_gt_sriov_vf_bootstrap(gt); in vf_guc_init_noalloc()
715 err = xe_gt_sriov_vf_query_config(gt); in vf_guc_init_noalloc()
725 struct xe_gt *gt = guc_to_gt(guc); in xe_guc_init_noalloc() local
747 xe_gt_err(gt, "GuC init failed with %pe\n", ERR_PTR(ret)); in xe_guc_init_noalloc()
754 struct xe_gt *gt = guc_to_gt(guc); in xe_guc_init() local
799 xe_gt_err(gt, "GuC init failed with %pe\n", ERR_PTR(ret)); in xe_guc_init()
887 struct xe_gt *gt = guc_to_gt(guc); in xe_guc_reset() local
888 struct xe_mmio *mmio = &gt->mmio; in xe_guc_reset()
892 xe_force_wake_assert_held(gt_to_fw(gt), XE_FW_GT); in xe_guc_reset()
894 if (IS_SRIOV_VF(gt_to_xe(gt))) in xe_guc_reset()
895 return xe_gt_sriov_vf_bootstrap(gt); in xe_guc_reset()
901 xe_gt_err(gt, "GuC reset timed out, GDRST=%#x\n", gdrst); in xe_guc_reset()
907 xe_gt_err(gt, "GuC status: %#x, MIA core expected to be in reset\n", in xe_guc_reset()
922 struct xe_gt *gt = guc_to_gt(guc); in guc_prepare_xfer() local
923 struct xe_mmio *mmio = &gt->mmio; in guc_prepare_xfer()
935 shim_flags |= REG_FIELD_PREP(GUC_MOCS_INDEX_MASK, gt->mocs.uc_index); in guc_prepare_xfer()
951 struct xe_gt *gt = guc_to_gt(guc); in guc_xfer_rsa() local
959 xe_mmio_write32(&gt->mmio, UOS_RSA_SCRATCH(0), rsa_ggtt_addr); in guc_xfer_rsa()
968 xe_mmio_write32(&gt->mmio, UOS_RSA_SCRATCH(i), rsa[i]); in guc_xfer_rsa()
1031 * Measurements indicate this should take no more than 20ms (assuming the GT
1037 * lead to even longer times. E.g. if the GT is clamped to minimum frequency then
1060 struct xe_gt *gt = guc_to_gt(guc); in guc_wait_ucode() local
1061 struct xe_mmio *mmio = &gt->mmio; in guc_wait_ucode()
1062 struct xe_guc_pc *guc_pc = &gt->uc.guc.pc; in guc_wait_ucode()
1103 …xe_gt_dbg(gt, "load still in progress, timeouts = %d, freq = %dMHz (req %dMHz), status = 0x%08X [0… in guc_wait_ucode()
1114 …xe_gt_err(gt, "load failed: status = 0x%08X, time = %lldms, freq = %dMHz (req %dMHz), done = %d\n", in guc_wait_ucode()
1117 …xe_gt_err(gt, "load failed: status: Reset = %d, BootROM = 0x%02X, UKernel = 0x%02X, MIA = 0x%02X, … in guc_wait_ucode()
1125 xe_gt_err(gt, "invalid key requested, header = 0x%08X\n", in guc_wait_ucode()
1130 xe_gt_err(gt, "firmware signature verification failed\n"); in guc_wait_ucode()
1134 xe_gt_err(gt, "firmware production part check failure\n"); in guc_wait_ucode()
1140 xe_gt_err(gt, "still extracting hwconfig table.\n"); in guc_wait_ucode()
1144 xe_gt_err(gt, "firmware exception. EIP: %#x\n", in guc_wait_ucode()
1149 xe_gt_err(gt, "illegal init/ADS data\n"); in guc_wait_ucode()
1153 xe_gt_err(gt, "illegal register in save/restore workaround list\n"); in guc_wait_ucode()
1157 xe_gt_err(gt, "illegal workaround KLV data\n"); in guc_wait_ucode()
1161 xe_gt_err(gt, "illegal feature flag specified\n"); in guc_wait_ucode()
1167 xe_gt_warn(gt, "excessive init time: %lldms! [status = 0x%08X, timeouts = %d]\n", in guc_wait_ucode()
1169 …xe_gt_warn(gt, "excessive init time: [freq = %dMHz (req = %dMHz), before = %dMHz, perf_limit_reaso… in guc_wait_ucode()
1171 before_freq, xe_gt_throttle_get_limit_reasons(gt)); in guc_wait_ucode()
1173 …xe_gt_dbg(gt, "init took %lldms, freq = %dMHz (req = %dMHz), before = %dMHz, status = 0x%08X, time… in guc_wait_ucode()
1186 /* Raise GT freq to speed up HuC/GuC load */ in __xe_guc_upload()
1226 struct xe_gt *gt = guc_to_gt(guc); in vf_guc_min_load_for_hwconfig() local
1237 ret = xe_gt_sriov_vf_connect(gt); in vf_guc_min_load_for_hwconfig()
1241 ret = xe_gt_sriov_vf_query_runtime(gt); in vf_guc_min_load_for_hwconfig()
1298 struct xe_gt *gt = guc_to_gt(guc); in guc_handle_mmio_msg() local
1304 xe_force_wake_assert_held(gt_to_fw(gt), XE_FW_GT); in guc_handle_mmio_msg()
1306 msg = xe_mmio_read32(&gt->mmio, SOFT_SCRATCH(15)); in guc_handle_mmio_msg()
1309 xe_mmio_write32(&gt->mmio, SOFT_SCRATCH(15), 0); in guc_handle_mmio_msg()
1312 xe_gt_err(gt, "Received early GuC crash dump notification!\n"); in guc_handle_mmio_msg()
1315 xe_gt_err(gt, "Received early GuC exception notification!\n"); in guc_handle_mmio_msg()
1320 struct xe_gt *gt = guc_to_gt(guc); in guc_enable_irq() local
1321 u32 events = xe_gt_is_media_type(gt) ? in guc_enable_irq()
1326 xe_mmio_write32(&gt->mmio, GUC_SG_INTR_ENABLE, in guc_enable_irq()
1333 xe_mmio_rmw32(&gt->mmio, GUC_SG_INTR_MASK, events, 0); in guc_enable_irq()
1342 struct xe_gt *gt = guc_to_gt(guc); in xe_guc_enable_communication() local
1343 struct xe_tile *tile = gt_to_tile(gt); in xe_guc_enable_communication()
1363 struct xe_gt *gt = guc_to_gt(guc); in xe_guc_suspend() local
1371 xe_gt_err(gt, "GuC suspend failed: %pe\n", ERR_PTR(ret)); in xe_guc_suspend()
1381 struct xe_gt *gt = guc_to_gt(guc); in xe_guc_notify() local
1389 xe_mmio_write32(&gt->mmio, guc->notify_reg, default_notify_data); in xe_guc_notify()
1406 struct xe_gt *gt = guc_to_gt(guc); in xe_guc_mmio_send_recv() local
1407 struct xe_mmio *mmio = &gt->mmio; in xe_guc_mmio_send_recv()
1409 struct xe_reg reply_reg = xe_gt_is_media_type(gt) ? in xe_guc_mmio_send_recv()
1427 /* Not in critical data-path, just do if else for GT type */ in xe_guc_mmio_send_recv()
1428 if (xe_gt_is_media_type(gt)) { in xe_guc_mmio_send_recv()
1448 xe_gt_dbg(gt, "GuC mmio request %#x: lost, trying again\n", request[0]); in xe_guc_mmio_send_recv()
1453 xe_gt_err(gt, "GuC mmio request %#x: no reply %#x\n", in xe_guc_mmio_send_recv()
1492 xe_gt_dbg(gt, "GuC mmio request %#x: retrying, reason %#x\n", in xe_guc_mmio_send_recv()
1502 xe_gt_err(gt, "GuC mmio request %#x: failure %#x hint %#x\n", in xe_guc_mmio_send_recv()
1510 xe_gt_err(gt, "GuC mmio request %#x: unexpected reply %#x\n", in xe_guc_mmio_send_recv()
1580 struct xe_gt *gt = guc_to_gt(guc); in xe_guc_sw_0_irq_handler() local
1582 if (IS_SRIOV_VF(gt_to_xe(gt))) in xe_guc_sw_0_irq_handler()
1583 xe_gt_sriov_vf_migrated_event_handler(gt); in xe_guc_sw_0_irq_handler()
1637 struct xe_gt *gt = guc_to_gt(guc); in xe_guc_print_info() local
1644 if (!IS_SRIOV_VF(gt_to_xe(gt))) { in xe_guc_print_info()
1645 fw_ref = xe_force_wake_get(gt_to_fw(gt), XE_FW_GT); in xe_guc_print_info()
1649 status = xe_mmio_read32(&gt->mmio, GUC_STATUS); in xe_guc_print_info()
1664 i, xe_mmio_read32(&gt->mmio, SOFT_SCRATCH(i))); in xe_guc_print_info()
1667 xe_force_wake_put(gt_to_fw(gt), fw_ref); in xe_guc_print_info()