Commit b1d58b99 authored by Naresh Gottumukkala's avatar Naresh Gottumukkala Committed by Roland Dreier

RDMA/ocrdma: Use MCC_CREATE_EXT_V1 for MCC create

Use MCC_CREATE_EXT_V1 to create MCC_queue to receive RoCE events.
Signed-off-by: default avatarNaresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
parent 27159f50
...@@ -563,32 +563,19 @@ static int ocrdma_mbx_create_mq(struct ocrdma_dev *dev, ...@@ -563,32 +563,19 @@ static int ocrdma_mbx_create_mq(struct ocrdma_dev *dev,
memset(cmd, 0, sizeof(*cmd)); memset(cmd, 0, sizeof(*cmd));
num_pages = PAGES_4K_SPANNED(mq->va, mq->size); num_pages = PAGES_4K_SPANNED(mq->va, mq->size);
if (dev->nic_info.dev_family == OCRDMA_GEN2_FAMILY) { ocrdma_init_mch(&cmd->req, OCRDMA_CMD_CREATE_MQ_EXT,
ocrdma_init_mch(&cmd->req, OCRDMA_CMD_CREATE_MQ, OCRDMA_SUBSYS_COMMON, sizeof(*cmd));
OCRDMA_SUBSYS_COMMON, sizeof(*cmd)); cmd->req.rsvd_version = 1;
cmd->v0.pages = num_pages; cmd->cqid_pages = num_pages;
cmd->v0.async_cqid_valid = OCRDMA_CREATE_MQ_ASYNC_CQ_VALID; cmd->cqid_pages |= (cq->id << OCRDMA_CREATE_MQ_CQ_ID_SHIFT);
cmd->v0.async_cqid_valid = (cq->id << 1); cmd->async_cqid_valid = OCRDMA_CREATE_MQ_ASYNC_CQ_VALID;
cmd->v0.cqid_ringsize |= (ocrdma_encoded_q_len(mq->len) << cmd->async_event_bitmap = Bit(20);
OCRDMA_CREATE_MQ_RING_SIZE_SHIFT); cmd->async_cqid_ringsize = cq->id;
cmd->v0.cqid_ringsize |= cmd->async_cqid_ringsize |= (ocrdma_encoded_q_len(mq->len) <<
(cq->id << OCRDMA_CREATE_MQ_V0_CQ_ID_SHIFT); OCRDMA_CREATE_MQ_RING_SIZE_SHIFT);
cmd->v0.valid = OCRDMA_CREATE_MQ_VALID; cmd->valid = OCRDMA_CREATE_MQ_VALID;
pa = &cmd->v0.pa[0]; pa = &cmd->pa[0];
} else {
ocrdma_init_mch(&cmd->req, OCRDMA_CMD_CREATE_MQ_EXT,
OCRDMA_SUBSYS_COMMON, sizeof(*cmd));
cmd->req.rsvd_version = 1;
cmd->v1.cqid_pages = num_pages;
cmd->v1.cqid_pages |= (cq->id << OCRDMA_CREATE_MQ_CQ_ID_SHIFT);
cmd->v1.async_cqid_valid = OCRDMA_CREATE_MQ_ASYNC_CQ_VALID;
cmd->v1.async_event_bitmap = Bit(20);
cmd->v1.async_cqid_ringsize = cq->id;
cmd->v1.async_cqid_ringsize |= (ocrdma_encoded_q_len(mq->len) <<
OCRDMA_CREATE_MQ_RING_SIZE_SHIFT);
cmd->v1.valid = OCRDMA_CREATE_MQ_VALID;
pa = &cmd->v1.pa[0];
}
ocrdma_build_q_pages(pa, num_pages, mq->dma, PAGE_SIZE_4K); ocrdma_build_q_pages(pa, num_pages, mq->dma, PAGE_SIZE_4K);
status = be_roce_mcc_cmd(dev->nic_info.netdev, status = be_roce_mcc_cmd(dev->nic_info.netdev,
cmd, sizeof(*cmd), NULL, NULL); cmd, sizeof(*cmd), NULL, NULL);
......
...@@ -608,16 +608,8 @@ enum { ...@@ -608,16 +608,8 @@ enum {
OCRDMA_CREATE_MQ_ASYNC_CQ_VALID = Bit(0) OCRDMA_CREATE_MQ_ASYNC_CQ_VALID = Bit(0)
}; };
struct ocrdma_create_mq_v0 { struct ocrdma_create_mq_req {
u32 pages; struct ocrdma_mbx_hdr req;
u32 cqid_ringsize;
u32 valid;
u32 async_cqid_valid;
u32 rsvd;
struct ocrdma_pa pa[8];
} __packed;
struct ocrdma_create_mq_v1 {
u32 cqid_pages; u32 cqid_pages;
u32 async_event_bitmap; u32 async_event_bitmap;
u32 async_cqid_ringsize; u32 async_cqid_ringsize;
...@@ -627,14 +619,6 @@ struct ocrdma_create_mq_v1 { ...@@ -627,14 +619,6 @@ struct ocrdma_create_mq_v1 {
struct ocrdma_pa pa[8]; struct ocrdma_pa pa[8];
} __packed; } __packed;
struct ocrdma_create_mq_req {
struct ocrdma_mbx_hdr req;
union {
struct ocrdma_create_mq_v0 v0;
struct ocrdma_create_mq_v1 v1;
};
} __packed;
struct ocrdma_create_mq_rsp { struct ocrdma_create_mq_rsp {
struct ocrdma_mbx_rsp rsp; struct ocrdma_mbx_rsp rsp;
u32 id; u32 id;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment