qed: Add EDPM mode type for user-fw compatibility
In older FW versions the completion flag was treated as the ack flag in
edpm messages. Expose the FW option of setting which mode the QP is in
by adding a flag to the qedr <-> qed API.
Flag is added for backward compatibility with libqedr.
This flag will be set by qedr after determining whether the libqedr is
using the updated version.
Fixes: f109394033
("qed: Add support for QP verbs")
Signed-off-by: Yuval Basson <yuval.bason@marvell.com>
Signed-off-by: Michal Kalderon <michal.kalderon@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
239174945d
commit
ff937b916e
@@ -1378,6 +1378,7 @@ qed_rdma_create_qp(void *rdma_cxt,
|
||||
rc = qed_iwarp_create_qp(p_hwfn, qp, out_params);
|
||||
qp->qpid = qp->icid;
|
||||
} else {
|
||||
qp->edpm_mode = GET_FIELD(in_params->flags, QED_ROCE_EDPM_MODE);
|
||||
rc = qed_roce_alloc_cid(p_hwfn, &qp->icid);
|
||||
qp->qpid = ((0xFF << 16) | qp->icid);
|
||||
}
|
||||
|
@@ -183,6 +183,7 @@ struct qed_rdma_qp {
|
||||
void *shared_queue;
|
||||
dma_addr_t shared_queue_phys_addr;
|
||||
struct qed_iwarp_ep *ep;
|
||||
u8 edpm_mode;
|
||||
};
|
||||
|
||||
static inline bool qed_rdma_is_xrc_qp(struct qed_rdma_qp *qp)
|
||||
|
@@ -459,6 +459,9 @@ static int qed_roce_sp_create_requester(struct qed_hwfn *p_hwfn,
|
||||
ROCE_CREATE_QP_REQ_RAMROD_DATA_XRC_FLAG,
|
||||
qed_rdma_is_xrc_qp(qp));
|
||||
|
||||
SET_FIELD(p_ramrod->flags2,
|
||||
ROCE_CREATE_QP_REQ_RAMROD_DATA_EDPM_MODE, qp->edpm_mode);
|
||||
|
||||
p_ramrod->max_ord = qp->max_rd_atomic_req;
|
||||
p_ramrod->traffic_class = qp->traffic_class_tos;
|
||||
p_ramrod->hop_limit = qp->hop_limit_ttl;
|
||||
|
Reference in New Issue
Block a user