Home
last modified time | relevance | path

Searched refs:guc (Results 1 – 25 of 43) sorted by relevance

12

/Linux-v6.1/drivers/gpu/drm/i915/gt/uc/
Dintel_guc.h81 void (*reset)(struct intel_guc *guc);
82 void (*enable)(struct intel_guc *guc);
83 void (*disable)(struct intel_guc *guc);
262 inline int intel_guc_send(struct intel_guc *guc, const u32 *action, u32 len) in intel_guc_send() argument
264 return intel_guc_ct_send(&guc->ct, action, len, NULL, 0, 0); in intel_guc_send()
268 inline int intel_guc_send_nb(struct intel_guc *guc, const u32 *action, u32 len, in intel_guc_send_nb() argument
271 return intel_guc_ct_send(&guc->ct, action, len, NULL, 0, in intel_guc_send_nb()
276 intel_guc_send_and_receive(struct intel_guc *guc, const u32 *action, u32 len, in intel_guc_send_and_receive() argument
279 return intel_guc_ct_send(&guc->ct, action, len, in intel_guc_send_and_receive()
283 static inline int intel_guc_send_busy_loop(struct intel_guc *guc, in intel_guc_send_busy_loop() argument
[all …]
Dintel_guc.c40 void intel_guc_notify(struct intel_guc *guc) in intel_guc_notify() argument
42 struct intel_gt *gt = guc_to_gt(guc); in intel_guc_notify()
50 intel_uncore_write(gt->uncore, guc->notify_reg, GUC_SEND_TRIGGER); in intel_guc_notify()
53 static inline i915_reg_t guc_send_reg(struct intel_guc *guc, u32 i) in guc_send_reg() argument
55 GEM_BUG_ON(!guc->send_regs.base); in guc_send_reg()
56 GEM_BUG_ON(!guc->send_regs.count); in guc_send_reg()
57 GEM_BUG_ON(i >= guc->send_regs.count); in guc_send_reg()
59 return _MMIO(guc->send_regs.base + 4 * i); in guc_send_reg()
62 void intel_guc_init_send_regs(struct intel_guc *guc) in intel_guc_init_send_regs() argument
64 struct intel_gt *gt = guc_to_gt(guc); in intel_guc_init_send_regs()
[all …]
Dintel_guc_ads.c78 static u32 guc_ads_regset_size(struct intel_guc *guc) in guc_ads_regset_size() argument
80 GEM_BUG_ON(!guc->ads_regset_size); in guc_ads_regset_size()
81 return guc->ads_regset_size; in guc_ads_regset_size()
84 static u32 guc_ads_golden_ctxt_size(struct intel_guc *guc) in guc_ads_golden_ctxt_size() argument
86 return PAGE_ALIGN(guc->ads_golden_ctxt_size); in guc_ads_golden_ctxt_size()
89 static u32 guc_ads_capture_size(struct intel_guc *guc) in guc_ads_capture_size() argument
91 return PAGE_ALIGN(guc->ads_capture_size); in guc_ads_capture_size()
94 static u32 guc_ads_private_data_size(struct intel_guc *guc) in guc_ads_private_data_size() argument
96 return PAGE_ALIGN(guc->fw.private_data_size); in guc_ads_private_data_size()
99 static u32 guc_ads_regset_offset(struct intel_guc *guc) in guc_ads_regset_offset() argument
[all …]
Dintel_uc.c127 intel_guc_init_early(&uc->guc); in intel_uc_init_early()
140 intel_guc_init_late(&uc->guc); in intel_uc_init_late()
156 intel_guc_init_send_regs(&uc->guc); in intel_uc_init_mmio()
161 struct intel_guc *guc = &uc->guc; in __uc_capture_load_err_log() local
163 if (guc->log.vma && !uc->load_err_log) in __uc_capture_load_err_log()
164 uc->load_err_log = i915_gem_object_get(guc->log.vma->obj); in __uc_capture_load_err_log()
188 static void guc_clear_mmio_msg(struct intel_guc *guc) in guc_clear_mmio_msg() argument
190 intel_uncore_write(guc_to_gt(guc)->uncore, SOFT_SCRATCH(15), 0); in guc_clear_mmio_msg()
193 static void guc_get_mmio_msg(struct intel_guc *guc) in guc_get_mmio_msg() argument
197 spin_lock_irq(&guc->irq_lock); in guc_get_mmio_msg()
[all …]
Dintel_guc_rc.c12 static bool __guc_rc_supported(struct intel_guc *guc) in __guc_rc_supported() argument
15 return guc->submission_supported && in __guc_rc_supported()
16 GRAPHICS_VER(guc_to_gt(guc)->i915) >= 12; in __guc_rc_supported()
19 static bool __guc_rc_selected(struct intel_guc *guc) in __guc_rc_selected() argument
21 if (!intel_guc_rc_is_supported(guc)) in __guc_rc_selected()
24 return guc->submission_selected; in __guc_rc_selected()
27 void intel_guc_rc_init_early(struct intel_guc *guc) in intel_guc_rc_init_early() argument
29 guc->rc_supported = __guc_rc_supported(guc); in intel_guc_rc_init_early()
30 guc->rc_selected = __guc_rc_selected(guc); in intel_guc_rc_init_early()
33 static int guc_action_control_gucrc(struct intel_guc *guc, bool enable) in guc_action_control_gucrc() argument
[all …]
Dintel_guc_submission.c151 #define NUMBER_MULTI_LRC_GUC_ID(guc) \ argument
152 ((guc)->submission_state.num_guc_ids / 16)
383 return &ce->engine->gt->uc.guc; in ce_to_guc()
433 GEM_BUG_ON(!ce->parallel.guc.parent_page); in __get_parent_scratch_offset()
435 return ce->parallel.guc.parent_page * PAGE_SIZE; in __get_parent_scratch_offset()
486 CIRC_SPACE(ce->parallel.guc.wqi_tail, ce->parallel.guc.wqi_head, WQ_SIZE) in get_wq_pointer()
488 ce->parallel.guc.wqi_head = READ_ONCE(*ce->parallel.guc.wq_head); in get_wq_pointer()
495 return &__get_parent_scratch(ce)->wq[ce->parallel.guc.wqi_tail / sizeof(u32)]; in get_wq_pointer()
498 static inline struct intel_context *__get_context(struct intel_guc *guc, u32 id) in __get_context() argument
500 struct intel_context *ce = xa_load(&guc->context_lookup, id); in __get_context()
[all …]
Dintel_guc_capture.c281 guc_capture_alloc_steered_lists_xe_lpd(struct intel_guc *guc, in guc_capture_alloc_steered_lists_xe_lpd() argument
284 struct intel_gt *gt = guc_to_gt(guc); in guc_capture_alloc_steered_lists_xe_lpd()
295 if (!list || guc->capture->extlists) in guc_capture_alloc_steered_lists_xe_lpd()
325 guc->capture->extlists = extlists; in guc_capture_alloc_steered_lists_xe_lpd()
338 guc_capture_alloc_steered_lists_xe_hpg(struct intel_guc *guc, in guc_capture_alloc_steered_lists_xe_hpg() argument
342 struct intel_gt *gt = guc_to_gt(guc); in guc_capture_alloc_steered_lists_xe_hpg()
343 struct drm_i915_private *i915 = guc_to_gt(guc)->i915; in guc_capture_alloc_steered_lists_xe_hpg()
354 if (!list || guc->capture->extlists) in guc_capture_alloc_steered_lists_xe_hpg()
393 guc->capture->extlists = extlists; in guc_capture_alloc_steered_lists_xe_hpg()
397 guc_capture_get_device_reglist(struct intel_guc *guc) in guc_capture_get_device_reglist() argument
[all …]
Dintel_guc_debugfs.c19 struct intel_guc *guc = m->private; in guc_info_show() local
22 if (!intel_guc_is_supported(guc)) in guc_info_show()
25 intel_guc_load_status(guc, &p); in guc_info_show()
27 intel_guc_log_info(&guc->log, &p); in guc_info_show()
29 if (!intel_guc_submission_is_used(guc)) in guc_info_show()
32 intel_guc_ct_print_info(&guc->ct, &p); in guc_info_show()
33 intel_guc_submission_print_info(guc, &p); in guc_info_show()
34 intel_guc_ads_print_policy_info(guc, &p); in guc_info_show()
42 struct intel_guc *guc = m->private; in guc_registered_contexts_show() local
45 if (!intel_guc_submission_is_used(guc)) in guc_registered_contexts_show()
[all …]
Dintel_guc_submission.h16 void intel_guc_submission_init_early(struct intel_guc *guc);
17 int intel_guc_submission_init(struct intel_guc *guc);
18 void intel_guc_submission_enable(struct intel_guc *guc);
19 void intel_guc_submission_disable(struct intel_guc *guc);
20 void intel_guc_submission_fini(struct intel_guc *guc);
21 int intel_guc_preempt_work_create(struct intel_guc *guc);
22 void intel_guc_preempt_work_destroy(struct intel_guc *guc);
24 void intel_guc_submission_print_info(struct intel_guc *guc,
26 void intel_guc_submission_print_context_info(struct intel_guc *guc,
36 int intel_guc_wait_for_pending_msg(struct intel_guc *guc,
[all …]
Dintel_guc_rc.h11 void intel_guc_rc_init_early(struct intel_guc *guc);
13 static inline bool intel_guc_rc_is_supported(struct intel_guc *guc) in intel_guc_rc_is_supported() argument
15 return guc->rc_supported; in intel_guc_rc_is_supported()
18 static inline bool intel_guc_rc_is_wanted(struct intel_guc *guc) in intel_guc_rc_is_wanted() argument
20 return guc->submission_selected && intel_guc_rc_is_supported(guc); in intel_guc_rc_is_wanted()
23 static inline bool intel_guc_rc_is_used(struct intel_guc *guc) in intel_guc_rc_is_used() argument
25 return intel_guc_submission_is_used(guc) && intel_guc_rc_is_wanted(guc); in intel_guc_rc_is_used()
28 int intel_guc_rc_enable(struct intel_guc *guc);
29 int intel_guc_rc_disable(struct intel_guc *guc);
Dintel_guc_hwconfig.c34 static int __guc_action_get_hwconfig(struct intel_guc *guc, in __guc_action_get_hwconfig() argument
45 ret = intel_guc_send_mmio(guc, action, ARRAY_SIZE(action), NULL, 0); in __guc_action_get_hwconfig()
52 static int guc_hwconfig_discover_size(struct intel_guc *guc, struct intel_hwconfig *hwconfig) in guc_hwconfig_discover_size() argument
60 ret = __guc_action_get_hwconfig(guc, 0, 0); in guc_hwconfig_discover_size()
71 static int guc_hwconfig_fill_buffer(struct intel_guc *guc, struct intel_hwconfig *hwconfig) in guc_hwconfig_fill_buffer() argument
80 ret = intel_guc_allocate_and_map_vma(guc, hwconfig->size, &vma, &vaddr); in guc_hwconfig_fill_buffer()
84 ggtt_offset = intel_guc_ggtt_offset(guc, vma); in guc_hwconfig_fill_buffer()
86 ret = __guc_action_get_hwconfig(guc, ggtt_offset, hwconfig->size); in guc_hwconfig_fill_buffer()
114 struct intel_guc *guc = &gt->uc.guc; in guc_hwconfig_init() local
120 ret = guc_hwconfig_discover_size(guc, hwconfig); in guc_hwconfig_init()
[all …]
Dintel_guc_slpc.c32 static bool __detect_slpc_supported(struct intel_guc *guc) in __detect_slpc_supported() argument
35 return guc->submission_supported && in __detect_slpc_supported()
36 GRAPHICS_VER(guc_to_gt(guc)->i915) >= 12; in __detect_slpc_supported()
39 static bool __guc_slpc_selected(struct intel_guc *guc) in __guc_slpc_selected() argument
41 if (!intel_guc_slpc_is_supported(guc)) in __guc_slpc_selected()
44 return guc->submission_selected; in __guc_slpc_selected()
49 struct intel_guc *guc = slpc_to_guc(slpc); in intel_guc_slpc_init_early() local
51 slpc->supported = __detect_slpc_supported(guc); in intel_guc_slpc_init_early()
52 slpc->selected = __guc_slpc_selected(guc); in intel_guc_slpc_init_early()
101 static int guc_action_slpc_set_param_nb(struct intel_guc *guc, u8 id, u32 value) in guc_action_slpc_set_param_nb() argument
[all …]
Dintel_guc_ads.h16 int intel_guc_ads_create(struct intel_guc *guc);
17 void intel_guc_ads_destroy(struct intel_guc *guc);
18 void intel_guc_ads_init_late(struct intel_guc *guc);
19 void intel_guc_ads_reset(struct intel_guc *guc);
20 void intel_guc_ads_print_policy_info(struct intel_guc *guc,
23 u32 intel_guc_engine_usage_offset(struct intel_guc *guc);
Dintel_guc_slpc.h15 static inline bool intel_guc_slpc_is_supported(struct intel_guc *guc) in intel_guc_slpc_is_supported() argument
17 return guc->slpc.supported; in intel_guc_slpc_is_supported()
20 static inline bool intel_guc_slpc_is_wanted(struct intel_guc *guc) in intel_guc_slpc_is_wanted() argument
22 return guc->slpc.selected; in intel_guc_slpc_is_wanted()
25 static inline bool intel_guc_slpc_is_used(struct intel_guc *guc) in intel_guc_slpc_is_used() argument
27 return intel_guc_submission_is_used(guc) && intel_guc_slpc_is_wanted(guc); in intel_guc_slpc_is_used()
Dintel_guc_log.c41 struct intel_guc *guc = log_to_guc(log); in _guc_log_init_sizes() local
42 struct drm_i915_private *i915 = guc_to_gt(guc)->i915; in _guc_log_init_sizes()
182 static int guc_action_flush_log_complete(struct intel_guc *guc) in guc_action_flush_log_complete() argument
189 return intel_guc_send_nb(guc, action, ARRAY_SIZE(action), 0); in guc_action_flush_log_complete()
192 static int guc_action_flush_log(struct intel_guc *guc) in guc_action_flush_log() argument
199 return intel_guc_send(guc, action, ARRAY_SIZE(action)); in guc_action_flush_log()
202 static int guc_action_control_log(struct intel_guc *guc, bool enable, in guc_action_control_log() argument
214 return intel_guc_send(guc, action, ARRAY_SIZE(action)); in guc_action_control_log()
522 struct intel_guc *guc = log_to_guc(log); in guc_log_relay_create() local
523 struct drm_i915_private *dev_priv = guc_to_gt(guc)->i915; in guc_log_relay_create()
[all …]
Dintel_guc_capture.h23 void intel_guc_capture_process(struct intel_guc *guc);
24 int intel_guc_capture_getlist(struct intel_guc *guc, u32 owner, u32 type, u32 classid,
26 int intel_guc_capture_getlistsize(struct intel_guc *guc, u32 owner, u32 type, u32 classid,
28 int intel_guc_capture_getnullheader(struct intel_guc *guc, void **outptr, size_t *size);
29 void intel_guc_capture_destroy(struct intel_guc *guc);
30 int intel_guc_capture_init(struct intel_guc *guc);
Dintel_guc_fw.c66 struct intel_guc *guc = container_of(guc_fw, struct intel_guc, fw); in guc_xfer_rsa_vma() local
69 intel_guc_ggtt_offset(guc, guc_fw->rsa_data)); in guc_xfer_rsa_vma()
165 int intel_guc_fw_upload(struct intel_guc *guc) in intel_guc_fw_upload() argument
167 struct intel_gt *gt = guc_to_gt(guc); in intel_guc_fw_upload()
181 ret = guc_xfer_rsa(&guc->fw, uncore); in intel_guc_fw_upload()
189 ret = intel_uc_fw_upload(&guc->fw, 0x2000, UOS_MOVE); in intel_guc_fw_upload()
197 intel_uc_fw_change_status(&guc->fw, INTEL_UC_FIRMWARE_RUNNING); in intel_guc_fw_upload()
201 intel_uc_fw_change_status(&guc->fw, INTEL_UC_FIRMWARE_LOAD_FAIL); in intel_guc_fw_upload()
Dintel_uc.h30 struct intel_guc guc; member
85 uc_state_checkers(guc, guc);
87 uc_state_checkers(guc, guc_submission);
88 uc_state_checkers(guc, guc_slpc);
89 uc_state_checkers(guc, guc_rc);
96 return intel_guc_wait_for_idle(&uc->guc, timeout); in intel_uc_wait_for_idle()
Dintel_guc_log_debugfs.c33 struct intel_guc *guc = log_to_guc(log); in guc_log_dump_size() local
35 if (!intel_guc_is_supported(guc)) in guc_log_dump_size()
61 struct intel_guc *guc = log_to_guc(log); in guc_load_err_dump_size() local
62 struct intel_uc *uc = container_of(guc, struct intel_uc, guc); in guc_load_err_dump_size()
64 if (!intel_guc_is_supported(guc)) in guc_load_err_dump_size()
Dselftest_guc.c145 struct intel_guc *guc = &gt->uc.guc; in intel_guc_steal_guc_ids() local
152 int number_guc_id_stolen = guc->number_guc_id_stolen; in intel_guc_steal_guc_ids()
162 sv = guc->submission_state.num_guc_ids; in intel_guc_steal_guc_ids()
163 guc->submission_state.num_guc_ids = 512; in intel_guc_steal_guc_ids()
261 if (guc->number_guc_id_stolen == number_guc_id_stolen) { in intel_guc_steal_guc_ids()
282 guc->submission_state.num_guc_ids = sv; in intel_guc_steal_guc_ids()
Dintel_guc_ct.c148 static int guc_action_control_ctb(struct intel_guc *guc, u32 control) in guc_action_control_ctb() argument
161 ret = intel_guc_send_mmio(guc, request, ARRAY_SIZE(request), NULL, 0); in guc_action_control_ctb()
220 struct intel_guc *guc = ct_to_guc(ct); in intel_guc_ct_init() local
229 err = i915_inject_probe_error(guc_to_gt(guc)->i915, -ENXIO); in intel_guc_ct_init()
236 err = intel_guc_allocate_and_map_vma(guc, blob_size, &ct->vma, &blob); in intel_guc_ct_init()
243 CT_DEBUG(ct, "base=%#x size=%u\n", intel_guc_ggtt_offset(guc, ct->vma), blob_size); in intel_guc_ct_init()
293 struct intel_guc *guc = ct_to_guc(ct); in intel_guc_ct_enable() local
303 base = intel_guc_ggtt_offset(guc, ct->vma); in intel_guc_ct_enable()
351 struct intel_guc *guc = ct_to_guc(ct); in intel_guc_ct_disable() local
357 if (intel_guc_is_fw_running(guc)) { in intel_guc_ct_disable()
[all …]
Dintel_huc.c141 struct intel_guc *guc = &gt->uc.guc; in intel_huc_auth() local
157 ret = intel_guc_auth_huc(guc, intel_guc_ggtt_offset(guc, huc->fw.rsa_data)); in intel_huc_auth()
/Linux-v6.1/drivers/gpu/drm/i915/
Dintel_wopcm.c233 u32 guc_fw_size = intel_uc_fw_get_upload_size(&gt->uc.guc.fw); in intel_wopcm_init()
244 GEM_BUG_ON(wopcm->guc.base); in intel_wopcm_init()
245 GEM_BUG_ON(wopcm->guc.size); in intel_wopcm_init()
300 wopcm->guc.base = guc_wopcm_base; in intel_wopcm_init()
301 wopcm->guc.size = guc_wopcm_size; in intel_wopcm_init()
302 GEM_BUG_ON(!wopcm->guc.base); in intel_wopcm_init()
303 GEM_BUG_ON(!wopcm->guc.size); in intel_wopcm_init()
Dintel_wopcm.h24 } guc; member
39 return wopcm->guc.base; in intel_wopcm_guc_base()
54 return wopcm->guc.size; in intel_wopcm_guc_size()
Di915_gpu_error.c692 err_printf(m, "GuC timestamp: 0x%08x\n", error_uc->guc.timestamp); in err_print_uc()
693 intel_gpu_error_print_vma(m, NULL, error_uc->guc.vma_log); in err_print_uc()
694 err_printf(m, "GuC CTB fence: %d\n", error_uc->guc.last_fence); in err_print_uc()
695 err_print_guc_ctb(m, "Send", error_uc->guc.ctb + 0); in err_print_uc()
696 err_print_guc_ctb(m, "Recv", error_uc->guc.ctb + 1); in err_print_uc()
697 intel_gpu_error_print_vma(m, NULL, error_uc->guc.vma_ctb); in err_print_uc()
872 if (error->gt->uc && error->gt->uc->guc.is_guc_capture) in __err_print_to_sgl()
1029 i915_vma_coredump_free(uc->guc.vma_log); in cleanup_uc()
1030 i915_vma_coredump_free(uc->guc.vma_ctb); in cleanup_uc()
1681 const void *blob_ptr, struct intel_guc *guc) in gt_record_guc_ctb() argument
[all …]

12