|
Thomas Bogendoerfer |
dbd5f9 |
From: Michael Chan <michael.chan@broadcom.com>
|
|
Thomas Bogendoerfer |
dbd5f9 |
Date: Wed, 20 Feb 2019 19:07:32 -0500
|
|
Thomas Bogendoerfer |
dbd5f9 |
Subject: bnxt_en: Wait longer for the firmware message response to complete.
|
|
Thomas Bogendoerfer |
dbd5f9 |
Patch-mainline: v5.0-rc8
|
|
Thomas Bogendoerfer |
dbd5f9 |
Git-commit: 0000b81a063b5f3ab82fa18041c28327ce72c312
|
|
Thomas Bogendoerfer |
dbd5f9 |
References: bsc#1086282 FATE#324873
|
|
Thomas Bogendoerfer |
dbd5f9 |
|
|
Thomas Bogendoerfer |
dbd5f9 |
The code waits up to 20 usec for the firmware response to complete
|
|
Thomas Bogendoerfer |
dbd5f9 |
once we've seen the valid response header in the buffer. It turns
|
|
Thomas Bogendoerfer |
dbd5f9 |
out that in some scenarios, this wait time is not long enough.
|
|
Thomas Bogendoerfer |
dbd5f9 |
Extend it to 150 usec and use usleep_range() instead of udelay().
|
|
Thomas Bogendoerfer |
dbd5f9 |
|
|
Thomas Bogendoerfer |
dbd5f9 |
Fixes: 9751e8e71487 ("bnxt_en: reduce timeout on initial HWRM calls")
|
|
Thomas Bogendoerfer |
dbd5f9 |
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
|
|
Thomas Bogendoerfer |
dbd5f9 |
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
Thomas Bogendoerfer |
dbd5f9 |
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
|
|
Thomas Bogendoerfer |
dbd5f9 |
---
|
|
Thomas Bogendoerfer |
dbd5f9 |
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 +-
|
|
Thomas Bogendoerfer |
dbd5f9 |
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 2 +-
|
|
Thomas Bogendoerfer |
dbd5f9 |
2 files changed, 2 insertions(+), 2 deletions(-)
|
|
Thomas Bogendoerfer |
dbd5f9 |
|
|
Thomas Bogendoerfer |
dbd5f9 |
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
|
|
Thomas Bogendoerfer |
dbd5f9 |
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
|
|
Thomas Bogendoerfer |
dbd5f9 |
@@ -3926,7 +3926,7 @@ static int bnxt_hwrm_do_send_msg(struct
|
|
Thomas Bogendoerfer |
dbd5f9 |
dma_rmb();
|
|
Thomas Bogendoerfer |
dbd5f9 |
if (*valid)
|
|
Thomas Bogendoerfer |
dbd5f9 |
break;
|
|
Thomas Bogendoerfer |
dbd5f9 |
- udelay(1);
|
|
Thomas Bogendoerfer |
dbd5f9 |
+ usleep_range(1, 5);
|
|
Thomas Bogendoerfer |
dbd5f9 |
}
|
|
Thomas Bogendoerfer |
dbd5f9 |
|
|
Thomas Bogendoerfer |
dbd5f9 |
if (j >= HWRM_VALID_BIT_DELAY_USEC) {
|
|
Thomas Bogendoerfer |
dbd5f9 |
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.h
|
|
Thomas Bogendoerfer |
dbd5f9 |
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.h
|
|
Thomas Bogendoerfer |
dbd5f9 |
@@ -582,7 +582,7 @@ struct nqe_cn {
|
|
Thomas Bogendoerfer |
dbd5f9 |
(HWRM_SHORT_TIMEOUT_COUNTER * HWRM_SHORT_MIN_TIMEOUT + \
|
|
Thomas Bogendoerfer |
dbd5f9 |
((n) - HWRM_SHORT_TIMEOUT_COUNTER) * HWRM_MIN_TIMEOUT))
|
|
Thomas Bogendoerfer |
dbd5f9 |
|
|
Thomas Bogendoerfer |
dbd5f9 |
-#define HWRM_VALID_BIT_DELAY_USEC 20
|
|
Thomas Bogendoerfer |
dbd5f9 |
+#define HWRM_VALID_BIT_DELAY_USEC 150
|
|
Thomas Bogendoerfer |
dbd5f9 |
|
|
Thomas Bogendoerfer |
dbd5f9 |
#define BNXT_HWRM_CHNL_CHIMP 0
|
|
Thomas Bogendoerfer |
dbd5f9 |
#define BNXT_HWRM_CHNL_KONG 1
|