/linux/drivers/gpu/drm/xe/ |
H A D | xe_lrc.c | 60 lrc_to_xe(struct xe_lrc *lrc) in lrc_to_xe() 62 return gt_to_xe(lrc->fence_ctx.gt); in xe_gt_lrc_size() 640 static inline bool xe_lrc_has_indirect_ring_state(struct xe_lrc *lrc) in xe_lrc_has_indirect_ring_state() 642 return lrc->flags & XE_LRC_FLAG_INDIRECT_RING_STATE; in __xe_lrc_ring_offset() argument 645 static inline u32 __xe_lrc_ring_offset(struct xe_lrc *lrc) in __xe_lrc_ring_offset() 650 u32 xe_lrc_pphwsp_offset(struct xe_lrc *lrc) in xe_lrc_pphwsp_offset() 652 return lrc->ring.size; 665 u32 xe_lrc_regs_offset(struct xe_lrc *lrc) in xe_lrc_regs_offset() 667 return xe_lrc_pphwsp_offset(lrc) + LRC_PPHWSP_SIZE; in lrc_reg_size() 683 static inline u32 __xe_lrc_seqno_offset(struct xe_lrc *lrc) in __xe_lrc_seqno_offset() 57 lrc_to_xe(struct xe_lrc * lrc) lrc_to_xe() argument 637 xe_lrc_has_indirect_ring_state(struct xe_lrc * lrc) xe_lrc_has_indirect_ring_state() argument 647 xe_lrc_pphwsp_offset(struct xe_lrc * lrc) xe_lrc_pphwsp_offset() argument 662 xe_lrc_regs_offset(struct xe_lrc * lrc) xe_lrc_regs_offset() argument 680 __xe_lrc_seqno_offset(struct xe_lrc * lrc) __xe_lrc_seqno_offset() argument 686 __xe_lrc_start_seqno_offset(struct xe_lrc * lrc) __xe_lrc_start_seqno_offset() argument 692 __xe_lrc_ctx_job_timestamp_offset(struct xe_lrc * lrc) __xe_lrc_ctx_job_timestamp_offset() argument 698 __xe_lrc_parallel_offset(struct xe_lrc * lrc) __xe_lrc_parallel_offset() argument 704 __xe_lrc_ctx_timestamp_offset(struct xe_lrc * lrc) __xe_lrc_ctx_timestamp_offset() argument 709 __xe_lrc_indirect_ring_offset(struct xe_lrc * lrc) __xe_lrc_indirect_ring_offset() argument 758 xe_lrc_ctx_timestamp(struct xe_lrc * lrc) xe_lrc_ctx_timestamp() argument 773 xe_lrc_ctx_job_timestamp_ggtt_addr(struct xe_lrc * lrc) xe_lrc_ctx_job_timestamp_ggtt_addr() argument 784 xe_lrc_ctx_job_timestamp(struct xe_lrc * lrc) xe_lrc_ctx_job_timestamp() argument 793 xe_lrc_ggtt_addr(struct xe_lrc * lrc) xe_lrc_ggtt_addr() argument 798 xe_lrc_indirect_ring_ggtt_addr(struct xe_lrc * lrc) xe_lrc_indirect_ring_ggtt_addr() argument 806 xe_lrc_read_indirect_ctx_reg(struct xe_lrc * lrc,int reg_nr) xe_lrc_read_indirect_ctx_reg() argument 816 xe_lrc_write_indirect_ctx_reg(struct xe_lrc * lrc,int reg_nr,u32 val) xe_lrc_write_indirect_ctx_reg() argument 827 xe_lrc_read_ctx_reg(struct xe_lrc * lrc,int reg_nr) xe_lrc_read_ctx_reg() argument 837 xe_lrc_write_ctx_reg(struct xe_lrc * lrc,int reg_nr,u32 val) xe_lrc_write_ctx_reg() argument 872 xe_lrc_set_ppgtt(struct xe_lrc * lrc,struct xe_vm * vm) xe_lrc_set_ppgtt() argument 880 xe_lrc_finish(struct xe_lrc * lrc) xe_lrc_finish() argument 892 xe_lrc_init(struct xe_lrc * lrc,struct xe_hw_engine * hwe,struct xe_vm * vm,u32 ring_size) xe_lrc_init() argument 1031 struct xe_lrc *lrc; xe_lrc_create() local 1056 struct xe_lrc *lrc = container_of(ref, struct xe_lrc, refcount); xe_lrc_destroy() local 1062 xe_lrc_set_ring_tail(struct xe_lrc * lrc,u32 tail) xe_lrc_set_ring_tail() argument 1070 xe_lrc_ring_tail(struct xe_lrc * lrc) xe_lrc_ring_tail() argument 1078 xe_lrc_set_ring_head(struct xe_lrc * lrc,u32 head) xe_lrc_set_ring_head() argument 1086 xe_lrc_ring_head(struct xe_lrc * lrc) xe_lrc_ring_head() argument 1094 xe_lrc_ring_space(struct xe_lrc * lrc) xe_lrc_ring_space() argument 1103 __xe_lrc_write_ring(struct xe_lrc * lrc,struct iosys_map ring,const void * data,size_t size) __xe_lrc_write_ring() argument 1113 xe_lrc_write_ring(struct xe_lrc * lrc,const void * data,size_t size) xe_lrc_write_ring() argument 1141 xe_lrc_descriptor(struct xe_lrc * lrc) xe_lrc_descriptor() argument 1146 xe_lrc_seqno_ggtt_addr(struct xe_lrc * lrc) xe_lrc_seqno_ggtt_addr() argument 1185 xe_lrc_init_seqno_fence(struct xe_lrc * lrc,struct dma_fence * fence) xe_lrc_init_seqno_fence() argument 1190 xe_lrc_seqno(struct xe_lrc * lrc) xe_lrc_seqno() argument 1197 xe_lrc_start_seqno(struct xe_lrc * lrc) xe_lrc_start_seqno() argument 1204 xe_lrc_start_seqno_ggtt_addr(struct xe_lrc * lrc) xe_lrc_start_seqno_ggtt_addr() argument 1209 xe_lrc_parallel_ggtt_addr(struct xe_lrc * lrc) xe_lrc_parallel_ggtt_addr() argument 1214 xe_lrc_parallel_map(struct xe_lrc * lrc) xe_lrc_parallel_map() argument 1630 xe_lrc_snapshot_capture(struct xe_lrc * lrc) xe_lrc_snapshot_capture() argument 1758 xe_lrc_update_timestamp(struct xe_lrc * lrc,u32 * old_ts) xe_lrc_update_timestamp() argument [all...] |
H A D | xe_lrc.h | 35 static inline struct xe_lrc *xe_lrc_get(struct xe_lrc *lrc) in xe_lrc_get() argument 37 kref_get(&lrc->refcount); in xe_lrc_get() 38 return lrc; in xe_lrc_get() 48 static inline void xe_lrc_put(struct xe_lrc *lrc) in xe_lrc_put() argument 50 kref_put(&lrc->refcount, xe_lrc_destroy); in xe_lrc_put() 54 u32 xe_lrc_pphwsp_offset(struct xe_lrc *lrc); 55 u32 xe_lrc_regs_offset(struct xe_lrc *lrc); 57 void xe_lrc_set_ring_tail(struct xe_lrc *lrc, u32 tail); 58 u32 xe_lrc_ring_tail(struct xe_lrc *lrc); 59 void xe_lrc_set_ring_head(struct xe_lrc *lrc, u32 head); [all …]
|
H A D | xe_ring_ops.c | 227 static int emit_copy_timestamp(struct xe_lrc *lrc, u32 *dw, int i) in emit_copy_timestamp() argument 231 dw[i++] = xe_lrc_ctx_job_timestamp_ggtt_addr(lrc); in emit_copy_timestamp() 233 dw[i++] = xe_lrc_ctx_timestamp_ggtt_addr(lrc); in emit_copy_timestamp() 241 static void __emit_job_gen12_simple(struct xe_sched_job *job, struct xe_lrc *lrc, in __emit_job_gen12_simple() argument 248 i = emit_copy_timestamp(lrc, dw, i); in __emit_job_gen12_simple() 252 i = emit_flush_imm_ggtt(xe_lrc_start_seqno_ggtt_addr(lrc), in __emit_job_gen12_simple() 256 i = emit_store_imm_ggtt(xe_lrc_start_seqno_ggtt_addr(lrc), in __emit_job_gen12_simple() 269 i = emit_flush_imm_ggtt(xe_lrc_seqno_ggtt_addr(lrc), seqno, false, dw, i); in __emit_job_gen12_simple() 275 xe_lrc_write_ring(lrc, dw, i * sizeof(*dw)); in __emit_job_gen12_simple() 292 static void __emit_job_gen12_video(struct xe_sched_job *job, struct xe_lrc *lrc, in __emit_job_gen12_video() 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 50 lrc_desc = xe_lrc_descriptor(lrc); in __start_lrc() 64 xe_lrc_write_ctx_reg(lrc, CTX_RING_TAIL, lrc->ring.tail); in __start_lrc() 65 lrc->ring.old_tail = lrc->ring.tail; in __start_lrc() 112 __start_lrc(port->hwe, exl->q->lrc[0], port->last_ctx_id); in __xe_execlist_port_start() 126 xe_lrc_write_ring(port->lrc, noop, sizeof(noop)); in __xe_execlist_port_idle() 127 __start_lrc(port->hwe, port->lrc, 0); in __xe_execlist_port_idle() 133 struct xe_lrc *lrc in xe_execlist_is_idle() local [all...] |
H A D | xe_exec_queue.c | 61 q = kzalloc(struct_size(q, lrc, width), GFP_KERNEL); in __xe_exec_queue_alloc() 120 q->lrc[i] = xe_lrc_create(q->hwe, q->vm, SZ_16K); in __xe_exec_queue_init() 121 if (IS_ERR(q->lrc[i])) { in __xe_exec_queue_init() 122 err = PTR_ERR(q->lrc[i]); in __xe_exec_queue_init() 141 xe_lrc_put(q->lrc[i]); in __xe_exec_queue_init() 264 xe_lrc_put(q->lrc[i]); in exec_queue_set_priority() 700 return q->lrc[0]->fence_ctx.next_seqno - xe_lrc_seqno(q->lrc[0]) - 1; 711 struct xe_lrc *lrc = q->lrc[ in xe_exec_queue_is_lr() 726 struct xe_lrc *lrc = q->lrc[0]; xe_exec_queue_ring_full() local 775 struct xe_lrc *lrc; xe_exec_queue_update_run_ticks() local [all...] |
H A D | xe_guc_submit.c | 524 struct xe_lrc *lrc = q->lrc[i]; in __register_mlrc_exec_queue() local 526 action[len++] = lower_32_bits(xe_lrc_descriptor(lrc)); in __register_mlrc_exec_queue() 527 action[len++] = upper_32_bits(xe_lrc_descriptor(lrc)); in __register_mlrc_exec_queue() 561 struct xe_lrc *lrc = q->lrc[0]; in register_exec_queue() local 570 info.hwlrca_lo = lower_32_bits(xe_lrc_descriptor(lrc)); in register_exec_queue() 571 info.hwlrca_hi = upper_32_bits(xe_lrc_descriptor(lrc)); in register_exec_queue() 575 u64 ggtt_addr = xe_lrc_parallel_ggtt_addr(lrc); in register_exec_queue() 576 struct iosys_map map = xe_lrc_parallel_map(lrc); in register_exec_queue() 689 struct xe_lrc *lrc = q->lrc[j]; wq_item_append() local 713 struct xe_lrc *lrc = q->lrc[0]; submit_exec_queue() local 2076 struct xe_lrc *lrc = q->lrc[i]; xe_guc_exec_queue_snapshot_capture() local [all...] |
H A D | xe_sched_job.c | 219 struct xe_lrc *lrc = job->q->lrc[0]; in xe_sched_job_started() 222 xe_lrc_start_seqno(lrc), in xe_sched_job_started() 228 struct xe_lrc *lrc = job->q->lrc[0]; in xe_sched_job_completed() 236 xe_lrc_seqno(lrc), in xe_sched_job_completed() 268 xe_lrc_init_seqno_fence(q->lrc[i], fence); in xe_sched_job_arm() 220 struct xe_lrc *lrc = job->q->lrc[0]; xe_sched_job_started() local 229 struct xe_lrc *lrc = job->q->lrc[0]; xe_sched_job_completed() local
|
H A D | xe_oa.c | 642 static void xe_oa_store_flex(struct xe_oa_stream *stream, struct xe_lrc *lrc, in xe_oa_store_flex() argument 645 u32 offset = xe_bo_ggtt_addr(lrc->bo); in xe_oa_store_flex() 656 static int xe_oa_modify_ctx_image(struct xe_oa_stream *stream, struct xe_lrc *lrc, in xe_oa_modify_ctx_image() argument 668 xe_oa_store_flex(stream, lrc, bb, flex, count); in xe_oa_modify_ctx_image() 698 struct xe_lrc *lrc = stream->exec_q->lrc[0]; in xe_oa_configure_oar_context() local 699 u32 regs_offset = xe_lrc_regs_offset(lrc) / sizeof(u32); in xe_oa_configure_oar_context() 720 err = xe_oa_modify_ctx_image(stream, stream->exec_q->lrc[0], in xe_oa_configure_oar_context() 732 struct xe_lrc *lrc = stream->exec_q->lrc[ in xe_oa_configure_oac_context() local 1304 struct xe_lrc *lrc = stream->exec_q->lrc[0]; xe_oa_context_image_offset() local [all...] |
H A D | xe_guc_submit_types.h | 101 struct xe_lrc_snapshot **lrc; member
|
H A D | xe_exec_queue_types.h | 145 /** @lrc: logical ring context for this exec queue */ 146 struct xe_lrc *lrc[]; 144 struct xe_lrc *lrc[]; global() member
|
H A D | xe_gt_types.h | 402 /** @wa_active.lrc: bitmap with active LRC workarounds */ 403 unsigned long *lrc; 372 unsigned long *lrc; global() member
|
H A D | xe_wa.c | 816 xe_rtp_process_ctx_enable_active_tracking(&ctx, hwe->gt->wa_active.lrc, 847 gt->wa_active.lrc = p; in xe_wa_init() 867 for_each_set_bit(idx, gt->wa_active.lrc, ARRAY_SIZE(lrc_was)) in xe_wa_dump()
|
H A D | xe_gt.c | 351 &q->lrc[0]->bo->vmap, in xe_gt_record_default_lrcs() 352 xe_lrc_pphwsp_offset(q->lrc[0]), in xe_gt_record_default_lrcs()
|
/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 | selftest_lrc.c | 160 u32 *lrc; in live_lrc_layout() local 168 lrc = (u32 *)__get_free_page(GFP_KERNEL); /* requires page alignment */ in live_lrc_layout() 169 if (!lrc) in live_lrc_layout() 171 GEM_BUG_ON(offset_in_page(lrc)); in live_lrc_layout() 188 __lrc_init_regs(memset(lrc, POISON_INUSE, PAGE_SIZE), in live_lrc_layout() 201 if (lrc[dw] == 0) { in live_lrc_layout() 215 if (lrc[dw] != lri) { in live_lrc_layout() 217 engine->name, dw, lri, lrc[dw]); in live_lrc_layout() 241 if ((offset ^ lrc[dw]) & lri_mask) { in live_lrc_layout() 243 engine->name, dw, offset, lrc[dw]); in live_lrc_layout() [all …]
|
H A D | intel_execlists_submission.c | 400 rq->context->lrc.desc |= CTX_DESC_FORCE_RESTORE; in __unwind_incomplete_requests() 466 ce->lrc.lrca = lrc_update_regs(ce, engine, head); in reset_active() 495 ce->lrc.ccid = ce->tag; in __execlists_schedule_in() 502 ce->lrc.ccid = tag << (XEHP_SW_CTX_ID_SHIFT - 32); in __execlists_schedule_in() 512 ce->lrc.ccid = (1 + tag) << (GEN11_SW_CTX_ID_SHIFT - 32); in __execlists_schedule_in() 517 ce->lrc.ccid |= engine->execlists.ccid; in __execlists_schedule_in() 525 CE_TRACE(ce, "schedule-in, ccid:%x\n", ce->lrc.ccid); in __execlists_schedule_in() 601 CE_TRACE(ce, "schedule-out, ccid:%x\n", ce->lrc.ccid); in __execlists_schedule_out() 615 ccid = ce->lrc.ccid; in __execlists_schedule_out() 681 desc = ce->lrc.desc; in execlists_update_context() [all …]
|
H A D | intel_context_types.h | 149 } lrc; member
|
H A D | intel_lrc.c | 1185 ce->lrc.lrca = lrc_update_regs(ce, ce->engine, ce->ring->tail); in lrc_reset() 1216 ce->lrc.lrca = lrc_update_regs(ce, engine, ce->ring->tail); in lrc_pin()
|
H A D | intel_engine_cs.c | 2185 rq->context->lrc.ccid, in intel_engine_print_registers() 2199 rq->context->lrc.ccid, in intel_engine_print_registers()
|
/linux/drivers/media/usb/dvb-usb/ |
H A D | technisat-usb2.c | 410 u8 lrc = 0; in technisat_usb2_calc_lrc() local 412 lrc ^= *b++; in technisat_usb2_calc_lrc() 413 return lrc; in technisat_usb2_calc_lrc()
|
/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 | 3924 long lrc; 3929 lrc = ibmvscsis_enable_change_state(vscsi); in ibmvscsis_enable_tpg() 3930 if (lrc) in ibmvscsis_enable_tpg() 3932 lrc, vscsi->state); in ibmvscsis_enable_tpg() 3931 long lrc; ibmvscsis_enable_tpg() local
|
/linux/drivers/gpu/drm/i915/gvt/ |
H A D | scheduler.c | 348 u64 desc = ce->lrc.desc; in shadow_context_descriptor_update() 358 ce->lrc.desc = desc; in shadow_context_descriptor_update()
|
/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()
|