| /Linux-v5.4/drivers/gpu/drm/i915/gt/uc/ |
| D | intel_guc.c | 12 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 …]
|
| D | intel_guc.h | 37 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 …]
|
| D | intel_uc.c | 88 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 …]
|
| D | selftest_guc.c | 14 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 …]
|
| D | intel_guc_submission.c | 106 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 …]
|
| D | intel_guc_ads.c | 68 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 …]
|
| D | intel_guc_submission.h | 42 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);
|
| D | intel_guc_fw.c | 22 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()
|
| D | intel_guc_ct.c | 86 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 …]
|
| D | intel_guc_log.c | 24 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 …]
|
| D | intel_uc.h | 14 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()
|
| D | intel_huc.c | 32 struct intel_guc *guc = >->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 = >->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()
|
| D | intel_guc_ads.h | 11 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);
|
| D | intel_guc_fw.h | 11 void intel_guc_fw_init_early(struct intel_guc *guc); 12 int intel_guc_fw_upload(struct intel_guc *guc);
|
| D | intel_guc_ct.h | 89 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/ |
| D | intel_wopcm.c | 225 u32 guc_fw_size = intel_uc_fw_get_upload_size(>->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()
|
| D | intel_wopcm.h | 24 } guc; member 39 return wopcm->guc.base; in intel_wopcm_guc_base() 54 return wopcm->guc.size; in intel_wopcm_guc_size()
|
| D | i915_irq.h | 109 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);
|
| D | i915_irq.c | 418 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 …]
|
| D | i915_debugfs.c | 1817 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 …]
|
| D | i915_gpu_error.c | 1478 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/ |
| D | intel_gt.h | 20 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()
|
| D | intel_gt_irq.c | 15 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(>->uc.guc, iir); in gen11_other_irq_handler() 340 guc_irq_handler(>->uc.guc, gt_iir[2] >> 16); in gen8_gt_irq_handler()
|
| D | intel_reset.c | 1047 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/ |
| D | i915_live_selftests.h | 35 selftest(guc, intel_guc_live_selftest)
|