Searched refs:flq (Results 1 - 2 of 2) sorted by relevance

/linux-4.4.14/drivers/scsi/csiostor/
H A Dcsio_wr.c79 csio_wr_ring_fldb(struct csio_hw *hw, struct csio_q *flq) csio_wr_ring_fldb() argument
86 if (flq->inc_idx >= 8) { csio_wr_ring_fldb()
87 csio_wr_reg32(hw, DBPRIO_F | QID_V(flq->un.fl.flid) | csio_wr_ring_fldb()
88 PIDX_T5_V(flq->inc_idx / 8) | DBTYPE_F, csio_wr_ring_fldb()
90 flq->inc_idx &= 7; csio_wr_ring_fldb()
107 * @flq: Freelist queue.
114 csio_wr_fill_fl(struct csio_hw *hw, struct csio_q *flq) csio_wr_fill_fl() argument
118 __be64 *d = (__be64 *)(flq->vstart); csio_wr_fill_fl()
119 struct csio_dma_buf *buf = &flq->un.fl.bufs[0]; csio_wr_fill_fl()
121 int sreg = flq->un.fl.sreg; csio_wr_fill_fl()
122 int n = flq->credits; csio_wr_fill_fl()
145 * @flq: Freelist queue.
150 csio_wr_update_fl(struct csio_hw *hw, struct csio_q *flq, uint16_t n) csio_wr_update_fl() argument
153 flq->inc_idx += n; csio_wr_update_fl()
154 flq->pidx += n; csio_wr_update_fl()
155 if (unlikely(flq->pidx >= flq->credits)) csio_wr_update_fl()
156 flq->pidx -= (uint16_t)flq->credits; csio_wr_update_fl()
158 CSIO_INC_STATS(flq, n_flq_refill); csio_wr_update_fl()
181 * idx in the ingress queue's flq.idx. This is how a Freelist is associated
190 struct csio_q *q, *flq; csio_wr_alloc_q() local
278 flq = wrm->q_arr[q->un.iq.flq_idx]; csio_wr_alloc_q()
279 flq->un.fl.bufs = kzalloc(flq->credits * csio_wr_alloc_q()
282 if (!flq->un.fl.bufs) { csio_wr_alloc_q()
289 flq->un.fl.packen = 0; csio_wr_alloc_q()
290 flq->un.fl.offset = 0; csio_wr_alloc_q()
291 flq->un.fl.sreg = sreg; csio_wr_alloc_q()
294 if (csio_wr_fill_fl(hw, flq)) csio_wr_alloc_q()
302 flq->pidx = flq->inc_idx = flq->credits - 8; csio_wr_alloc_q()
384 struct csio_q *flq = hw->wrm.q_arr[flq_idx]; csio_wr_iq_create_rsp() local
392 csio_wr_ring_fldb(hw, flq); csio_wr_iq_create_rsp()
483 struct csio_q *flq = hw->wrm.q_arr[flq_idx]; csio_wr_iq_create() local
486 iqp.fl0packen = flq->un.fl.packen ? 1 : 0; csio_wr_iq_create()
1007 * @flq: The freelist queue.
1016 csio_wr_inval_flq_buf(struct csio_hw *hw, struct csio_q *flq) csio_wr_inval_flq_buf() argument
1018 flq->cidx++; csio_wr_inval_flq_buf()
1019 if (flq->cidx == flq->credits) { csio_wr_inval_flq_buf()
1020 flq->cidx = 0; csio_wr_inval_flq_buf()
1021 CSIO_INC_STATS(flq, n_qwrap); csio_wr_inval_flq_buf()
1049 struct csio_q *flq = hw->wrm.q_arr[q->un.iq.flq_idx]; csio_wr_process_fl() local
1051 CSIO_DB_ASSERT(flq != NULL); csio_wr_process_fl()
1056 if (flq->un.fl.offset > 0) { csio_wr_process_fl()
1057 csio_wr_inval_flq_buf(hw, flq); csio_wr_process_fl()
1058 flq->un.fl.offset = 0; csio_wr_process_fl()
1069 buf = &flq->un.fl.bufs[flq->cidx]; csio_wr_process_fl()
1075 flb.offset = flq->un.fl.offset; csio_wr_process_fl()
1082 csio_wr_inval_flq_buf(hw, flq); csio_wr_process_fl()
1085 flb.defer_free = flq->un.fl.packen ? 0 : 1; csio_wr_process_fl()
1090 if (flq->un.fl.packen) csio_wr_process_fl()
1091 flq->un.fl.offset += ALIGN(lastlen, sge->csio_fl_align); csio_wr_process_fl()
1093 csio_wr_inval_flq_buf(hw, flq); csio_wr_process_fl()
1134 struct csio_q *flq = csio_iq_has_fl(q) ? csio_wr_process_iq() local
1231 if (flq) { csio_wr_process_iq()
1232 uint32_t avail = csio_wr_avail_qcredits(flq); csio_wr_process_iq()
1238 csio_wr_update_fl(hw, flq, (flq->credits - 8) - avail); csio_wr_process_iq()
1239 csio_wr_ring_fldb(hw, flq); csio_wr_process_iq()
H A Dcsio_wr.h375 * indexed using flq->cidx/pidx

Completed in 87 milliseconds