Home
last modified time | relevance | path

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

12

/Linux-v5.4/drivers/gpu/drm/i915/gt/uc/
Dintel_guc.c12 static void gen8_guc_raise_irq(struct intel_guc *guc) in gen8_guc_raise_irq() argument
14 struct intel_gt *gt = guc_to_gt(guc); in gen8_guc_raise_irq()
19 static void gen11_guc_raise_irq(struct intel_guc *guc) in gen11_guc_raise_irq() argument
21 struct intel_gt *gt = guc_to_gt(guc); in gen11_guc_raise_irq()
26 static inline i915_reg_t guc_send_reg(struct intel_guc *guc, u32 i) in guc_send_reg() argument
28 GEM_BUG_ON(!guc->send_regs.base); in guc_send_reg()
29 GEM_BUG_ON(!guc->send_regs.count); in guc_send_reg()
30 GEM_BUG_ON(i >= guc->send_regs.count); in guc_send_reg()
32 return _MMIO(guc->send_regs.base + 4 * i); in guc_send_reg()
35 void intel_guc_init_send_regs(struct intel_guc *guc) in intel_guc_init_send_regs() argument
[all …]
Dintel_guc.h37 void (*reset)(struct intel_guc *guc);
38 void (*enable)(struct intel_guc *guc);
39 void (*disable)(struct intel_guc *guc);
76 int (*send)(struct intel_guc *guc, const u32 *data, u32 len,
80 void (*handler)(struct intel_guc *guc);
83 void (*notify)(struct intel_guc *guc);
87 inline int intel_guc_send(struct intel_guc *guc, const u32 *action, u32 len) in intel_guc_send() argument
89 return guc->send(guc, action, len, NULL, 0); in intel_guc_send()
93 intel_guc_send_and_receive(struct intel_guc *guc, const u32 *action, u32 len, in intel_guc_send_and_receive() argument
96 return guc->send(guc, action, len, response_buf, response_buf_size); in intel_guc_send_and_receive()
[all …]
Dintel_uc.c88 intel_guc_init_early(&uc->guc); in intel_uc_init_early()
107 intel_guc_init_send_regs(&uc->guc); in intel_uc_init_mmio()
112 struct intel_guc *guc = &uc->guc; in __uc_capture_load_err_log() local
114 if (guc->log.vma && !uc->load_err_log) in __uc_capture_load_err_log()
115 uc->load_err_log = i915_gem_object_get(guc->log.vma->obj); in __uc_capture_load_err_log()
132 static void guc_clear_mmio_msg(struct intel_guc *guc) in guc_clear_mmio_msg() argument
134 intel_uncore_write(guc_to_gt(guc)->uncore, SOFT_SCRATCH(15), 0); in guc_clear_mmio_msg()
137 static void guc_get_mmio_msg(struct intel_guc *guc) in guc_get_mmio_msg() argument
141 spin_lock_irq(&guc->irq_lock); in guc_get_mmio_msg()
143 val = intel_uncore_read(guc_to_gt(guc)->uncore, SOFT_SCRATCH(15)); in guc_get_mmio_msg()
[all …]
Dselftest_guc.c14 static bool available_dbs(struct intel_guc *guc, u32 priority) in available_dbs() argument
28 id = find_next_zero_bit(guc->doorbell_bitmap, end, offset); in available_dbs()
35 static int check_all_doorbells(struct intel_guc *guc) in check_all_doorbells() argument
41 if (!doorbell_ok(guc, db_id)) { in check_all_doorbells()
98 return !client || doorbell_ok(client->guc, client->doorbell_id); in client_doorbell_in_sync()
115 struct intel_guc *guc; in igt_guc_clients() local
122 guc = &dev_priv->gt.uc.guc; in igt_guc_clients()
123 if (!guc) { in igt_guc_clients()
129 err = check_all_doorbells(guc); in igt_guc_clients()
137 guc_clients_disable(guc); in igt_guc_clients()
[all …]
Dintel_guc_submission.c106 id = find_next_zero_bit(client->guc->doorbell_bitmap, end, offset); in reserve_doorbell()
110 __set_bit(id, client->guc->doorbell_bitmap); in reserve_doorbell()
123 return test_bit(client->doorbell_id, client->guc->doorbell_bitmap); in has_doorbell()
130 __clear_bit(client->doorbell_id, client->guc->doorbell_bitmap); in unreserve_doorbell()
138 static int __guc_allocate_doorbell(struct intel_guc *guc, u32 stage_id) in __guc_allocate_doorbell() argument
145 return intel_guc_send(guc, action, ARRAY_SIZE(action)); in __guc_allocate_doorbell()
148 static int __guc_deallocate_doorbell(struct intel_guc *guc, u32 stage_id) in __guc_deallocate_doorbell() argument
155 return intel_guc_send(guc, action, ARRAY_SIZE(action)); in __guc_deallocate_doorbell()
160 struct guc_stage_desc *base = client->guc->stage_desc_pool_vaddr; in __get_stage_desc()
186 static bool __doorbell_valid(struct intel_guc *guc, u16 db_id) in __doorbell_valid() argument
[all …]
Dintel_guc_ads.c68 static void __guc_ads_init(struct intel_guc *guc) in __guc_ads_init() argument
70 struct drm_i915_private *dev_priv = guc_to_gt(guc)->i915; in __guc_ads_init()
71 struct __guc_ads_blob *blob = guc->ads_blob; in __guc_ads_init()
109 base = intel_guc_ggtt_offset(guc, guc->ads_vma); in __guc_ads_init()
125 i915_gem_object_flush_map(guc->ads_vma->obj); in __guc_ads_init()
135 int intel_guc_ads_create(struct intel_guc *guc) in intel_guc_ads_create() argument
142 GEM_BUG_ON(guc->ads_vma); in intel_guc_ads_create()
144 vma = intel_guc_allocate_vma(guc, size); in intel_guc_ads_create()
154 guc->ads_vma = vma; in intel_guc_ads_create()
155 guc->ads_blob = blob; in intel_guc_ads_create()
[all …]
Dintel_guc_submission.h42 struct intel_guc *guc; member
59 void intel_guc_submission_init_early(struct intel_guc *guc);
60 int intel_guc_submission_init(struct intel_guc *guc);
61 int intel_guc_submission_enable(struct intel_guc *guc);
62 void intel_guc_submission_disable(struct intel_guc *guc);
63 void intel_guc_submission_fini(struct intel_guc *guc);
64 int intel_guc_preempt_work_create(struct intel_guc *guc);
65 void intel_guc_preempt_work_destroy(struct intel_guc *guc);
Dintel_guc_fw.c22 void intel_guc_fw_init_early(struct intel_guc *guc) in intel_guc_fw_init_early() argument
24 struct drm_i915_private *i915 = guc_to_gt(guc)->i915; in intel_guc_fw_init_early()
26 intel_uc_fw_init_early(&guc->fw, INTEL_UC_FW_TYPE_GUC, HAS_GT_UC(i915), in intel_guc_fw_init_early()
133 int intel_guc_fw_upload(struct intel_guc *guc) in intel_guc_fw_upload() argument
135 struct intel_gt *gt = guc_to_gt(guc); in intel_guc_fw_upload()
146 guc_xfer_rsa(&guc->fw, uncore); in intel_guc_fw_upload()
152 ret = intel_uc_fw_upload(&guc->fw, gt, 0x2000, UOS_MOVE); in intel_guc_fw_upload()
160 intel_uc_fw_change_status(&guc->fw, INTEL_UC_FIRMWARE_RUNNING); in intel_guc_fw_upload()
164 intel_uc_fw_change_status(&guc->fw, INTEL_UC_FIRMWARE_FAIL); in intel_guc_fw_upload()
Dintel_guc_ct.c86 static int guc_action_register_ct_buffer(struct intel_guc *guc, in guc_action_register_ct_buffer() argument
99 err = intel_guc_send_mmio(guc, action, ARRAY_SIZE(action), NULL, 0); in guc_action_register_ct_buffer()
106 static int guc_action_deregister_ct_buffer(struct intel_guc *guc, in guc_action_deregister_ct_buffer() argument
118 err = intel_guc_send_mmio(guc, action, ARRAY_SIZE(action), NULL, 0); in guc_action_deregister_ct_buffer()
125 static int ctch_init(struct intel_guc *guc, in ctch_init() argument
158 vma = intel_guc_allocate_vma(guc, PAGE_SIZE); in ctch_init()
172 intel_guc_ggtt_offset(guc, ctch->vma)); in ctch_init()
191 static void ctch_fini(struct intel_guc *guc, in ctch_fini() argument
199 static int ctch_enable(struct intel_guc *guc, in ctch_enable() argument
211 base = intel_guc_ggtt_offset(guc, ctch->vma); in ctch_enable()
[all …]
Dintel_guc_log.c24 static int guc_action_flush_log_complete(struct intel_guc *guc) in guc_action_flush_log_complete() argument
30 return intel_guc_send(guc, action, ARRAY_SIZE(action)); in guc_action_flush_log_complete()
33 static int guc_action_flush_log(struct intel_guc *guc) in guc_action_flush_log() argument
40 return intel_guc_send(guc, action, ARRAY_SIZE(action)); in guc_action_flush_log()
43 static int guc_action_control_log(struct intel_guc *guc, bool enable, in guc_action_control_log() argument
55 return intel_guc_send(guc, action, ARRAY_SIZE(action)); in guc_action_control_log()
368 struct intel_guc *guc = log_to_guc(log); in guc_log_relay_create() local
369 struct drm_i915_private *dev_priv = guc_to_gt(guc)->i915; in guc_log_relay_create()
415 struct intel_guc *guc = log_to_guc(log); in guc_log_capture_logs() local
416 struct drm_i915_private *dev_priv = guc_to_gt(guc)->i915; in guc_log_capture_logs()
[all …]
Dintel_uc.h14 struct intel_guc guc; member
39 return intel_guc_is_supported(&uc->guc); in intel_uc_supports_guc()
44 return intel_guc_is_enabled(&uc->guc); in intel_uc_uses_guc()
49 return intel_guc_is_submission_supported(&uc->guc); in intel_uc_supports_guc_submission()
54 return intel_guc_is_submission_supported(&uc->guc); in intel_uc_uses_guc_submission()
Dintel_huc.c32 struct intel_guc *guc = &gt->uc.guc; in intel_huc_rsa_data_create() local
53 vma = intel_guc_allocate_vma(guc, PAGE_SIZE); in intel_huc_rsa_data_create()
129 struct intel_guc *guc = &gt->uc.guc; in intel_huc_auth() local
141 ret = intel_guc_auth_huc(guc, in intel_huc_auth()
142 intel_guc_ggtt_offset(guc, huc->rsa_data)); in intel_huc_auth()
Dintel_guc_ads.h11 int intel_guc_ads_create(struct intel_guc *guc);
12 void intel_guc_ads_destroy(struct intel_guc *guc);
13 void intel_guc_ads_reset(struct intel_guc *guc);
Dintel_guc_fw.h11 void intel_guc_fw_init_early(struct intel_guc *guc);
12 int intel_guc_fw_upload(struct intel_guc *guc);
Dintel_guc_ct.h89 int intel_guc_send_ct(struct intel_guc *guc, const u32 *action, u32 len,
91 void intel_guc_to_host_event_handler_ct(struct intel_guc *guc);
/Linux-v5.4/drivers/gpu/drm/i915/
Dintel_wopcm.c225 u32 guc_fw_size = intel_uc_fw_get_upload_size(&gt->uc.guc.fw); in intel_wopcm_init()
235 GEM_BUG_ON(wopcm->guc.base); in intel_wopcm_init()
236 GEM_BUG_ON(wopcm->guc.size); in intel_wopcm_init()
275 wopcm->guc.base = guc_wopcm_base; in intel_wopcm_init()
276 wopcm->guc.size = guc_wopcm_size; in intel_wopcm_init()
277 GEM_BUG_ON(!wopcm->guc.base); in intel_wopcm_init()
278 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_irq.h109 void gen9_reset_guc_interrupts(struct intel_guc *guc);
110 void gen9_enable_guc_interrupts(struct intel_guc *guc);
111 void gen9_disable_guc_interrupts(struct intel_guc *guc);
112 void gen11_reset_guc_interrupts(struct intel_guc *guc);
113 void gen11_enable_guc_interrupts(struct intel_guc *guc);
114 void gen11_disable_guc_interrupts(struct intel_guc *guc);
Di915_irq.c418 void gen9_reset_guc_interrupts(struct intel_guc *guc) in gen9_reset_guc_interrupts() argument
420 struct intel_gt *gt = guc_to_gt(guc); in gen9_reset_guc_interrupts()
429 void gen9_enable_guc_interrupts(struct intel_guc *guc) in gen9_enable_guc_interrupts() argument
431 struct intel_gt *gt = guc_to_gt(guc); in gen9_enable_guc_interrupts()
436 if (!guc->interrupts.enabled) { in gen9_enable_guc_interrupts()
440 guc->interrupts.enabled = true; in gen9_enable_guc_interrupts()
446 void gen9_disable_guc_interrupts(struct intel_guc *guc) in gen9_disable_guc_interrupts() argument
448 struct intel_gt *gt = guc_to_gt(guc); in gen9_disable_guc_interrupts()
453 guc->interrupts.enabled = false; in gen9_disable_guc_interrupts()
460 gen9_reset_guc_interrupts(guc); in gen9_disable_guc_interrupts()
[all …]
Di915_debugfs.c1817 intel_uc_fw_dump(&dev_priv->gt.uc.guc.fw, &p); in i915_guc_load_status_info()
1860 struct intel_guc_log *log = &dev_priv->gt.uc.guc.log; in i915_guc_log_info()
1884 const struct intel_guc *guc = &dev_priv->gt.uc.guc; in i915_guc_info() local
1885 struct intel_guc_client *client = guc->execbuf_client; in i915_guc_info()
1895 GEM_BUG_ON(!guc->execbuf_client); in i915_guc_info()
1898 seq_printf(m, "\t%*pb\n", GUC_NUM_DOORBELLS, guc->doorbell_bitmap); in i915_guc_info()
1899 seq_printf(m, "Doorbell next cacheline: 0x%x\n", guc->db_cacheline); in i915_guc_info()
1916 const struct intel_guc *guc = &dev_priv->gt.uc.guc; in i915_guc_stage_pool() local
1917 struct guc_stage_desc *desc = guc->stage_desc_pool_vaddr; in i915_guc_stage_pool()
1979 else if (dev_priv->gt.uc.guc.log.vma) in i915_guc_log_dump()
[all …]
Di915_gpu_error.c1478 memcpy(&error_uc->guc_fw, &uc->guc.fw, sizeof(uc->guc.fw)); in capture_uc_state()
1485 error_uc->guc_fw.path = kstrdup(uc->guc.fw.path, ALLOW_FAIL); in capture_uc_state()
1488 uc->guc.log.vma, in capture_uc_state()
/Linux-v5.4/drivers/gpu/drm/i915/gt/
Dintel_gt.h20 static inline struct intel_gt *guc_to_gt(struct intel_guc *guc) in guc_to_gt() argument
22 return container_of(guc, struct intel_gt, uc.guc); in guc_to_gt()
Dintel_gt_irq.c15 static void guc_irq_handler(struct intel_guc *guc, u16 iir) in guc_irq_handler() argument
18 intel_guc_to_host_event_handler(guc); in guc_irq_handler()
77 return guc_irq_handler(&gt->uc.guc, iir); in gen11_other_irq_handler()
340 guc_irq_handler(&gt->uc.guc, gt_iir[2] >> 16); in gen8_gt_irq_handler()
Dintel_reset.c1047 if (!engine->gt->uc.guc.execbuf_client) in intel_engine_reset()
1050 ret = intel_guc_reset_engine(&engine->gt->uc.guc, engine); in intel_engine_reset()
1054 engine->gt->uc.guc.execbuf_client ? "GuC " : "", in intel_engine_reset()
/Linux-v5.4/drivers/gpu/drm/i915/selftests/
Di915_live_selftests.h35 selftest(guc, intel_guc_live_selftest)

12