• Home
  • Raw
  • Download

Lines Matching refs:wqe

489 static int build_rdma_send(struct t4_sq *sq, union t4_wr *wqe,  in build_rdma_send()  argument
501 wqe->send.sendop_pkd = cpu_to_be32( in build_rdma_send()
504 wqe->send.sendop_pkd = cpu_to_be32( in build_rdma_send()
506 wqe->send.stag_inv = 0; in build_rdma_send()
510 wqe->send.sendop_pkd = cpu_to_be32( in build_rdma_send()
513 wqe->send.sendop_pkd = cpu_to_be32( in build_rdma_send()
515 wqe->send.stag_inv = cpu_to_be32(wr->ex.invalidate_rkey); in build_rdma_send()
521 wqe->send.r3 = 0; in build_rdma_send()
522 wqe->send.r4 = 0; in build_rdma_send()
527 ret = build_immd(sq, wqe->send.u.immd_src, wr, in build_rdma_send()
531 size = sizeof(wqe->send) + sizeof(struct fw_ri_immd) + in build_rdma_send()
536 wqe->send.u.isgl_src, in build_rdma_send()
540 size = sizeof(wqe->send) + sizeof(struct fw_ri_isgl) + in build_rdma_send()
544 wqe->send.u.immd_src[0].op = FW_RI_DATA_IMMD; in build_rdma_send()
545 wqe->send.u.immd_src[0].r1 = 0; in build_rdma_send()
546 wqe->send.u.immd_src[0].r2 = 0; in build_rdma_send()
547 wqe->send.u.immd_src[0].immdlen = 0; in build_rdma_send()
548 size = sizeof(wqe->send) + sizeof(struct fw_ri_immd); in build_rdma_send()
552 wqe->send.plen = cpu_to_be32(plen); in build_rdma_send()
556 static int build_rdma_write(struct t4_sq *sq, union t4_wr *wqe, in build_rdma_write() argument
571 wqe->write.iw_imm_data.ib_imm_data.imm_data32 = wr->ex.imm_data; in build_rdma_write()
573 wqe->write.iw_imm_data.ib_imm_data.imm_data32 = 0; in build_rdma_write()
574 wqe->write.stag_sink = cpu_to_be32(rdma_wr(wr)->rkey); in build_rdma_write()
575 wqe->write.to_sink = cpu_to_be64(rdma_wr(wr)->remote_addr); in build_rdma_write()
578 ret = build_immd(sq, wqe->write.u.immd_src, wr, in build_rdma_write()
582 size = sizeof(wqe->write) + sizeof(struct fw_ri_immd) + in build_rdma_write()
587 wqe->write.u.isgl_src, in build_rdma_write()
591 size = sizeof(wqe->write) + sizeof(struct fw_ri_isgl) + in build_rdma_write()
595 wqe->write.u.immd_src[0].op = FW_RI_DATA_IMMD; in build_rdma_write()
596 wqe->write.u.immd_src[0].r1 = 0; in build_rdma_write()
597 wqe->write.u.immd_src[0].r2 = 0; in build_rdma_write()
598 wqe->write.u.immd_src[0].immdlen = 0; in build_rdma_write()
599 size = sizeof(wqe->write) + sizeof(struct fw_ri_immd); in build_rdma_write()
603 wqe->write.plen = cpu_to_be32(plen); in build_rdma_write()
660 static int build_rdma_read(union t4_wr *wqe, const struct ib_send_wr *wr, in build_rdma_read() argument
666 wqe->read.stag_src = cpu_to_be32(rdma_wr(wr)->rkey); in build_rdma_read()
667 wqe->read.to_src_hi = cpu_to_be32((u32)(rdma_wr(wr)->remote_addr in build_rdma_read()
669 wqe->read.to_src_lo = cpu_to_be32((u32)rdma_wr(wr)->remote_addr); in build_rdma_read()
670 wqe->read.stag_sink = cpu_to_be32(wr->sg_list[0].lkey); in build_rdma_read()
671 wqe->read.plen = cpu_to_be32(wr->sg_list[0].length); in build_rdma_read()
672 wqe->read.to_sink_hi = cpu_to_be32((u32)(wr->sg_list[0].addr in build_rdma_read()
674 wqe->read.to_sink_lo = cpu_to_be32((u32)(wr->sg_list[0].addr)); in build_rdma_read()
676 wqe->read.stag_src = cpu_to_be32(2); in build_rdma_read()
677 wqe->read.to_src_hi = 0; in build_rdma_read()
678 wqe->read.to_src_lo = 0; in build_rdma_read()
679 wqe->read.stag_sink = cpu_to_be32(2); in build_rdma_read()
680 wqe->read.plen = 0; in build_rdma_read()
681 wqe->read.to_sink_hi = 0; in build_rdma_read()
682 wqe->read.to_sink_lo = 0; in build_rdma_read()
684 wqe->read.r2 = 0; in build_rdma_read()
685 wqe->read.r5 = 0; in build_rdma_read()
686 *len16 = DIV_ROUND_UP(sizeof(wqe->read), 16); in build_rdma_read()
697 union t4_wr *wqe; in post_write_cmpl() local
706 wqe = (union t4_wr *)((u8 *)qhp->wq.sq.queue + in post_write_cmpl()
708 build_rdma_write_cmpl(&qhp->wq.sq, &wqe->write_cmpl, wr, &len16); in post_write_cmpl()
748 wqe->write_cmpl.flags_send = send_signaled ? FW_RI_COMPLETION_FLAG : 0; in post_write_cmpl()
749 wqe->write_cmpl.wrid_send = qhp->wq.sq.pidx; in post_write_cmpl()
751 init_wr_hdr(wqe, write_wrid, FW_RI_RDMA_WRITE_CMPL_WR, in post_write_cmpl()
756 t4_ring_sq_db(&qhp->wq, idx, wqe); in post_write_cmpl()
759 static int build_rdma_recv(struct c4iw_qp *qhp, union t4_recv_wr *wqe, in build_rdma_recv() argument
766 &wqe->recv.isgl, wr->sg_list, wr->num_sge, NULL); in build_rdma_recv()
770 sizeof(wqe->recv) + wr->num_sge * sizeof(struct fw_ri_sge), 16); in build_rdma_recv()
774 static int build_srq_recv(union t4_recv_wr *wqe, const struct ib_recv_wr *wr, in build_srq_recv() argument
779 ret = build_isgl((__be64 *)wqe, (__be64 *)(wqe + 1), in build_srq_recv()
780 &wqe->recv.isgl, wr->sg_list, wr->num_sge, NULL); in build_srq_recv()
783 *len16 = DIV_ROUND_UP(sizeof(wqe->recv) + in build_srq_recv()
820 static int build_memreg(struct t4_sq *sq, union t4_wr *wqe, in build_memreg() argument
833 wqe->fr.qpbinde_to_dcacpu = 0; in build_memreg()
834 wqe->fr.pgsz_shift = ilog2(wr->mr->page_size) - 12; in build_memreg()
835 wqe->fr.addr_type = FW_RI_VA_BASED_TO; in build_memreg()
836 wqe->fr.mem_perms = c4iw_ib_to_tpt_access(wr->access); in build_memreg()
837 wqe->fr.len_hi = 0; in build_memreg()
838 wqe->fr.len_lo = cpu_to_be32(mhp->ibmr.length); in build_memreg()
839 wqe->fr.stag = cpu_to_be32(wr->key); in build_memreg()
840 wqe->fr.va_hi = cpu_to_be32(mhp->ibmr.iova >> 32); in build_memreg()
841 wqe->fr.va_lo_fbo = cpu_to_be32(mhp->ibmr.iova & in build_memreg()
850 sglp = (struct fw_ri_dsgl *)(&wqe->fr + 1); in build_memreg()
857 *len16 = DIV_ROUND_UP(sizeof(wqe->fr) + sizeof(*sglp), 16); in build_memreg()
859 imdp = (struct fw_ri_immd *)(&wqe->fr + 1); in build_memreg()
878 *len16 = DIV_ROUND_UP(sizeof(wqe->fr) + sizeof(*imdp) in build_memreg()
884 static int build_inv_stag(union t4_wr *wqe, const struct ib_send_wr *wr, in build_inv_stag() argument
887 wqe->inv.stag_inv = cpu_to_be32(wr->ex.invalidate_rkey); in build_inv_stag()
888 wqe->inv.r2 = 0; in build_inv_stag()
889 *len16 = DIV_ROUND_UP(sizeof(wqe->inv), 16); in build_inv_stag()
1086 union t4_wr *wqe = NULL; in c4iw_post_send() local
1142 wqe = (union t4_wr *)((u8 *)qhp->wq.sq.queue + in c4iw_post_send()
1161 err = build_rdma_send(&qhp->wq.sq, wqe, wr, &len16); in c4iw_post_send()
1173 err = build_rdma_write(&qhp->wq.sq, wqe, wr, &len16); in c4iw_post_send()
1185 err = build_rdma_read(wqe, wr, &len16); in c4iw_post_send()
1199 build_tpte_memreg(&wqe->fr_tpte, reg_wr(wr), in c4iw_post_send()
1203 err = build_memreg(&qhp->wq.sq, wqe, reg_wr(wr), in c4iw_post_send()
1217 err = build_inv_stag(wqe, wr, &len16); in c4iw_post_send()
1241 init_wr_hdr(wqe, qhp->wq.sq.pidx, fw_opcode, fw_flags, len16); in c4iw_post_send()
1252 t4_ring_sq_db(&qhp->wq, idx, wqe); in c4iw_post_send()
1266 union t4_recv_wr *wqe = NULL; in c4iw_post_receive() local
1296 wqe = (union t4_recv_wr *)((u8 *)qhp->wq.rq.queue + in c4iw_post_receive()
1300 err = build_rdma_recv(qhp, wqe, wr, &len16); in c4iw_post_receive()
1317 wqe->recv.opcode = FW_RI_RECV_WR; in c4iw_post_receive()
1318 wqe->recv.r1 = 0; in c4iw_post_receive()
1319 wqe->recv.wrid = qhp->wq.rq.pidx; in c4iw_post_receive()
1320 wqe->recv.r2[0] = 0; in c4iw_post_receive()
1321 wqe->recv.r2[1] = 0; in c4iw_post_receive()
1322 wqe->recv.r2[2] = 0; in c4iw_post_receive()
1323 wqe->recv.len16 = len16; in c4iw_post_receive()
1332 t4_ring_rq_db(&qhp->wq, idx, wqe); in c4iw_post_receive()
1341 static void defer_srq_wr(struct t4_srq *srq, union t4_recv_wr *wqe, in defer_srq_wr() argument
1353 memcpy(&pwr->wqe, wqe, len16 * 16); in defer_srq_wr()
1360 union t4_recv_wr *wqe, lwqe; in c4iw_post_srq_recv() local
1381 wqe = &lwqe; in c4iw_post_srq_recv()
1383 err = build_srq_recv(wqe, wr, &len16); in c4iw_post_srq_recv()
1391 wqe->recv.opcode = FW_RI_RECV_WR; in c4iw_post_srq_recv()
1392 wqe->recv.r1 = 0; in c4iw_post_srq_recv()
1393 wqe->recv.wrid = srq->wq.pidx; in c4iw_post_srq_recv()
1394 wqe->recv.r2[0] = 0; in c4iw_post_srq_recv()
1395 wqe->recv.r2[1] = 0; in c4iw_post_srq_recv()
1396 wqe->recv.r2[2] = 0; in c4iw_post_srq_recv()
1397 wqe->recv.len16 = len16; in c4iw_post_srq_recv()
1402 defer_srq_wr(&srq->wq, wqe, wr->wr_id, len16); in c4iw_post_srq_recv()
1406 c4iw_copy_wr_to_srq(&srq->wq, wqe, len16); in c4iw_post_srq_recv()
1419 t4_ring_srq_db(&srq->wq, idx, len16, wqe); in c4iw_post_srq_recv()
1563 struct fw_ri_wr *wqe; in post_terminate() local
1576 wqe = __skb_put_zero(skb, sizeof(*wqe)); in post_terminate()
1577 wqe->op_compl = cpu_to_be32(FW_WR_OP_V(FW_RI_INIT_WR)); in post_terminate()
1578 wqe->flowid_len16 = cpu_to_be32( in post_terminate()
1580 FW_WR_LEN16_V(DIV_ROUND_UP(sizeof(*wqe), 16))); in post_terminate()
1582 wqe->u.terminate.type = FW_RI_TYPE_TERMINATE; in post_terminate()
1583 wqe->u.terminate.immdlen = cpu_to_be32(sizeof(*term)); in post_terminate()
1584 term = (struct terminate_message *)wqe->u.terminate.termmsg; in post_terminate()
1695 struct fw_ri_wr *wqe; in rdma_fini() local
1707 wqe = __skb_put_zero(skb, sizeof(*wqe)); in rdma_fini()
1708 wqe->op_compl = cpu_to_be32( in rdma_fini()
1711 wqe->flowid_len16 = cpu_to_be32( in rdma_fini()
1713 FW_WR_LEN16_V(DIV_ROUND_UP(sizeof(*wqe), 16))); in rdma_fini()
1714 wqe->cookie = (uintptr_t)ep->com.wr_waitp; in rdma_fini()
1716 wqe->u.fini.type = FW_RI_TYPE_FINI; in rdma_fini()
1751 struct fw_ri_wr *wqe; in rdma_init() local
1758 skb = alloc_skb(sizeof(*wqe), GFP_KERNEL); in rdma_init()
1771 wqe = __skb_put_zero(skb, sizeof(*wqe)); in rdma_init()
1772 wqe->op_compl = cpu_to_be32( in rdma_init()
1775 wqe->flowid_len16 = cpu_to_be32( in rdma_init()
1777 FW_WR_LEN16_V(DIV_ROUND_UP(sizeof(*wqe), 16))); in rdma_init()
1779 wqe->cookie = (uintptr_t)qhp->ep->com.wr_waitp; in rdma_init()
1781 wqe->u.init.type = FW_RI_TYPE_INIT; in rdma_init()
1782 wqe->u.init.mpareqbit_p2ptype = in rdma_init()
1785 wqe->u.init.mpa_attrs = FW_RI_MPA_IETF_ENABLE; in rdma_init()
1787 wqe->u.init.mpa_attrs |= FW_RI_MPA_RX_MARKER_ENABLE; in rdma_init()
1789 wqe->u.init.mpa_attrs |= FW_RI_MPA_TX_MARKER_ENABLE; in rdma_init()
1791 wqe->u.init.mpa_attrs |= FW_RI_MPA_CRC_ENABLE; in rdma_init()
1793 wqe->u.init.qp_caps = FW_RI_QP_RDMA_READ_ENABLE | in rdma_init()
1797 wqe->u.init.qp_caps |= FW_RI_QP_FAST_REGISTER_ENABLE | in rdma_init()
1799 wqe->u.init.nrqe = cpu_to_be16(t4_rqes_posted(&qhp->wq)); in rdma_init()
1800 wqe->u.init.pdid = cpu_to_be32(qhp->attr.pd); in rdma_init()
1801 wqe->u.init.qpid = cpu_to_be32(qhp->wq.sq.qid); in rdma_init()
1802 wqe->u.init.sq_eqid = cpu_to_be32(qhp->wq.sq.qid); in rdma_init()
1804 wqe->u.init.rq_eqid = cpu_to_be32(FW_RI_INIT_RQEQID_SRQ | in rdma_init()
1807 wqe->u.init.rq_eqid = cpu_to_be32(qhp->wq.rq.qid); in rdma_init()
1808 wqe->u.init.hwrqsize = cpu_to_be32(qhp->wq.rq.rqt_size); in rdma_init()
1809 wqe->u.init.hwrqaddr = cpu_to_be32(qhp->wq.rq.rqt_hwaddr - in rdma_init()
1812 wqe->u.init.scqid = cpu_to_be32(qhp->attr.scq); in rdma_init()
1813 wqe->u.init.rcqid = cpu_to_be32(qhp->attr.rcq); in rdma_init()
1814 wqe->u.init.ord_max = cpu_to_be32(qhp->attr.max_ord); in rdma_init()
1815 wqe->u.init.ird_max = cpu_to_be32(qhp->attr.max_ird); in rdma_init()
1816 wqe->u.init.iss = cpu_to_be32(qhp->ep->snd_seq); in rdma_init()
1817 wqe->u.init.irs = cpu_to_be32(qhp->ep->rcv_seq); in rdma_init()
1819 build_rtr_msg(qhp->attr.mpa_attr.p2p_type, &wqe->u.init); in rdma_init()
2654 void c4iw_copy_wr_to_srq(struct t4_srq *srq, union t4_recv_wr *wqe, u8 len16) in c4iw_copy_wr_to_srq() argument
2658 src = (u64 *)wqe; in c4iw_copy_wr_to_srq()