Home
last modified time | relevance | path

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

/Linux-v4.19/drivers/gpu/drm/i915/
Dintel_guc.c30 static void guc_init_ggtt_pin_bias(struct intel_guc *guc);
32 static void gen8_guc_raise_irq(struct intel_guc *guc) in gen8_guc_raise_irq() argument
34 struct drm_i915_private *dev_priv = guc_to_i915(guc); in gen8_guc_raise_irq()
39 static inline i915_reg_t guc_send_reg(struct intel_guc *guc, u32 i) in guc_send_reg() argument
41 GEM_BUG_ON(!guc->send_regs.base); in guc_send_reg()
42 GEM_BUG_ON(!guc->send_regs.count); in guc_send_reg()
43 GEM_BUG_ON(i >= guc->send_regs.count); in guc_send_reg()
45 return _MMIO(guc->send_regs.base + 4 * i); in guc_send_reg()
48 void intel_guc_init_send_regs(struct intel_guc *guc) in intel_guc_init_send_regs() argument
50 struct drm_i915_private *dev_priv = guc_to_i915(guc); in intel_guc_init_send_regs()
[all …]
Dintel_guc.h91 int (*send)(struct intel_guc *guc, const u32 *data, u32 len,
95 void (*handler)(struct intel_guc *guc);
98 void (*notify)(struct intel_guc *guc);
102 inline int intel_guc_send(struct intel_guc *guc, const u32 *action, u32 len) in intel_guc_send() argument
104 return guc->send(guc, action, len, NULL, 0); in intel_guc_send()
108 intel_guc_send_and_receive(struct intel_guc *guc, const u32 *action, u32 len, in intel_guc_send_and_receive() argument
111 return guc->send(guc, action, len, response_buf, response_buf_size); in intel_guc_send_and_receive()
114 static inline void intel_guc_notify(struct intel_guc *guc) in intel_guc_notify() argument
116 guc->notify(guc); in intel_guc_notify()
119 static inline void intel_guc_to_host_event_handler(struct intel_guc *guc) in intel_guc_to_host_event_handler() argument
[all …]
Dintel_uc.c30 static void guc_free_load_err_log(struct intel_guc *guc);
55 struct intel_uc_fw *guc_fw = &i915->guc.fw; in __get_platform_enable_guc()
106 struct intel_uc_fw *guc_fw = &i915->guc.fw; in sanitize_options_early()
167 struct intel_guc *guc = &i915->guc; in intel_uc_init_early() local
170 intel_guc_init_early(guc); in intel_uc_init_early()
178 struct intel_guc *guc = &i915->guc; in intel_uc_cleanup_early() local
180 guc_free_load_err_log(guc); in intel_uc_cleanup_early()
192 intel_guc_init_send_regs(&i915->guc); in intel_uc_init_mmio()
195 static void guc_capture_load_err_log(struct intel_guc *guc) in guc_capture_load_err_log() argument
197 if (!guc->log.vma || !intel_guc_log_get_level(&guc->log)) in guc_capture_load_err_log()
[all …]
Dintel_guc_submission.c115 id = find_next_zero_bit(client->guc->doorbell_bitmap, end, offset); in reserve_doorbell()
119 __set_bit(id, client->guc->doorbell_bitmap); in reserve_doorbell()
132 return test_bit(client->doorbell_id, client->guc->doorbell_bitmap); in has_doorbell()
139 __clear_bit(client->doorbell_id, client->guc->doorbell_bitmap); in unreserve_doorbell()
147 static int __guc_allocate_doorbell(struct intel_guc *guc, u32 stage_id) in __guc_allocate_doorbell() argument
154 return intel_guc_send(guc, action, ARRAY_SIZE(action)); in __guc_allocate_doorbell()
157 static int __guc_deallocate_doorbell(struct intel_guc *guc, u32 stage_id) in __guc_deallocate_doorbell() argument
164 return intel_guc_send(guc, action, ARRAY_SIZE(action)); in __guc_deallocate_doorbell()
169 struct guc_stage_desc *base = client->guc->stage_desc_pool_vaddr; in __get_stage_desc()
206 struct drm_i915_private *dev_priv = guc_to_i915(client->guc); in __destroy_doorbell()
[all …]
Dintel_guc_fw.c56 struct intel_guc *guc = container_of(guc_fw, struct intel_guc, fw); in guc_fw_select() local
57 struct drm_i915_private *dev_priv = guc_to_i915(guc); in guc_fw_select()
92 void intel_guc_fw_init_early(struct intel_guc *guc) in intel_guc_fw_init_early() argument
94 struct intel_uc_fw *guc_fw = &guc->fw; in intel_guc_fw_init_early()
100 static void guc_prepare_xfer(struct intel_guc *guc) in guc_prepare_xfer() argument
102 struct drm_i915_private *dev_priv = guc_to_i915(guc); in guc_prepare_xfer()
128 static int guc_xfer_rsa(struct intel_guc *guc, struct i915_vma *vma) in guc_xfer_rsa() argument
130 struct drm_i915_private *dev_priv = guc_to_i915(guc); in guc_xfer_rsa()
131 struct intel_uc_fw *guc_fw = &guc->fw; in guc_xfer_rsa()
153 static int guc_xfer_ucode(struct intel_guc *guc, struct i915_vma *vma) in guc_xfer_ucode() argument
[all …]
Dintel_guc_submission.h59 struct intel_guc *guc; member
76 int intel_guc_submission_init(struct intel_guc *guc);
77 int intel_guc_submission_enable(struct intel_guc *guc);
78 void intel_guc_submission_disable(struct intel_guc *guc);
79 void intel_guc_submission_fini(struct intel_guc *guc);
80 int intel_guc_preempt_work_create(struct intel_guc *guc);
81 void intel_guc_preempt_work_destroy(struct intel_guc *guc);
Dintel_guc_ct.c104 static int guc_action_register_ct_buffer(struct intel_guc *guc, in guc_action_register_ct_buffer() argument
117 err = intel_guc_send_mmio(guc, action, ARRAY_SIZE(action), NULL, 0); in guc_action_register_ct_buffer()
124 static int guc_action_deregister_ct_buffer(struct intel_guc *guc, in guc_action_deregister_ct_buffer() argument
136 err = intel_guc_send_mmio(guc, action, ARRAY_SIZE(action), NULL, 0); in guc_action_deregister_ct_buffer()
148 static int ctch_init(struct intel_guc *guc, in ctch_init() argument
181 vma = intel_guc_allocate_vma(guc, PAGE_SIZE); in ctch_init()
195 intel_guc_ggtt_offset(guc, ctch->vma)); in ctch_init()
214 static void ctch_fini(struct intel_guc *guc, in ctch_fini() argument
223 static int ctch_open(struct intel_guc *guc, in ctch_open() argument
234 err = ctch_init(guc, ctch); in ctch_open()
[all …]
Dintel_guc_log.c41 static int guc_action_flush_log_complete(struct intel_guc *guc) in guc_action_flush_log_complete() argument
47 return intel_guc_send(guc, action, ARRAY_SIZE(action)); in guc_action_flush_log_complete()
50 static int guc_action_flush_log(struct intel_guc *guc) in guc_action_flush_log() argument
57 return intel_guc_send(guc, action, ARRAY_SIZE(action)); in guc_action_flush_log()
60 static int guc_action_control_log(struct intel_guc *guc, bool enable, in guc_action_control_log() argument
72 return intel_guc_send(guc, action, ARRAY_SIZE(action)); in guc_action_control_log()
343 struct intel_guc *guc = log_to_guc(log); in guc_log_map() local
344 struct drm_i915_private *dev_priv = guc_to_i915(guc); in guc_log_map()
391 struct intel_guc *guc = log_to_guc(log); in guc_log_relay_create() local
392 struct drm_i915_private *dev_priv = guc_to_i915(guc); in guc_log_relay_create()
[all …]
Dintel_guc_ads.c75 int intel_guc_ads_create(struct intel_guc *guc) in intel_guc_ads_create() argument
77 struct drm_i915_private *dev_priv = guc_to_i915(guc); in intel_guc_ads_create()
93 GEM_BUG_ON(guc->ads_vma); in intel_guc_ads_create()
95 vma = intel_guc_allocate_vma(guc, PAGE_ALIGN(sizeof(*blob))); in intel_guc_ads_create()
99 guc->ads_vma = vma; in intel_guc_ads_create()
127 intel_guc_ggtt_offset(guc, kernel_ctx_vma) + skipped_offset; in intel_guc_ads_create()
139 base = intel_guc_ggtt_offset(guc, vma); in intel_guc_ads_create()
149 void intel_guc_ads_destroy(struct intel_guc *guc) in intel_guc_ads_destroy() argument
151 i915_vma_unpin_and_release(&guc->ads_vma); in intel_guc_ads_destroy()
Dintel_huc.c57 struct intel_guc *guc = &i915->guc; in intel_huc_auth() local
66 PIN_OFFSET_BIAS | guc->ggtt_pin_bias); in intel_huc_auth()
73 ret = intel_guc_auth_huc(guc, in intel_huc_auth()
74 intel_guc_ggtt_offset(guc, vma) + in intel_huc_auth()
Dintel_wopcm.c158 u32 guc_fw_size = intel_uc_fw_get_upload_size(&i915->guc.fw); in intel_wopcm_init()
207 wopcm->guc.base = guc_wopcm_base; in intel_wopcm_init()
208 wopcm->guc.size = guc_wopcm_size; in intel_wopcm_init()
249 GEM_BUG_ON(!wopcm->guc.size); in intel_wopcm_init_hw()
250 GEM_BUG_ON(!wopcm->guc.base); in intel_wopcm_init_hw()
252 err = write_and_verify(dev_priv, GUC_WOPCM_SIZE, wopcm->guc.size, in intel_wopcm_init_hw()
261 wopcm->guc.base | huc_agent, mask, in intel_wopcm_init_hw()
Dintel_guc_fw.h30 void intel_guc_fw_init_early(struct intel_guc *guc);
31 int intel_guc_fw_upload(struct intel_guc *guc);
Dintel_guc_ads.h30 int intel_guc_ads_create(struct intel_guc *guc);
31 void intel_guc_ads_destroy(struct intel_guc *guc);
Dintel_uc_fw.c125 uc_fw->major_ver_found = css->guc.sw_version >> 16; in intel_uc_fw_fetch()
126 uc_fw->minor_ver_found = css->guc.sw_version & 0xFFFF; in intel_uc_fw_fetch()
225 ggtt_pin_bias = to_i915(uc_fw->obj->base.dev)->guc.ggtt_pin_bias; in intel_uc_fw_upload()
Dintel_wopcm.h24 } guc; member
Di915_debugfs.c2321 intel_uc_fw_dump(&dev_priv->guc.fw, &p); in i915_guc_load_status_info()
2363 struct intel_guc_log *log = &dev_priv->guc.log; in i915_guc_log_info()
2409 const struct intel_guc *guc = &dev_priv->guc; in i915_guc_info() local
2419 GEM_BUG_ON(!guc->execbuf_client); in i915_guc_info()
2422 seq_printf(m, "\t%*pb\n", GUC_NUM_DOORBELLS, guc->doorbell_bitmap); in i915_guc_info()
2423 seq_printf(m, "Doorbell next cacheline: 0x%x\n", guc->db_cacheline); in i915_guc_info()
2425 seq_printf(m, "\nGuC execbuf client @ %p:\n", guc->execbuf_client); in i915_guc_info()
2426 i915_guc_client_info(m, dev_priv, guc->execbuf_client); in i915_guc_info()
2427 if (guc->preempt_client) { in i915_guc_info()
2429 guc->preempt_client); in i915_guc_info()
[all …]
Dintel_huc_fw.c121 offset = intel_guc_ggtt_offset(&dev_priv->guc, vma) + in huc_fw_xfer()
Dintel_guc_fwif.h210 } guc; member
Di915_drv.h1602 struct intel_guc guc; member
2141 static inline struct drm_i915_private *guc_to_i915(struct intel_guc *guc) in guc_to_i915() argument
2143 return container_of(guc, struct drm_i915_private, guc); in guc_to_i915()
2722 extern int intel_guc_reset_engine(struct intel_guc *guc,
Di915_drv.c2047 if (!engine->i915->guc.execbuf_client) in i915_reset_engine()
2050 ret = intel_guc_reset_engine(&engine->i915->guc, engine); in i915_reset_engine()
2054 engine->i915->guc.execbuf_client ? "GuC " : "", in i915_reset_engine()
Di915_gpu_error.c1610 error_uc->guc_fw = i915->guc.fw; in capture_uc_state()
1617 error_uc->guc_fw.path = kstrdup(i915->guc.fw.path, GFP_ATOMIC); in capture_uc_state()
1619 error_uc->guc_log = i915_error_object_create(i915, i915->guc.log.vma); in capture_uc_state()
Di915_gem_context.c338 ctx->ggtt_offset_bias = dev_priv->guc.ggtt_pin_bias; in __create_hw_context()
Di915_irq.c550 if (!dev_priv->guc.interrupts_enabled) { in gen9_enable_guc_interrupts()
553 dev_priv->guc.interrupts_enabled = true; in gen9_enable_guc_interrupts()
564 dev_priv->guc.interrupts_enabled = false; in gen9_disable_guc_interrupts()
1861 intel_guc_to_host_event_handler(&dev_priv->guc); in gen9_guc_irq_handler()
/Linux-v4.19/drivers/gpu/drm/i915/selftests/
Dintel_guc.c32 static bool available_dbs(struct intel_guc *guc, u32 priority) in available_dbs() argument
46 id = find_next_zero_bit(guc->doorbell_bitmap, end, offset); in available_dbs()
53 static int check_all_doorbells(struct intel_guc *guc) in check_all_doorbells() argument
59 if (!doorbell_ok(guc, db_id)) { in check_all_doorbells()
75 struct drm_i915_private *dev_priv = guc_to_i915(client->guc); in validate_client()
90 return !client || doorbell_ok(client->guc, client->doorbell_id); in client_doorbell_in_sync()
106 struct intel_guc *guc; in igt_guc_clients() local
112 guc = &dev_priv->guc; in igt_guc_clients()
113 if (!guc) { in igt_guc_clients()
119 err = check_all_doorbells(guc); in igt_guc_clients()
[all …]
Di915_live_selftests.h25 selftest(guc, intel_guc_live_selftest)