Skip to content

Commit c682c6e

Browse files
selvintxavierrleon
authored andcommitted
RDAM/bnxt_re: Use tlv apis while processing the slow path commands
Use the new TLV APIs for existing slow path commands. The TLV APIs will be used to populate extended headers for some of the Firmware commands, which will be introduced in the patches that follow. Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com> Link: https://lore.kernel.org/r/1680169540-10029-7-git-send-email-selvin.xavier@broadcom.com Signed-off-by: Leon Romanovsky <leon@kernel.org>
1 parent 0722f1f commit c682c6e

1 file changed

Lines changed: 11 additions & 11 deletions

File tree

drivers/infiniband/hw/bnxt_re/qplib_rcfw.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
#include "qplib_rcfw.h"
5050
#include "qplib_sp.h"
5151
#include "qplib_fp.h"
52+
#include "qplib_tlv.h"
5253

5354
static void bnxt_qplib_service_creq(struct tasklet_struct *t);
5455

@@ -101,7 +102,7 @@ static int __send_message(struct bnxt_qplib_rcfw *rcfw,
101102

102103
pdev = rcfw->pdev;
103104

104-
opcode = msg->req->opcode;
105+
opcode = __get_cmdq_base_opcode(msg->req, msg->req_sz);
105106
if (!test_bit(FIRMWARE_INITIALIZED_FLAG, &cmdq->flags) &&
106107
(opcode != CMDQ_BASE_OPCODE_QUERY_FUNC &&
107108
opcode != CMDQ_BASE_OPCODE_INITIALIZE_FW &&
@@ -137,7 +138,7 @@ static int __send_message(struct bnxt_qplib_rcfw *rcfw,
137138
cookie |= RCFW_CMD_IS_BLOCKING;
138139

139140
set_bit(cbit, cmdq->cmdq_bitmap);
140-
msg->req->cookie = cpu_to_le16(cookie);
141+
__set_cmdq_base_cookie(msg->req, msg->req_sz, cpu_to_le16(cookie));
141142
crsqe = &rcfw->crsqe_tbl[cbit];
142143
if (crsqe->resp) {
143144
spin_unlock_irqrestore(&hwq->lock, flags);
@@ -153,13 +154,12 @@ static int __send_message(struct bnxt_qplib_rcfw *rcfw,
153154
memset(msg->resp, 0, sizeof(*msg->resp));
154155
crsqe->resp = (struct creq_qp_event *)msg->resp;
155156
crsqe->resp->cookie = msg->req->cookie;
156-
crsqe->req_size = msg->req->cmd_size;
157-
if (msg->req->resp_size && msg->sb) {
157+
crsqe->req_size = __get_cmdq_base_cmd_size(msg->req, msg->req_sz);
158+
if (__get_cmdq_base_resp_size(msg->req, msg->req_sz) && msg->sb) {
158159
struct bnxt_qplib_rcfw_sbuf *sbuf = msg->sb;
159-
160-
msg->req->resp_addr = cpu_to_le64(sbuf->dma_addr);
161-
msg->req->resp_size = (sbuf->size + BNXT_QPLIB_CMDQE_UNITS - 1) /
162-
BNXT_QPLIB_CMDQE_UNITS;
160+
__set_cmdq_base_resp_addr(msg->req, msg->req_sz, cpu_to_le64(sbuf->dma_addr));
161+
__set_cmdq_base_resp_size(msg->req, msg->req_sz,
162+
ALIGN(sbuf->size, BNXT_QPLIB_CMDQE_UNITS));
163163
}
164164

165165
preq = (u8 *)msg->req;
@@ -214,12 +214,12 @@ int bnxt_qplib_rcfw_send_message(struct bnxt_qplib_rcfw *rcfw,
214214
return 0;
215215

216216
do {
217-
opcode = msg->req->opcode;
217+
opcode = __get_cmdq_base_opcode(msg->req, msg->req_sz);
218218
rc = __send_message(rcfw, msg);
219-
cookie = le16_to_cpu(msg->req->cookie) & RCFW_MAX_COOKIE_VALUE;
219+
cookie = le16_to_cpu(__get_cmdq_base_cookie(msg->req, msg->req_sz)) &
220+
RCFW_MAX_COOKIE_VALUE;
220221
if (!rc)
221222
break;
222-
223223
if (!retry_cnt || (rc != -EAGAIN && rc != -EBUSY)) {
224224
/* send failed */
225225
dev_err(&rcfw->pdev->dev, "cmdq[%#x]=%#x send failed\n",

0 commit comments

Comments
 (0)