• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/sys/dev/liquidio/base/

Lines Matching refs:oct

51 void	*lio_get_dispatch_arg(struct octeon_device *oct,
111 struct octeon_device *oct = droq->oct_dev;
115 pkt_count = lio_read_csr32(oct, droq->pkts_sent_reg);
159 lio_droq_destroy_ring_buffers(struct octeon_device *oct,
175 lio_droq_setup_ring_buffers(struct octeon_device *oct,
186 lio_dev_err(oct, "%s buffer alloc failed\n",
196 lio_map_ring(oct->device, droq->recv_buf_list[i].buffer,
208 lio_delete_droq(struct octeon_device *oct, uint32_t q_no)
210 struct lio_droq *droq = oct->droq[q_no];
212 lio_dev_dbg(oct, "%s[%d]\n", __func__, q_no);
220 lio_droq_destroy_ring_buffers(oct, droq);
227 oct->io_qmask.oq &= ~(1ULL << q_no);
228 bzero(oct->droq[q_no], sizeof(struct lio_droq));
229 oct->num_oqs--;
238 struct octeon_device *oct = droq->oct_dev;
239 struct lio_instr_queue *iq = oct->instr_queue[droq->q_no];
242 reschedule = lio_droq_process_packets(oct, droq, oct->rx_budget);
245 tx_done = lio_flush_iq(oct, iq, oct->tx_budget);
254 lio_init_droq(struct octeon_device *oct, uint32_t q_no,
262 lio_dev_dbg(oct, "%s[%d]\n", __func__, q_no);
264 droq = oct->droq[q_no];
267 droq->oct_dev = oct;
276 if (LIO_CN23XX_PF(oct)) {
277 struct lio_config *conf23 = LIO_CHIP_CONF(oct, cn23xx_pf);
293 lio_dev_err(oct, "Output queue %d ring alloc failed\n", q_no);
297 lio_dev_dbg(oct, "droq[%d]: desc_ring: virt: 0x%p, dma: %llx\n", q_no,
299 lio_dev_dbg(oct, "droq[%d]: num_desc: %d\n", q_no, droq->max_count);
306 lio_dev_err(oct, "Output queue recv buf list alloc failed\n");
310 if (lio_droq_setup_ring_buffers(oct, droq))
316 lio_dev_dbg(oct, "DROQ INIT: max_empty_descs: %d\n",
323 oct->fn_list.setup_oq_regs(oct, q_no);
325 oct->io_qmask.oq |= BIT_ULL(q_no);
331 lio_dev_dbg(oct, "Initializing droq%d taskqueue\n", q_no);
338 &oct->ioq_vector[q_no].affinity_mask,
339 "lio%d_droq%d_task", oct->octeon_id,
345 lio_delete_droq(oct, q_no);
525 lio_droq_dispatch_pkt(struct octeon_device *oct, struct lio_droq *droq,
534 disp_fn = lio_get_dispatch(oct, (uint16_t)rh->r.opcode,
537 rinfo = lio_create_recv_info(oct, droq, cnt, droq->read_idx);
550 lio_dev_err(oct, "DROQ: No dispatch function (opcode %u/%u)\n",
560 lio_droq_drop_packets(struct octeon_device *oct, struct lio_droq *droq,
578 lio_dev_err(oct, "DROQ: In drop: pkt with len 0\n");
589 lio_droq_fast_process_packets(struct octeon_device *oct, struct lio_droq *droq,
608 lio_dev_err(oct,
628 buf_cnt = lio_droq_dispatch_pkt(oct, droq, rh, info);
694 int desc_refilled = lio_droq_refill(oct, droq);
702 lio_write_csr32(oct, droq->pkts_credit_reg,
716 lio_droq_drop_packets(oct, droq, (pkts_to_process - pkt));
726 lio_droq_process_packets(struct octeon_device *oct, struct lio_droq *droq,
745 pkts_processed = lio_droq_fast_process_packets(oct, droq, pkt_count);
756 rdisp->disp_fn(rdisp->rinfo, lio_get_dispatch_arg(oct,
769 lio_register_droq_ops(struct octeon_device *oct, uint32_t q_no,
775 lio_cfg = lio_get_conf(oct);
781 lio_dev_err(oct, "%s: droq_ops pointer is NULL\n", __func__);
786 lio_dev_err(oct, "%s: droq id (%d) exceeds MAX (%d)\n",
787 __func__, q_no, (oct->num_oqs - 1));
790 droq = oct->droq[q_no];
802 lio_unregister_droq_ops(struct octeon_device *oct, uint32_t q_no)
807 lio_cfg = lio_get_conf(oct);
813 lio_dev_err(oct, "%s: droq id (%d) exceeds MAX (%d)\n",
814 __func__, q_no, oct->num_oqs - 1);
818 droq = oct->droq[q_no];
821 lio_dev_info(oct, "Droq id (%d) not available.\n", q_no);
837 lio_create_droq(struct octeon_device *oct, uint32_t q_no, uint32_t num_descs,
841 if (oct->droq[q_no]->oct_dev != NULL) {
842 lio_dev_dbg(oct, "Droq already in use. Cannot create droq %d again\n",
848 if (lio_init_droq(oct, q_no, num_descs, desc_size, app_ctx)) {
849 bzero(oct->droq[q_no], sizeof(struct lio_droq));
853 oct->num_oqs++;
855 lio_dev_dbg(oct, "%s: Total number of OQ: %d\n", __func__,
856 oct->num_oqs);