Lines Matching refs:flq
80 csio_wr_ring_fldb(struct csio_hw *hw, struct csio_q *flq) in csio_wr_ring_fldb() argument
87 if (flq->inc_idx >= 8) { in csio_wr_ring_fldb()
88 csio_wr_reg32(hw, DBPRIO_F | QID_V(flq->un.fl.flid) | in csio_wr_ring_fldb()
89 PIDX_T5_V(flq->inc_idx / 8) | DBTYPE_F, in csio_wr_ring_fldb()
91 flq->inc_idx &= 7; in csio_wr_ring_fldb()
115 csio_wr_fill_fl(struct csio_hw *hw, struct csio_q *flq) in csio_wr_fill_fl() argument
119 __be64 *d = (__be64 *)(flq->vstart); in csio_wr_fill_fl()
120 struct csio_dma_buf *buf = &flq->un.fl.bufs[0]; in csio_wr_fill_fl()
122 int sreg = flq->un.fl.sreg; in csio_wr_fill_fl()
123 int n = flq->credits; in csio_wr_fill_fl()
151 csio_wr_update_fl(struct csio_hw *hw, struct csio_q *flq, uint16_t n) in csio_wr_update_fl() argument
154 flq->inc_idx += n; in csio_wr_update_fl()
155 flq->pidx += n; in csio_wr_update_fl()
156 if (unlikely(flq->pidx >= flq->credits)) in csio_wr_update_fl()
157 flq->pidx -= (uint16_t)flq->credits; in csio_wr_update_fl()
159 CSIO_INC_STATS(flq, n_flq_refill); in csio_wr_update_fl()
191 struct csio_q *q, *flq; in csio_wr_alloc_q() local
280 flq = wrm->q_arr[q->un.iq.flq_idx]; in csio_wr_alloc_q()
281 flq->un.fl.bufs = kcalloc(flq->credits, in csio_wr_alloc_q()
284 if (!flq->un.fl.bufs) { in csio_wr_alloc_q()
291 flq->un.fl.packen = 0; in csio_wr_alloc_q()
292 flq->un.fl.offset = 0; in csio_wr_alloc_q()
293 flq->un.fl.sreg = sreg; in csio_wr_alloc_q()
296 if (csio_wr_fill_fl(hw, flq)) in csio_wr_alloc_q()
304 flq->pidx = flq->inc_idx = flq->credits - 8; in csio_wr_alloc_q()
386 struct csio_q *flq = hw->wrm.q_arr[flq_idx]; in csio_wr_iq_create_rsp() local
394 csio_wr_ring_fldb(hw, flq); in csio_wr_iq_create_rsp()
486 struct csio_q *flq = hw->wrm.q_arr[flq_idx]; in csio_wr_iq_create() local
489 iqp.fl0packen = flq->un.fl.packen ? 1 : 0; in csio_wr_iq_create()
1022 csio_wr_inval_flq_buf(struct csio_hw *hw, struct csio_q *flq) in csio_wr_inval_flq_buf() argument
1024 flq->cidx++; in csio_wr_inval_flq_buf()
1025 if (flq->cidx == flq->credits) { in csio_wr_inval_flq_buf()
1026 flq->cidx = 0; in csio_wr_inval_flq_buf()
1027 CSIO_INC_STATS(flq, n_qwrap); in csio_wr_inval_flq_buf()
1054 struct csio_q *flq = hw->wrm.q_arr[q->un.iq.flq_idx]; in csio_wr_process_fl() local
1056 CSIO_DB_ASSERT(flq != NULL); in csio_wr_process_fl()
1061 if (flq->un.fl.offset > 0) { in csio_wr_process_fl()
1062 csio_wr_inval_flq_buf(hw, flq); in csio_wr_process_fl()
1063 flq->un.fl.offset = 0; in csio_wr_process_fl()
1074 buf = &flq->un.fl.bufs[flq->cidx]; in csio_wr_process_fl()
1080 flb.offset = flq->un.fl.offset; in csio_wr_process_fl()
1087 csio_wr_inval_flq_buf(hw, flq); in csio_wr_process_fl()
1090 flb.defer_free = flq->un.fl.packen ? 0 : 1; in csio_wr_process_fl()
1095 if (flq->un.fl.packen) in csio_wr_process_fl()
1096 flq->un.fl.offset += ALIGN(lastlen, sge->csio_fl_align); in csio_wr_process_fl()
1098 csio_wr_inval_flq_buf(hw, flq); in csio_wr_process_fl()
1139 struct csio_q *flq = csio_iq_has_fl(q) ? in csio_wr_process_iq() local
1236 if (flq) { in csio_wr_process_iq()
1237 uint32_t avail = csio_wr_avail_qcredits(flq); in csio_wr_process_iq()
1243 csio_wr_update_fl(hw, flq, (flq->credits - 8) - avail); in csio_wr_process_iq()
1244 csio_wr_ring_fldb(hw, flq); in csio_wr_process_iq()