|
@@ -2653,7 +2653,7 @@ static int bnxt_hwrm_do_send_msg(struct bnxt *bp, void *msg, u32 msg_len,
|
|
|
/* Write request msg to hwrm channel */
|
|
|
__iowrite32_copy(bp->bar0, data, msg_len / 4);
|
|
|
|
|
|
- for (i = msg_len; i < HWRM_MAX_REQ_LEN; i += 4)
|
|
|
+ for (i = msg_len; i < BNXT_HWRM_MAX_REQ_LEN; i += 4)
|
|
|
writel(0, bp->bar0 + i);
|
|
|
|
|
|
/* currently supports only one outstanding message */
|
|
@@ -3830,6 +3830,7 @@ static int bnxt_hwrm_ver_get(struct bnxt *bp)
|
|
|
struct hwrm_ver_get_input req = {0};
|
|
|
struct hwrm_ver_get_output *resp = bp->hwrm_cmd_resp_addr;
|
|
|
|
|
|
+ bp->hwrm_max_req_len = HWRM_MAX_REQ_LEN;
|
|
|
bnxt_hwrm_cmd_hdr_init(bp, &req, HWRM_VER_GET, -1, -1);
|
|
|
req.hwrm_intf_maj = HWRM_VERSION_MAJOR;
|
|
|
req.hwrm_intf_min = HWRM_VERSION_MINOR;
|
|
@@ -3855,6 +3856,9 @@ static int bnxt_hwrm_ver_get(struct bnxt *bp)
|
|
|
if (!bp->hwrm_cmd_timeout)
|
|
|
bp->hwrm_cmd_timeout = DFLT_HWRM_CMD_TIMEOUT;
|
|
|
|
|
|
+ if (resp->hwrm_intf_maj >= 1)
|
|
|
+ bp->hwrm_max_req_len = le16_to_cpu(resp->max_req_win_len);
|
|
|
+
|
|
|
hwrm_ver_get_exit:
|
|
|
mutex_unlock(&bp->hwrm_cmd_lock);
|
|
|
return rc;
|