From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id D6C82A0579 for ; Wed, 18 Mar 2020 06:57:49 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C3E661C02D; Wed, 18 Mar 2020 06:57:49 +0100 (CET) Received: from relay.smtp.broadcom.com (relay.smtp.broadcom.com [192.19.211.62]) by dpdk.org (Postfix) with ESMTP id 9606B1C02D for ; Wed, 18 Mar 2020 06:57:45 +0100 (CET) Received: from dhcp-10-123-153-55.dhcp.broadcom.net (dhcp-10-123-153-55.dhcp.broadcom.net [10.123.153.55]) by relay.smtp.broadcom.com (Postfix) with ESMTP id 9C697290A9F for ; Tue, 17 Mar 2020 22:57:44 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 relay.smtp.broadcom.com 9C697290A9F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1584511064; bh=ZKx+qrZTVYAvW9g0lcWXjOf6nxOApYUv7rT15zOoVa4=; h=From:To:Subject:Date:In-Reply-To:References:From; b=mpXhl1Un4ngkEa/QQy/5aG4T0MgPyzwyp++7AC6JjFrFmXk011GUZ9Fa3+MfP1ilH eCMHnlp1kYhMYIJmHoZgHo+rH8sGMw6qvXoYT5mkd+MnbAZ4i59BFS+JchxfDZfbVJ 81Msjonk9MSkKg6q8Qym+x51Ni0ZXwcVXuKC0pDQ= From: Somnath Kotur To: stable@dpdk.org Date: Wed, 18 Mar 2020 11:25:13 +0530 Message-Id: <20200318055513.21622-5-somnath.kotur@broadcom.com> X-Mailer: git-send-email 2.10.1.613.g2cc2e70 In-Reply-To: <20200318055513.21622-1-somnath.kotur@broadcom.com> References: <20200318055513.21622-1-somnath.kotur@broadcom.com> Subject: [dpdk-stable] [PATCH 18.11 4/4] net/bnxt: fix default timeout for getting FW version X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" From: Rahul Gupta [upstream commit 975ff25e7c2d8dfba2c947b5dc23a3bebf51b2d6 ] Initially when driver is loading, there is no HWRM timeout configured by FW, the VER_GET command needs use default timeout as 500ms. Fixes: 458f0360e8dc ("net/bnxt: get default HWRM command timeout from FW") Signed-off-by: Rahul Gupta Reviewed-by: Kalesh AP Reviewed-by: Somnath Kotur Reviewed-by: Ajit Khaparde Signed-off-by: Somnath Kotur --- drivers/net/bnxt/bnxt.h | 4 ++-- drivers/net/bnxt/bnxt_ethdev.c | 2 +- drivers/net/bnxt/bnxt_hwrm.c | 13 ++++--------- drivers/net/bnxt/bnxt_hwrm.h | 2 +- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h index 33fef1b..140089d 100644 --- a/drivers/net/bnxt/bnxt.h +++ b/drivers/net/bnxt/bnxt.h @@ -374,8 +374,8 @@ struct bnxt { uint16_t max_req_len; uint16_t max_resp_len; - /* default command timeout value of 50ms */ -#define HWRM_CMD_TIMEOUT 50000 + /* default command timeout value of 500ms */ +#define DFLT_HWRM_CMD_TIMEOUT 500000 /* default HWRM request timeout value */ uint32_t hwrm_cmd_timeout; diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index fc5265c..90139bc 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -3334,7 +3334,7 @@ static int bnxt_alloc_stats_mem(struct bnxt *bp) "hwrm resource allocation failure rc: %x\n", rc); goto error_free; } - rc = bnxt_hwrm_ver_get(bp); + rc = bnxt_hwrm_ver_get(bp, DFLT_HWRM_CMD_TIMEOUT); if (rc) goto error_free; rc = bnxt_hwrm_queue_qportcfg(bp); diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c index 7d2bd9c..6e6d477 100644 --- a/drivers/net/bnxt/bnxt_hwrm.c +++ b/drivers/net/bnxt/bnxt_hwrm.c @@ -82,13 +82,7 @@ static int bnxt_hwrm_send_message(struct bnxt *bp, void *msg, GRCPF_REG_KONG_CHANNEL_OFFSET : GRCPF_REG_CHIMP_CHANNEL_OFFSET; uint16_t mb_trigger_offset = use_kong_mb ? GRCPF_REG_KONG_COMM_TRIGGER : GRCPF_REG_CHIMP_COMM_TRIGGER; - uint32_t timeout; - - /* For VER_GET command, set timeout as 50ms */ - if (rte_cpu_to_le_16(req->req_type) == HWRM_VER_GET) - timeout = HWRM_CMD_TIMEOUT; - else - timeout = bp->hwrm_cmd_timeout; + uint32_t timeout = bp->hwrm_cmd_timeout; if (bp->flags & BNXT_FLAG_SHORT_CMD) { void *short_cmd_req = bp->hwrm_short_cmd_req_addr; @@ -801,7 +795,7 @@ int bnxt_hwrm_func_resc_qcaps(struct bnxt *bp) return rc; } -int bnxt_hwrm_ver_get(struct bnxt *bp) +int bnxt_hwrm_ver_get(struct bnxt *bp, uint32_t timeout) { int rc = 0; struct hwrm_ver_get_input req = {.req_type = 0 }; @@ -812,6 +806,7 @@ int bnxt_hwrm_ver_get(struct bnxt *bp) uint32_t dev_caps_cfg; bp->max_req_len = HWRM_MAX_REQ_LEN; + bp->hwrm_cmd_timeout = timeout; HWRM_PREP(req, VER_GET, BNXT_USE_CHIMP_MB); req.hwrm_intf_maj = HWRM_VERSION_MAJOR; @@ -843,7 +838,7 @@ int bnxt_hwrm_ver_get(struct bnxt *bp) /* convert timeout to usec */ bp->hwrm_cmd_timeout *= 1000; if (!bp->hwrm_cmd_timeout) - bp->hwrm_cmd_timeout = HWRM_CMD_TIMEOUT; + bp->hwrm_cmd_timeout = DFLT_HWRM_CMD_TIMEOUT; if (resp->hwrm_intf_maj_8b != HWRM_VERSION_MAJOR) { PMD_DRV_LOG(ERR, "Unsupported firmware API version\n"); diff --git a/drivers/net/bnxt/bnxt_hwrm.h b/drivers/net/bnxt/bnxt_hwrm.h index c586ed3..0300bae 100644 --- a/drivers/net/bnxt/bnxt_hwrm.h +++ b/drivers/net/bnxt/bnxt_hwrm.h @@ -90,7 +90,7 @@ int bnxt_hwrm_stat_ctx_free(struct bnxt *bp, int bnxt_hwrm_ctx_qstats(struct bnxt *bp, uint32_t cid, int idx, struct rte_eth_stats *stats, uint8_t rx); -int bnxt_hwrm_ver_get(struct bnxt *bp); +int bnxt_hwrm_ver_get(struct bnxt *bp, uint32_t timeout); int bnxt_hwrm_vnic_alloc(struct bnxt *bp, struct bnxt_vnic_info *vnic); int bnxt_hwrm_vnic_cfg(struct bnxt *bp, struct bnxt_vnic_info *vnic); -- 1.8.3.1