Lines Matching refs:sq

196 	return get_wqe(qp, qp->sq.offset + (n << qp->sq.wqe_shift));  in get_send_wqe()
219 s = roundup(size, 1U << qp->sq.wqe_shift); in stamp_send_wqe()
221 ind = (i >> qp->sq.wqe_shift) + n; in stamp_send_wqe()
222 stamp = ind & qp->sq.wqe_cnt ? cpu_to_be32(0x7fffffff) : in stamp_send_wqe()
224 buf = get_send_wqe(qp, ind & (qp->sq.wqe_cnt - 1)); in stamp_send_wqe()
225 wqe = buf + (i & ((1 << qp->sq.wqe_shift) - 1)); in stamp_send_wqe()
229 ctrl = buf = get_send_wqe(qp, n & (qp->sq.wqe_cnt - 1)); in stamp_send_wqe()
245 ctrl = wqe = get_send_wqe(qp, n & (qp->sq.wqe_cnt - 1)); in post_nop_wqe()
270 (n & qp->sq.wqe_cnt ? cpu_to_be32(1 << 31) : 0); in post_nop_wqe()
278 unsigned s = qp->sq.wqe_cnt - (ind & (qp->sq.wqe_cnt - 1)); in pad_wraparound()
280 post_nop_wqe(qp, ind, s << qp->sq.wqe_shift); in pad_wraparound()
480 qp->sq.wqe_shift = ilog2(64); in set_kernel_sq_size()
482 qp->sq.wqe_shift = ilog2(roundup_pow_of_two(s)); in set_kernel_sq_size()
485 qp->sq_max_wqes_per_wr = DIV_ROUND_UP(s, 1U << qp->sq.wqe_shift); in set_kernel_sq_size()
491 qp->sq_spare_wqes = (2048 >> qp->sq.wqe_shift) + qp->sq_max_wqes_per_wr; in set_kernel_sq_size()
492 qp->sq.wqe_cnt = roundup_pow_of_two(cap->max_send_wr * in set_kernel_sq_size()
496 if (qp->sq.wqe_cnt <= dev->dev->caps.max_wqes) in set_kernel_sq_size()
502 ++qp->sq.wqe_shift; in set_kernel_sq_size()
505 qp->sq.max_gs = (min(dev->dev->caps.max_sq_desc_sz, in set_kernel_sq_size()
506 (qp->sq_max_wqes_per_wr << qp->sq.wqe_shift)) - in set_kernel_sq_size()
511 (qp->sq.wqe_cnt << qp->sq.wqe_shift); in set_kernel_sq_size()
512 if (qp->rq.wqe_shift > qp->sq.wqe_shift) { in set_kernel_sq_size()
514 qp->sq.offset = qp->rq.wqe_cnt << qp->rq.wqe_shift; in set_kernel_sq_size()
516 qp->rq.offset = qp->sq.wqe_cnt << qp->sq.wqe_shift; in set_kernel_sq_size()
517 qp->sq.offset = 0; in set_kernel_sq_size()
520 cap->max_send_wr = qp->sq.max_post = in set_kernel_sq_size()
521 (qp->sq.wqe_cnt - qp->sq_spare_wqes) / qp->sq_max_wqes_per_wr; in set_kernel_sq_size()
522 cap->max_send_sge = min(qp->sq.max_gs, in set_kernel_sq_size()
542 qp->sq.wqe_cnt = 1 << ucmd->log_sq_bb_count; in set_user_sq_size()
543 qp->sq.wqe_shift = ucmd->log_sq_stride; in set_user_sq_size()
546 (qp->sq.wqe_cnt << qp->sq.wqe_shift); in set_user_sq_size()
710 spin_lock_init(&qp->sq.lock); in create_qp_common()
799 qp->sq.wrid = kmalloc(qp->sq.wqe_cnt * sizeof(u64), gfp); in create_qp_common()
800 if (!qp->sq.wrid) in create_qp_common()
801 qp->sq.wrid = __vmalloc(qp->sq.wqe_cnt * sizeof(u64), in create_qp_common()
807 if (!qp->sq.wrid || !qp->rq.wrid) { in create_qp_common()
896 kvfree(qp->sq.wrid); in create_qp_common()
1072 kvfree(qp->sq.wrid); in destroy_qp_common()
1579 if (qp->sq.wqe_cnt) in __mlx4_ib_modify_qp()
1580 context->sq_size_stride = ilog2(qp->sq.wqe_cnt) << 3; in __mlx4_ib_modify_qp()
1581 context->sq_size_stride |= qp->sq.wqe_shift - 4; in __mlx4_ib_modify_qp()
1860 for (i = 0; i < qp->sq.wqe_cnt; ++i) { in __mlx4_ib_modify_qp()
1864 ctrl->fence_size = 1 << (qp->sq.wqe_shift - 4); in __mlx4_ib_modify_qp()
1866 stamp_send_wqe(qp, i, 1 << qp->sq.wqe_shift); in __mlx4_ib_modify_qp()
1920 qp->sq.head = 0; in __mlx4_ib_modify_qp()
1921 qp->sq.tail = 0; in __mlx4_ib_modify_qp()
2716 wr->wr.num_sge > qp->sq.max_gs - (halign >> 4))) in build_lso_seg()
2769 spin_lock_irqsave(&qp->sq.lock, flags); in mlx4_ib_post_send()
2783 if (mlx4_wq_overflow(&qp->sq, nreq, qp->ibqp.send_cq)) { in mlx4_ib_post_send()
2789 if (unlikely(wr->num_sge > qp->sq.max_gs)) { in mlx4_ib_post_send()
2795 ctrl = wqe = get_send_wqe(qp, ind & (qp->sq.wqe_cnt - 1)); in mlx4_ib_post_send()
2796 qp->sq.wrid[(qp->sq.head + nreq) & (qp->sq.wqe_cnt - 1)] = wr->wr_id; in mlx4_ib_post_send()
3017 (ind & qp->sq.wqe_cnt ? cpu_to_be32(1 << 31) : 0) | blh; in mlx4_ib_post_send()
3020 ind += DIV_ROUND_UP(size * 16, 1U << qp->sq.wqe_shift); in mlx4_ib_post_send()
3039 qp->sq.head += nreq; in mlx4_ib_post_send()
3062 spin_unlock_irqrestore(&qp->sq.lock, flags); in mlx4_ib_post_send()
3298 qp_attr->cap.max_send_wr = qp->sq.wqe_cnt; in mlx4_ib_query_qp()
3299 qp_attr->cap.max_send_sge = qp->sq.max_gs; in mlx4_ib_query_qp()