bnxt_en: Suppress all error messages in hwrm_do_send_msg() in silent mode.
authorMichael Chan <michael.chan@broadcom.com>
Fri, 30 Aug 2019 03:54:48 +0000 (23:54 -0400)
committerDavid S. Miller <davem@davemloft.net>
Fri, 30 Aug 2019 21:02:18 +0000 (14:02 -0700)
If the silent parameter is set, suppress all messages when there is
no response from firmware.  When polling for firmware to come out of
reset, no response may be normal and we want to suppress the error
messages.  Also, don't poll for the firmware DMA response if Bus Master
is disabled.  This is in preparation for error recovery when firmware
may be in error or reset state or Bus Master is disabled.

Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnxt/bnxt.c

index b9eb24e..3e48bcb 100644 (file)
@@ -4155,6 +4155,9 @@ static int bnxt_hwrm_do_send_msg(struct bnxt *bp, void *msg, u32 msg_len,
        /* Ring channel doorbell */
        writel(1, bp->bar0 + doorbell_offset);
 
+       if (!pci_is_enabled(bp->pdev))
+               return 0;
+
        if (!timeout)
                timeout = DFLT_HWRM_CMD_TIMEOUT;
        /* convert timeout to usec */
@@ -4186,8 +4189,9 @@ static int bnxt_hwrm_do_send_msg(struct bnxt *bp, void *msg, u32 msg_len,
                }
 
                if (bp->hwrm_intr_seq_id != (u16)~seq_id) {
-                       netdev_err(bp->dev, "Resp cmpl intr err msg: 0x%x\n",
-                                  le16_to_cpu(req->req_type));
+                       if (!silent)
+                               netdev_err(bp->dev, "Resp cmpl intr err msg: 0x%x\n",
+                                          le16_to_cpu(req->req_type));
                        return -EBUSY;
                }
                len = (le32_to_cpu(*resp_len) & HWRM_RESP_LEN_MASK) >>
@@ -4212,10 +4216,11 @@ static int bnxt_hwrm_do_send_msg(struct bnxt *bp, void *msg, u32 msg_len,
                }
 
                if (i >= tmo_count) {
-                       netdev_err(bp->dev, "Error (timeout: %d) msg {0x%x 0x%x} len:%d\n",
-                                  HWRM_TOTAL_TIMEOUT(i),
-                                  le16_to_cpu(req->req_type),
-                                  le16_to_cpu(req->seq_id), len);
+                       if (!silent)
+                               netdev_err(bp->dev, "Error (timeout: %d) msg {0x%x 0x%x} len:%d\n",
+                                          HWRM_TOTAL_TIMEOUT(i),
+                                          le16_to_cpu(req->req_type),
+                                          le16_to_cpu(req->seq_id), len);
                        return -EBUSY;
                }
 
@@ -4230,10 +4235,12 @@ static int bnxt_hwrm_do_send_msg(struct bnxt *bp, void *msg, u32 msg_len,
                }
 
                if (j >= HWRM_VALID_BIT_DELAY_USEC) {
-                       netdev_err(bp->dev, "Error (timeout: %d) msg {0x%x 0x%x} len:%d v:%d\n",
-                                  HWRM_TOTAL_TIMEOUT(i),
-                                  le16_to_cpu(req->req_type),
-                                  le16_to_cpu(req->seq_id), len, *valid);
+                       if (!silent)
+                               netdev_err(bp->dev, "Error (timeout: %d) msg {0x%x 0x%x} len:%d v:%d\n",
+                                          HWRM_TOTAL_TIMEOUT(i),
+                                          le16_to_cpu(req->req_type),
+                                          le16_to_cpu(req->seq_id), len,
+                                          *valid);
                        return -EBUSY;
                }
        }