Lines Matching refs:srq

425 static inline u32 t4_srq_avail(struct t4_srq *srq)
427 return srq->size - 1 - srq->in_use;
430 static inline void t4_srq_produce(struct t4_srq *srq, u8 len16)
432 srq->in_use++;
433 if (++srq->pidx == srq->size)
434 srq->pidx = 0;
435 srq->wq_pidx += DIV_ROUND_UP(len16 * 16, T4_EQ_ENTRY_SIZE);
436 if (srq->wq_pidx >= srq->size * T4_RQ_NUM_SLOTS)
437 srq->wq_pidx %= srq->size * T4_RQ_NUM_SLOTS;
438 srq->queue[srq->size].status.host_pidx = srq->pidx;
441 static inline void t4_srq_produce_pending_wr(struct t4_srq *srq)
443 srq->pending_in_use++;
444 srq->in_use++;
445 if (++srq->pending_pidx == srq->size)
446 srq->pending_pidx = 0;
449 static inline void t4_srq_consume_pending_wr(struct t4_srq *srq)
451 srq->pending_in_use--;
452 srq->in_use--;
453 if (++srq->pending_cidx == srq->size)
454 srq->pending_cidx = 0;
457 static inline void t4_srq_produce_ooo(struct t4_srq *srq)
459 srq->in_use--;
460 srq->ooo_count++;
463 static inline void t4_srq_consume_ooo(struct t4_srq *srq)
465 srq->cidx++;
466 if (srq->cidx == srq->size)
467 srq->cidx = 0;
468 srq->queue[srq->size].status.host_cidx = srq->cidx;
469 srq->ooo_count--;
472 static inline void t4_srq_consume(struct t4_srq *srq)
474 srq->in_use--;
475 if (++srq->cidx == srq->size)
476 srq->cidx = 0;
477 srq->queue[srq->size].status.host_cidx = srq->cidx;
582 static inline void t4_ring_srq_db(struct t4_srq *srq, u16 inc, u8 len16,
587 if (inc == 1 && srq->bar2_qid == 0 && wqe) {
588 pr_debug("%s : WC srq->pidx = %d; len16=%d\n",
589 __func__, srq->pidx, len16);
590 pio_copy(srq->bar2_va + SGE_UDB_WCDOORBELL, (u64 *)wqe);
592 pr_debug("%s: DB srq->pidx = %d; len16=%d\n",
593 __func__, srq->pidx, len16);
594 writel(PIDX_T5_V(inc) | QID_V(srq->bar2_qid),
595 srq->bar2_va + SGE_UDB_KDOORBELL);