Searched refs:flq (Results 1 - 2 of 2) sorted by relevance
/linux-4.4.14/drivers/scsi/csiostor/ |
H A D | csio_wr.c | 79 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 D | csio_wr.h | 375 * indexed using flq->cidx/pidx
|
Completed in 87 milliseconds