Lines Matching refs:sq
61 qp->sq.condition = false; in bnxt_qplib_cancel_phantom_processing()
62 qp->sq.send_phantom = false; in bnxt_qplib_cancel_phantom_processing()
63 qp->sq.single = false; in bnxt_qplib_cancel_phantom_processing()
74 if (!qp->sq.flushed) { in __bnxt_qplib_add_flush_qp()
79 qp->sq.flushed = true; in __bnxt_qplib_add_flush_qp()
124 if (qp->sq.flushed) { in __bnxt_qplib_del_flush_qp()
125 qp->sq.flushed = false; in __bnxt_qplib_del_flush_qp()
142 qp->sq.hwq.prod = 0; in bnxt_qplib_clean_qp()
143 qp->sq.hwq.cons = 0; in bnxt_qplib_clean_qp()
177 struct bnxt_qplib_q *sq = &qp->sq; in bnxt_qplib_free_qp_hdr_buf() local
185 sq->max_wqe * qp->sq_hdr_buf_size, in bnxt_qplib_free_qp_hdr_buf()
199 struct bnxt_qplib_q *sq = &qp->sq; in bnxt_qplib_alloc_qp_hdr_buf() local
202 if (qp->sq_hdr_buf_size && sq->max_wqe) { in bnxt_qplib_alloc_qp_hdr_buf()
204 sq->max_wqe * qp->sq_hdr_buf_size, in bnxt_qplib_alloc_qp_hdr_buf()
813 struct bnxt_qplib_q *sq = &qp->sq; in bnxt_qplib_create_qp1() local
833 hwq_attr.sginfo = &sq->sg_info; in bnxt_qplib_create_qp1()
835 hwq_attr.depth = bnxt_qplib_get_depth(sq); in bnxt_qplib_create_qp1()
837 rc = bnxt_qplib_alloc_init_hwq(&sq->hwq, &hwq_attr); in bnxt_qplib_create_qp1()
841 rc = bnxt_qplib_alloc_init_swq(sq); in bnxt_qplib_create_qp1()
845 req.sq_size = cpu_to_le32(bnxt_qplib_set_sq_size(sq, qp->wqe_mode)); in bnxt_qplib_create_qp1()
846 pbl = &sq->hwq.pbl[PBL_LVL_0]; in bnxt_qplib_create_qp1()
848 pg_sz_lvl = (bnxt_qplib_base_pg_size(&sq->hwq) << in bnxt_qplib_create_qp1()
850 pg_sz_lvl |= (sq->hwq.level & CMDQ_CREATE_QP1_SQ_LVL_MASK); in bnxt_qplib_create_qp1()
853 cpu_to_le16((sq->max_sge & CMDQ_CREATE_QP1_SQ_SGE_MASK) << in bnxt_qplib_create_qp1()
901 sq->dbinfo.hwq = &sq->hwq; in bnxt_qplib_create_qp1()
902 sq->dbinfo.xid = qp->id; in bnxt_qplib_create_qp1()
903 sq->dbinfo.db = qp->dpi->dbr; in bnxt_qplib_create_qp1()
904 sq->dbinfo.max_slot = bnxt_qplib_set_sq_max_slot(qp->wqe_mode); in bnxt_qplib_create_qp1()
924 kfree(sq->swq); in bnxt_qplib_create_qp1()
926 bnxt_qplib_free_hwq(res, &sq->hwq); in bnxt_qplib_create_qp1()
934 struct bnxt_qplib_q *sq; in bnxt_qplib_init_psn_ptr() local
938 sq = &qp->sq; in bnxt_qplib_init_psn_ptr()
939 hwq = &sq->hwq; in bnxt_qplib_init_psn_ptr()
954 struct bnxt_qplib_q *sq = &qp->sq; in bnxt_qplib_create_qp() local
982 hwq_attr.sginfo = &sq->sg_info; in bnxt_qplib_create_qp()
984 hwq_attr.depth = bnxt_qplib_get_depth(sq); in bnxt_qplib_create_qp()
986 hwq_attr.aux_depth = bnxt_qplib_set_sq_size(sq, qp->wqe_mode); in bnxt_qplib_create_qp()
988 rc = bnxt_qplib_alloc_init_hwq(&sq->hwq, &hwq_attr); in bnxt_qplib_create_qp()
992 rc = bnxt_qplib_alloc_init_swq(sq); in bnxt_qplib_create_qp()
999 req.sq_size = cpu_to_le32(bnxt_qplib_set_sq_size(sq, qp->wqe_mode)); in bnxt_qplib_create_qp()
1000 pbl = &sq->hwq.pbl[PBL_LVL_0]; in bnxt_qplib_create_qp()
1002 pg_sz_lvl = (bnxt_qplib_base_pg_size(&sq->hwq) << in bnxt_qplib_create_qp()
1004 pg_sz_lvl |= (sq->hwq.level & CMDQ_CREATE_QP_SQ_LVL_MASK); in bnxt_qplib_create_qp()
1007 cpu_to_le16(((sq->max_sge & CMDQ_CREATE_QP_SQ_SGE_MASK) << in bnxt_qplib_create_qp()
1110 sq->dbinfo.hwq = &sq->hwq; in bnxt_qplib_create_qp()
1111 sq->dbinfo.xid = qp->id; in bnxt_qplib_create_qp()
1112 sq->dbinfo.db = qp->dpi->dbr; in bnxt_qplib_create_qp()
1113 sq->dbinfo.max_slot = bnxt_qplib_set_sq_max_slot(qp->wqe_mode); in bnxt_qplib_create_qp()
1134 kfree(sq->swq); in bnxt_qplib_create_qp()
1136 bnxt_qplib_free_hwq(res, &sq->hwq); in bnxt_qplib_create_qp()
1308 req.sq_psn = cpu_to_le32(qp->sq.psn); in bnxt_qplib_modify_qp()
1318 req.sq_size = cpu_to_le32(qp->sq.hwq.max_elements); in bnxt_qplib_modify_qp()
1320 req.sq_sge = cpu_to_le16(qp->sq.max_sge); in bnxt_qplib_modify_qp()
1403 qp->sq.psn = le32_to_cpu(sb->sq_psn); in bnxt_qplib_query_qp()
1406 qp->sq.max_wqe = qp->sq.hwq.max_elements; in bnxt_qplib_query_qp()
1408 qp->sq.max_sge = le16_to_cpu(sb->sq_sge); in bnxt_qplib_query_qp()
1492 bnxt_qplib_free_hwq(res, &qp->sq.hwq); in bnxt_qplib_free_qp_res()
1493 kfree(qp->sq.swq); in bnxt_qplib_free_qp_res()
1508 struct bnxt_qplib_q *sq = &qp->sq; in bnxt_qplib_get_qp1_sq_buf() local
1514 sw_prod = sq->swq_start; in bnxt_qplib_get_qp1_sq_buf()
1598 hwq = &qp->sq.hwq; in bnxt_qplib_put_inline()
1668 *qdf = __xlate_qfd(qp->sq.q_full_delta, bytes); in bnxt_qplib_required_slots()
1676 static void bnxt_qplib_pull_psn_buff(struct bnxt_qplib_q *sq, in bnxt_qplib_pull_psn_buff() argument
1684 hwq = &sq->hwq; in bnxt_qplib_pull_psn_buff()
1687 tail = swq->slot_idx / sq->dbinfo.max_slot; in bnxt_qplib_pull_psn_buff()
1697 struct bnxt_qplib_q *sq = &qp->sq; in bnxt_qplib_post_send_db() local
1699 bnxt_qplib_ring_prod_db(&sq->dbinfo, DBC_DBC_TYPE_SQ); in bnxt_qplib_post_send_db()
1707 struct bnxt_qplib_q *sq = &qp->sq; in bnxt_qplib_post_send() local
1719 hwq = &sq->hwq; in bnxt_qplib_post_send()
1730 if (bnxt_qplib_queue_full(sq, slots + qdf)) { in bnxt_qplib_post_send()
1733 hwq->prod, hwq->cons, hwq->depth, sq->q_full_delta); in bnxt_qplib_post_send()
1738 swq = bnxt_qplib_get_swqe(sq, &wqe_idx); in bnxt_qplib_post_send()
1739 bnxt_qplib_pull_psn_buff(sq, swq); in bnxt_qplib_post_send()
1747 swq->start_psn = sq->psn & BTH_PSN_MASK; in bnxt_qplib_post_send()
1806 sq->psn = (sq->psn + 1) & BTH_PSN_MASK; in bnxt_qplib_post_send()
1817 sq->psn = (sq->psn + pkt_num) & BTH_PSN_MASK; in bnxt_qplib_post_send()
1839 sq->psn = (sq->psn + pkt_num) & BTH_PSN_MASK; in bnxt_qplib_post_send()
1858 sq->psn = (sq->psn + pkt_num) & BTH_PSN_MASK; in bnxt_qplib_post_send()
1924 swq->next_psn = sq->psn & BTH_PSN_MASK; in bnxt_qplib_post_send()
1927 bnxt_qplib_swq_mod_start(sq, wqe_idx); in bnxt_qplib_post_send()
2126 static int __flush_sq(struct bnxt_qplib_q *sq, struct bnxt_qplib_qp *qp, in __flush_sq() argument
2134 start = sq->swq_start; in __flush_sq()
2137 last = sq->swq_last; in __flush_sq()
2141 if (sq->swq[last].wr_id == BNXT_QPLIB_FENCE_WRID) { in __flush_sq()
2149 cqe->wr_id = sq->swq[last].wr_id; in __flush_sq()
2151 cqe->type = sq->swq[last].type; in __flush_sq()
2155 bnxt_qplib_hwq_incr_cons(&sq->hwq, sq->swq[last].slots); in __flush_sq()
2156 sq->swq_last = sq->swq[last].next_idx; in __flush_sq()
2159 if (!(*budget) && sq->swq_last != start) in __flush_sq()
2232 struct bnxt_qplib_q *sq = &qp->sq; in do_wa9060() local
2242 swq = &sq->swq[swq_last]; in do_wa9060()
2252 sq->condition = true; in do_wa9060()
2253 sq->send_phantom = true; in do_wa9060()
2260 if (sq->condition) { in do_wa9060()
2287 peek_sq = &peek_qp->sq; in do_wa9060()
2291 - 1) % sq->max_wqe); in do_wa9060()
2293 if (peek_sq == sq && in do_wa9060()
2294 sq->swq[peek_sq_cons_idx].wr_id == in do_wa9060()
2302 sq->condition = false; in do_wa9060()
2303 sq->single = true; in do_wa9060()
2334 struct bnxt_qplib_q *sq; in bnxt_qplib_cq_process_req() local
2345 sq = &qp->sq; in bnxt_qplib_cq_process_req()
2347 cqe_sq_cons = le16_to_cpu(hwcqe->sq_cons_idx) % sq->max_wqe; in bnxt_qplib_cq_process_req()
2348 if (qp->sq.flushed) { in bnxt_qplib_cq_process_req()
2359 if (sq->swq_last == cqe_sq_cons) in bnxt_qplib_cq_process_req()
2363 swq = &sq->swq[sq->swq_last]; in bnxt_qplib_cq_process_req()
2382 sq->swq_last, cqe->wr_id, cqe->status); in bnxt_qplib_cq_process_req()
2390 if (do_wa9060(qp, cq, cq_cons, sq->swq_last, in bnxt_qplib_cq_process_req()
2402 bnxt_qplib_hwq_incr_cons(&sq->hwq, swq->slots); in bnxt_qplib_cq_process_req()
2403 sq->swq_last = swq->next_idx; in bnxt_qplib_cq_process_req()
2404 if (sq->single) in bnxt_qplib_cq_process_req()
2409 if (sq->swq_last != cqe_sq_cons) { in bnxt_qplib_cq_process_req()
2418 sq->single = false; in bnxt_qplib_cq_process_req()
2715 struct bnxt_qplib_q *sq, *rq; in bnxt_qplib_cq_process_terminal() local
2737 sq = &qp->sq; in bnxt_qplib_cq_process_terminal()
2743 cqe_cons %= sq->max_wqe; in bnxt_qplib_cq_process_terminal()
2745 if (qp->sq.flushed) { in bnxt_qplib_cq_process_terminal()
2757 swq_last = sq->swq_last; in bnxt_qplib_cq_process_terminal()
2760 if (sq->swq[swq_last].flags & SQ_SEND_FLAGS_SIGNAL_COMP) { in bnxt_qplib_cq_process_terminal()
2766 cqe->wr_id = sq->swq[swq_last].wr_id; in bnxt_qplib_cq_process_terminal()
2767 cqe->type = sq->swq[swq_last].type; in bnxt_qplib_cq_process_terminal()
2771 bnxt_qplib_hwq_incr_cons(&sq->hwq, sq->swq[swq_last].slots); in bnxt_qplib_cq_process_terminal()
2772 sq->swq_last = sq->swq[swq_last].next_idx; in bnxt_qplib_cq_process_terminal()
2840 __flush_sq(&qp->sq, qp, &cqe, &budget); in bnxt_qplib_process_flush_list()