RDMA/bnxt_re: Add helper data structures
authorDevesh Sharma <devesh.sharma@broadcom.com>
Wed, 15 Jul 2020 14:16:57 +0000 (10:16 -0400)
committerJason Gunthorpe <jgg@nvidia.com>
Mon, 20 Jul 2020 19:32:50 +0000 (16:32 -0300)
Adding few helper data structure which are useful to initialize hardware
send wqe in variable wqe mode.

Adding a qp flag in HSI to indicate variable wqe is enabled for this qp.

Link: https://lore.kernel.org/r/1594822619-4098-5-git-send-email-devesh.sharma@broadcom.com
Signed-off-by: Devesh Sharma <devesh.sharma@broadcom.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/bnxt_re/qplib_fp.h
drivers/infiniband/hw/bnxt_re/roce_hsi.h

index 50e4f79..bf96a74 100644 (file)
 #ifndef __BNXT_QPLIB_FP_H__
 #define __BNXT_QPLIB_FP_H__
 
+/* Few helper structures temporarily defined here
+ * should get rid of these when roce_hsi.h is updated
+ * in original code base
+ */
+struct sq_ud_ext_hdr {
+       __le32 dst_qp;
+       __le32 avid;
+       __le64 rsvd;
+};
+
+struct sq_raw_ext_hdr {
+       __le32 cfa_meta;
+       __le32 rsvd0;
+       __le64 rsvd1;
+};
+
+struct sq_rdma_ext_hdr {
+       __le64 remote_va;
+       __le32 remote_key;
+       __le32 rsvd;
+};
+
+struct sq_atomic_ext_hdr {
+       __le64 swap_data;
+       __le64 cmp_data;
+};
+
+struct sq_fr_pmr_ext_hdr {
+       __le64 pblptr;
+       __le64 va;
+};
+
+struct sq_bind_ext_hdr {
+       __le64 va;
+       __le32 length_lo;
+       __le32 length_hi;
+};
+
+struct rq_ext_hdr {
+       __le64 rsvd1;
+       __le64 rsvd2;
+};
+
+/* Helper structures end */
+
 struct bnxt_qplib_srq {
        struct bnxt_qplib_pd            *pd;
        struct bnxt_qplib_dpi           *dpi;
index 6f00f07..3e40e0d 100644 (file)
@@ -1126,6 +1126,7 @@ struct cmdq_create_qp {
        #define CMDQ_CREATE_QP_QP_FLAGS_FORCE_COMPLETION           0x2UL
        #define CMDQ_CREATE_QP_QP_FLAGS_RESERVED_LKEY_ENABLE      0x4UL
        #define CMDQ_CREATE_QP_QP_FLAGS_FR_PMR_ENABLED             0x8UL
+       #define CMDQ_CREATE_QP_QP_FLAGS_VARIABLE_SIZED_WQE_ENABLED 0x10UL
        u8 type;
        #define CMDQ_CREATE_QP_TYPE_RC                             0x2UL
        #define CMDQ_CREATE_QP_TYPE_UD                             0x4UL