| /linux/drivers/gpu/drm/xe/ |
| H A D | xe_lrc.c | 56 * lrc->bo: 75 * +============================+=================================+ <- xe_bo_size(lrc->bo) 79 lrc_to_xe(struct xe_lrc *lrc) in lrc_to_xe() 81 return gt_to_xe(lrc->fence_ctx.gt); 704 static inline bool xe_lrc_has_indirect_ring_state(struct xe_lrc *lrc) 706 return lrc->flags & XE_LRC_FLAG_INDIRECT_RING_STATE; in xe_lrc_pphwsp_offset() 709 static inline u32 __xe_lrc_ring_offset(struct xe_lrc *lrc) 714 u32 xe_lrc_pphwsp_offset(struct xe_lrc *lrc) 716 return lrc->ring.size; 730 u32 xe_lrc_regs_offset(struct xe_lrc *lrc) 77 lrc_to_xe(struct xe_lrc * lrc) lrc_to_xe() argument 695 xe_lrc_has_indirect_ring_state(struct xe_lrc * lrc) xe_lrc_has_indirect_ring_state() argument 700 __xe_lrc_ring_offset(struct xe_lrc * lrc) __xe_lrc_ring_offset() argument 705 xe_lrc_pphwsp_offset(struct xe_lrc * lrc) xe_lrc_pphwsp_offset() argument 720 xe_lrc_regs_offset(struct xe_lrc * lrc) xe_lrc_regs_offset() argument 744 __xe_lrc_seqno_offset(struct xe_lrc * lrc) __xe_lrc_seqno_offset() argument 750 __xe_lrc_start_seqno_offset(struct xe_lrc * lrc) __xe_lrc_start_seqno_offset() argument 756 __xe_lrc_ctx_job_timestamp_offset(struct xe_lrc * lrc) __xe_lrc_ctx_job_timestamp_offset() argument 762 __xe_lrc_parallel_offset(struct xe_lrc * lrc) __xe_lrc_parallel_offset() argument 768 __xe_lrc_engine_id_offset(struct xe_lrc * lrc) __xe_lrc_engine_id_offset() argument 773 __xe_lrc_ctx_timestamp_offset(struct xe_lrc * lrc) __xe_lrc_ctx_timestamp_offset() argument 778 __xe_lrc_ctx_timestamp_udw_offset(struct xe_lrc * lrc) __xe_lrc_ctx_timestamp_udw_offset() argument 783 __xe_lrc_indirect_ring_offset(struct xe_lrc * lrc) __xe_lrc_indirect_ring_offset() argument 794 __xe_lrc_indirect_ctx_offset(struct xe_lrc * lrc) __xe_lrc_indirect_ctx_offset() argument 799 __xe_lrc_wa_bb_offset(struct xe_lrc * lrc) __xe_lrc_wa_bb_offset() argument 849 xe_lrc_ctx_timestamp_udw_ggtt_addr(struct xe_lrc * lrc) xe_lrc_ctx_timestamp_udw_ggtt_addr() argument 860 xe_lrc_ctx_timestamp(struct xe_lrc * lrc) xe_lrc_ctx_timestamp() argument 883 xe_lrc_ctx_job_timestamp_ggtt_addr(struct xe_lrc * lrc) xe_lrc_ctx_job_timestamp_ggtt_addr() argument 894 xe_lrc_ctx_job_timestamp(struct xe_lrc * lrc) xe_lrc_ctx_job_timestamp() argument 903 xe_lrc_ggtt_addr(struct xe_lrc * lrc) xe_lrc_ggtt_addr() argument 908 xe_lrc_indirect_ring_ggtt_addr(struct xe_lrc * lrc) xe_lrc_indirect_ring_ggtt_addr() argument 916 xe_lrc_read_indirect_ctx_reg(struct xe_lrc * lrc,int reg_nr) xe_lrc_read_indirect_ctx_reg() argument 926 xe_lrc_write_indirect_ctx_reg(struct xe_lrc * lrc,int reg_nr,u32 val) xe_lrc_write_indirect_ctx_reg() argument 937 xe_lrc_read_ctx_reg(struct xe_lrc * lrc,int reg_nr) xe_lrc_read_ctx_reg() argument 947 xe_lrc_write_ctx_reg(struct xe_lrc * lrc,int reg_nr,u32 val) xe_lrc_write_ctx_reg() argument 1006 xe_lrc_update_memirq_regs_with_address(struct xe_lrc * lrc,struct xe_hw_engine * hwe,u32 * regs) xe_lrc_update_memirq_regs_with_address() argument 1023 xe_lrc_set_ppgtt(struct xe_lrc * lrc,struct xe_vm * vm) xe_lrc_set_ppgtt() argument 1031 xe_lrc_finish(struct xe_lrc * lrc) xe_lrc_finish() argument 1064 setup_utilization_wa(struct xe_lrc * lrc,struct xe_hw_engine * hwe,u32 * batch,size_t max_len) setup_utilization_wa() argument 1097 setup_timestamp_wa(struct xe_lrc * lrc,struct xe_hw_engine * hwe,u32 * batch,size_t max_len) setup_timestamp_wa() argument 1134 setup_configfs_post_ctx_restore_bb(struct xe_lrc * lrc,struct xe_hw_engine * hwe,u32 * batch,size_t max_len) setup_configfs_post_ctx_restore_bb() argument 1163 setup_configfs_mid_ctx_restore_bb(struct xe_lrc * lrc,struct xe_hw_engine * hwe,u32 * batch,size_t max_len) setup_configfs_mid_ctx_restore_bb() argument 1192 setup_invalidate_state_cache_wa(struct xe_lrc * lrc,struct xe_hw_engine * hwe,u32 * batch,size_t max_len) setup_invalidate_state_cache_wa() argument 1219 struct xe_lrc *lrc; global() member 1286 xe_lrc_setup_wa_bb_with_scratch(struct xe_lrc * lrc,struct xe_hw_engine * hwe,u32 * scratch) xe_lrc_setup_wa_bb_with_scratch() argument 1321 setup_wa_bb(struct xe_lrc * lrc,struct xe_hw_engine * hwe) setup_wa_bb() argument 1340 setup_indirect_ctx(struct xe_lrc * lrc,struct xe_hw_engine * hwe) setup_indirect_ctx() argument 1410 xe_multi_queue_prio_to_lrc(struct xe_lrc * lrc,enum xe_multi_queue_priority priority) xe_multi_queue_prio_to_lrc() argument 1428 xe_lrc_set_multi_queue_priority(struct xe_lrc * lrc,enum xe_multi_queue_priority priority) xe_lrc_set_multi_queue_priority() argument 1434 xe_lrc_init(struct xe_lrc * lrc,struct xe_hw_engine * hwe,struct xe_vm * vm,void * replay_state,u32 ring_size,u16 msix_vec,u32 init_flags) xe_lrc_init() argument 1616 struct xe_lrc *lrc; xe_lrc_create() local 1641 struct xe_lrc *lrc = container_of(ref, struct xe_lrc, refcount); xe_lrc_destroy() local 1651 xe_lrc_update_hwctx_regs_with_address(struct xe_lrc * lrc) xe_lrc_update_hwctx_regs_with_address() argument 1664 xe_lrc_set_ring_tail(struct xe_lrc * lrc,u32 tail) xe_lrc_set_ring_tail() argument 1672 xe_lrc_ring_tail(struct xe_lrc * lrc) xe_lrc_ring_tail() argument 1680 xe_lrc_ring_start(struct xe_lrc * lrc) xe_lrc_ring_start() argument 1688 xe_lrc_set_ring_head(struct xe_lrc * lrc,u32 head) xe_lrc_set_ring_head() argument 1696 xe_lrc_ring_head(struct xe_lrc * lrc) xe_lrc_ring_head() argument 1704 xe_lrc_ring_space(struct xe_lrc * lrc) xe_lrc_ring_space() argument 1713 __xe_lrc_write_ring(struct xe_lrc * lrc,struct iosys_map ring,const void * data,size_t size) __xe_lrc_write_ring() argument 1723 xe_lrc_write_ring(struct xe_lrc * lrc,const void * data,size_t size) xe_lrc_write_ring() argument 1751 xe_lrc_descriptor(struct xe_lrc * lrc) xe_lrc_descriptor() argument 1756 xe_lrc_seqno_ggtt_addr(struct xe_lrc * lrc) xe_lrc_seqno_ggtt_addr() argument 1795 xe_lrc_init_seqno_fence(struct xe_lrc * lrc,struct dma_fence * fence) xe_lrc_init_seqno_fence() argument 1800 xe_lrc_seqno(struct xe_lrc * lrc) xe_lrc_seqno() argument 1807 xe_lrc_start_seqno(struct xe_lrc * lrc) xe_lrc_start_seqno() argument 1814 xe_lrc_start_seqno_ggtt_addr(struct xe_lrc * lrc) xe_lrc_start_seqno_ggtt_addr() argument 1819 xe_lrc_parallel_ggtt_addr(struct xe_lrc * lrc) xe_lrc_parallel_ggtt_addr() argument 1824 xe_lrc_parallel_map(struct xe_lrc * lrc) xe_lrc_parallel_map() argument 1835 xe_lrc_engine_id(struct xe_lrc * lrc) xe_lrc_engine_id() argument 2270 xe_lrc_snapshot_capture(struct xe_lrc * lrc) xe_lrc_snapshot_capture() argument 2386 get_ctx_timestamp(struct xe_lrc * lrc,u32 engine_id,u64 * reg_ctx_ts) get_ctx_timestamp() argument 2421 xe_lrc_timestamp(struct xe_lrc * lrc) xe_lrc_timestamp() argument 2463 xe_lrc_update_timestamp(struct xe_lrc * lrc,u64 * old_ts) xe_lrc_update_timestamp() argument 2481 xe_lrc_ring_is_idle(struct xe_lrc * lrc) xe_lrc_ring_is_idle() argument [all...] |
| H A D | xe_lrc.h | 60 * @lrc: Logical Ring Context 62 * Increment reference count of @lrc 64 static inline struct xe_lrc *xe_lrc_get(struct xe_lrc *lrc) in xe_lrc_get() 66 kref_get(&lrc->refcount); in xe_lrc_get() 67 return lrc; in xe_lrc_get() 72 * @lrc: Logical Ring Context 74 * Decrement reference count of @lrc, call xe_lrc_destroy when 77 static inline void xe_lrc_put(struct xe_lrc *lrc) in xe_lrc_put() 79 if (lrc) in xe_lrc_put() 80 kref_put(&lrc in xe_lrc_put() 63 xe_lrc_get(struct xe_lrc * lrc) xe_lrc_get() argument 76 xe_lrc_put(struct xe_lrc * lrc) xe_lrc_put() argument [all...] |
| H A D | xe_trace_lrc.h | 19 #define __dev_name_lrc(lrc) dev_name(gt_to_xe((lrc)->fence_ctx.gt)->drm.dev) argument 22 TP_PROTO(struct xe_lrc *lrc, uint64_t old), 23 TP_ARGS(lrc, old), 25 __field(struct xe_lrc *, lrc) 28 __string(name, lrc->fence_ctx.name) 29 __string(device_id, __dev_name_lrc(lrc)) 33 __entry->lrc = lrc; 35 __entry->new = lrc->ctx_timestamp; 40 __entry->lrc, __get_str(name),
|
| H A D | xe_ring_ops.c | 269 static int emit_copy_timestamp(struct xe_device *xe, struct xe_lrc *lrc, in __emit_job_gen12_simple() 274 dw[i++] = xe_lrc_ctx_job_timestamp_ggtt_addr(lrc); in __emit_job_gen12_simple() 285 dw[i++] = xe_lrc_ctx_timestamp_ggtt_addr(lrc); in __emit_job_gen12_simple() 292 static int emit_fake_watchdog(struct xe_lrc *lrc, u32 *dw, int i) in __emit_job_gen12_simple() 307 dw[i++] = lower_32_bits(xe_lrc_ggtt_addr(lrc)); in has_aux_ccs() 308 dw[i++] = upper_32_bits(xe_lrc_ggtt_addr(lrc)); in has_aux_ccs() 319 static void __emit_job_gen12_simple(struct xe_sched_job *job, struct xe_lrc *lrc, in __emit_job_gen12_video() 326 *head = lrc->ring.tail; in __emit_job_gen12_video() 329 i = emit_fake_watchdog(lrc, dw, i); in __emit_job_gen12_video() 331 i = emit_copy_timestamp(gt_to_xe(gt), lrc, d in __emit_job_gen12_video() 236 emit_copy_timestamp(struct xe_device * xe,struct xe_lrc * lrc,u32 * dw,int i) emit_copy_timestamp() argument 260 __emit_job_gen12_simple(struct xe_sched_job * job,struct xe_lrc * lrc,u64 batch_addr,u32 * head,u32 seqno) __emit_job_gen12_simple() argument 316 __emit_job_gen12_video(struct xe_sched_job * job,struct xe_lrc * lrc,u64 batch_addr,u32 * head,u32 seqno) __emit_job_gen12_video() argument 371 __emit_job_gen12_render_compute(struct xe_sched_job * job,struct xe_lrc * lrc,u64 batch_addr,u32 * head,u32 seqno) __emit_job_gen12_render_compute() argument 426 emit_migration_job_gen12(struct xe_sched_job * job,struct xe_lrc * lrc,u32 * head,u32 seqno) emit_migration_job_gen12() argument [all...] |
| H A D | xe_execlist.c | 43 static void __start_lrc(struct xe_hw_engine *hwe, struct xe_lrc *lrc, in __start_lrc() argument 52 lrc_desc = xe_lrc_descriptor(lrc); in __start_lrc() 66 xe_lrc_write_ctx_reg(lrc, CTX_RING_TAIL, lrc->ring.tail); in __start_lrc() 67 lrc->ring.old_tail = lrc->ring.tail; in __start_lrc() 116 __start_lrc(port->hwe, exl->q->lrc[0], port->last_ctx_id); in __xe_execlist_port_start() 130 xe_lrc_write_ring(port->lrc, noop, sizeof(noop)); in __xe_execlist_port_idle() 131 __start_lrc(port->hwe, port->lrc, 0); in __xe_execlist_port_idle() 137 struct xe_lrc *lrc in xe_execlist_is_idle() local [all...] |
| H A D | xe_sriov_vf_ccs.c | 181 struct xe_lrc *lrc = xe_exec_queue_lrc(ctx->mig_q); in ccs_rw_update_ring() local 190 lrc->ring.tail = 0; in ccs_rw_update_ring() 191 xe_lrc_set_ring_head(lrc, 0); in ccs_rw_update_ring() 200 xe_lrc_write_ring(lrc, dw, i * sizeof(u32)); in ccs_rw_update_ring() 201 xe_lrc_set_ring_tail(lrc, lrc->ring.tail); in ccs_rw_update_ring() 311 struct xe_lrc *lrc = xe_exec_queue_lrc(ctx->mig_q); in xe_sriov_vf_ccs_fini() local 317 xe_lrc_set_ring_tail(lrc, xe_lrc_ring_head(lrc)); in xe_sriov_vf_ccs_fini() 392 struct xe_lrc *lrc = xe_exec_queue_lrc(ctx->mig_q); in xe_sriov_vf_ccs_rw_update_bb_addr() local 396 xe_map_wr(xe, &lrc->bo->vmap, XE_SRIOV_VF_CCS_RW_BB_ADDR_OFFSET, u32, addr); in xe_sriov_vf_ccs_rw_update_bb_addr()
|
| H A D | xe_exec_queue.c | 116 struct xe_lrc *lrc; in xe_exec_queue_group_cleanup() local 132 xa_for_each(&group->xa, idx, lrc) in xe_exec_queue_group_cleanup() 133 xe_lrc_put(lrc); in xe_exec_queue_group_cleanup() 213 q = kzalloc_flex(*q, lrc, width); in __xe_exec_queue_alloc() 274 static void xe_exec_queue_set_lrc(struct xe_exec_queue *q, struct xe_lrc *lrc, u16 idx) in __xe_exec_queue_fini() 279 q->lrc[idx] = lrc; in __xe_exec_queue_init() 295 struct xe_lrc *lrc; in __xe_exec_queue_init() 300 lrc = q->lrc[id in __xe_exec_queue_init() 316 struct xe_lrc *lrc; __xe_exec_queue_init() local 786 struct xe_lrc *lrc; xe_exec_queue_group_delete() local 1355 struct xe_lrc *lrc; xe_exec_queue_update_run_ticks() local 1657 struct xe_lrc *lrc; xe_exec_queue_contexts_hwsp_rebase() local [all...] |
| H A D | xe_guc_submit.c | 802 u32, lower_32_bits(xe_lrc_descriptor(q->lrc[0]))); in __register_exec_queue_group() 852 xe_lrc_set_multi_queue_priority(q->lrc[0], priority); in __register_mlrc_exec_queue() 936 struct xe_lrc *lrc = q->lrc[i]; in register_exec_queue() 938 action[len++] = lower_32_bits(xe_lrc_descriptor(lrc)); in register_exec_queue() 939 action[len++] = upper_32_bits(xe_lrc_descriptor(lrc)); in register_exec_queue() 990 struct xe_lrc *lrc = q->lrc[0]; in relaxed_ms_sleep() 1000 info.hwlrca_lo = lower_32_bits(xe_lrc_descriptor(lrc)); in relaxed_ms_sleep() 1001 info.hwlrca_hi = upper_32_bits(xe_lrc_descriptor(lrc)); 867 struct xe_lrc *lrc = q->lrc[i]; __register_mlrc_exec_queue() local 921 struct xe_lrc *lrc = q->lrc[0]; register_exec_queue() local 1077 struct xe_lrc *lrc = q->lrc[j]; wq_item_append() local 1100 struct xe_lrc *lrc = q->lrc[0]; submit_exec_queue() local 1809 struct xe_lrc *lrc = q->lrc[0]; sched_context() local 1834 struct xe_lrc *lrc = q->lrc[0]; __guc_exec_queue_process_msg_resume() local 2426 lrc_parallel_clear(struct xe_lrc * lrc) lrc_parallel_clear() argument 2459 struct xe_lrc *lrc = READ_ONCE(q->lrc[0]); guc_exec_queue_pause() local 3188 struct xe_lrc *lrc = q->lrc[i]; xe_guc_exec_queue_snapshot_capture() local [all...] |
| H A D | xe_execlist_types.h | 31 struct xe_lrc *lrc; member
|
| H A D | xe_exec_queue_types.h | 263 * @lrc_lookup_lock: Lock for protecting lrc array access. Only used when 267 /** @lrc: logical ring context for this exec queue */ 268 struct xe_lrc *lrc[] __counted_by(width);
|
| H A D | xe_wa.c | 893 xe_rtp_process_ctx_enable_active_tracking(&ctx, hwe->gt->wa_active.lrc, 947 gt->wa_active.lrc = p; in xe_wa_process_gt() 987 for_each_set_bit(idx, gt->wa_active.lrc, ARRAY_SIZE(lrc_was))
|
| H A D | xe_gt.c | 442 &q->lrc[0]->bo->vmap, in xe_gt_record_default_lrcs() 443 xe_lrc_pphwsp_offset(q->lrc[0]), in xe_gt_record_default_lrcs()
|
| H A D | xe_migrate.c | 1112 return migrate->q->lrc[0]; in xe_migrate_ccs_rw_copy()
|
| /linux/drivers/nfc/fdp/ |
| H A D | i2c.c | 66 u8 lrc = 0; in fdp_nci_i2c_add_len_lrc() local 76 lrc ^= skb->data[i]; in fdp_nci_i2c_add_len_lrc() 78 skb_put_u8(skb, lrc); in fdp_nci_i2c_add_len_lrc() 132 u8 tmp[FDP_NCI_I2C_MAX_PAYLOAD], lrc, k; in fdp_nci_i2c_read() local 151 for (lrc = i = 0; i < r; i++) in fdp_nci_i2c_read() 152 lrc ^= tmp[i]; in fdp_nci_i2c_read() 159 if (lrc) { in fdp_nci_i2c_read()
|
| /linux/drivers/gpu/drm/i915/gt/ |
| H A D | intel_execlists_submission.c | 406 rq->context->lrc.desc |= CTX_DESC_FORCE_RESTORE; in __unwind_incomplete_requests() 463 ce->lrc.lrca = lrc_update_regs(ce, engine, head); in reset_active() 492 ce->lrc.ccid = ce->tag; in __execlists_schedule_in() 499 ce->lrc.ccid = tag << (XEHP_SW_CTX_ID_SHIFT - 32); in __execlists_schedule_in() 509 ce->lrc.ccid = (1 + tag) << (GEN11_SW_CTX_ID_SHIFT - 32); in __execlists_schedule_in() 514 ce->lrc.ccid |= engine->execlists.ccid; in __execlists_schedule_in() 522 CE_TRACE(ce, "schedule-in, ccid:%x\n", ce->lrc.ccid); in __execlists_schedule_in() 598 CE_TRACE(ce, "schedule-out, ccid:%x\n", ce->lrc.ccid); in __execlists_schedule_out() 612 ccid = ce->lrc.ccid; in __execlists_schedule_out() 678 desc = ce->lrc in execlists_update_context() [all...] |
| H A D | intel_engine_cs.c | 2183 rq->context->lrc.ccid, in intel_engine_print_registers() 2197 rq->context->lrc.ccid, in intel_engine_print_registers()
|
| /linux/drivers/gpu/drm/i915/gt/uc/ |
| H A D | intel_guc_capture.c | 1555 (n->lrca & CTX_GTT_ADDRESS_MASK) == (ce->lrc.lrca & CTX_GTT_ADDRESS_MASK)) in intel_guc_capture_is_matching_engine() 1587 (n->lrca & CTX_GTT_ADDRESS_MASK) == (ce->lrc.lrca & CTX_GTT_ADDRESS_MASK)) { in intel_guc_capture_get_matching_node() 1597 ce->guc_id.id, ce->lrc.lrca); in intel_guc_capture_get_matching_node()
|
| H A D | intel_guc_submission.c | 154 * We reserve 1/16 of the guc_ids for multi-lrc as these need to be contiguous 156 * (bitmap vs. ida) between multi-lrc and single-lrc hence the reason to 157 * partition the guc_id space. We believe the number of multi-lrc contexts in 159 * multi-lrc. 410 * When using multi-lrc submission a scratch memory area is reserved in the 730 * gets enabled in the unblock. For multi-lrc we still submit the in __guc_add_request() 757 * Without multi-lrc KMD does the submission step (moving the in __guc_add_request() 758 * lrc tail) so enabling scheduling is sufficient to submit the in __guc_add_request() 759 * context. This isn't the case in multi-lrc submissio in __guc_add_request() [all...] |
| /linux/drivers/scsi/ibmvscsi_tgt/ |
| H A D | ibmvscsi_tgt.c | 3923 long lrc; in ibmvscsis_enable_tpg() local 3928 lrc = ibmvscsis_enable_change_state(vscsi); in ibmvscsis_enable_tpg() 3929 if (lrc) in ibmvscsis_enable_tpg() 3931 lrc, vscsi->state); in ibmvscsis_enable_tpg()
|
| /linux/drivers/scsi/ |
| H A D | FlashPoint.c | 7482 unsigned char lrc; in FPT_CalcLrc() local 7483 lrc = 0; in FPT_CalcLrc() 7485 lrc ^= buffer[i]; in FPT_CalcLrc() 7486 return lrc; in FPT_CalcLrc()
|
| /linux/drivers/gpu/drm/i915/ |
| H A D | i915_perf.c | 1575 stream->specific_ctx_id = ce->lrc.lrca >> 12; in oa_get_render_ctx_id()
|