bnxt_en: Disable workaround for lost interrupts on 575XX B0 and newer chips.
authorMichael Chan <michael.chan@broadcom.com>
Mon, 27 Jan 2020 09:56:19 +0000 (04:56 -0500)
committerDavid S. Miller <davem@davemloft.net>
Mon, 27 Jan 2020 10:33:28 +0000 (11:33 +0100)
The hardware bug has been fixed on B0 and newer chips, so disable the
workaround on these chips.

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
drivers/net/ethernet/broadcom/bnxt/bnxt.h

index 7d5367277a9d2d9e0ae8bbb027a284444ba76fb7..676f4da23c951548fbf52ecd73f1c2dd1288557d 100644 (file)
@@ -7288,6 +7288,7 @@ static int bnxt_hwrm_ver_get(struct bnxt *bp)
                bp->hwrm_max_ext_req_len = HWRM_MAX_REQ_LEN;
 
        bp->chip_num = le16_to_cpu(resp->chip_num);
+       bp->chip_rev = resp->chip_rev;
        if (bp->chip_num == CHIP_NUM_58700 && !resp->chip_rev &&
            !resp->chip_metal)
                bp->flags |= BNXT_FLAG_CHIP_NITRO_A0;
@@ -10057,7 +10058,8 @@ static void bnxt_timer(struct timer_list *t)
                }
        }
 
-       if ((bp->flags & BNXT_FLAG_CHIP_P5) && netif_carrier_ok(dev)) {
+       if ((bp->flags & BNXT_FLAG_CHIP_P5) && !bp->chip_rev &&
+           netif_carrier_ok(dev)) {
                set_bit(BNXT_RING_COAL_NOW_SP_EVENT, &bp->sp_event);
                bnxt_queue_sp_work(bp);
        }
index f14335433a64db8763bfc1a2d50c39973b33c1f0..cda434b5fa665a068da92a0c8f5a0475a42b3f03 100644 (file)
@@ -1457,6 +1457,8 @@ struct bnxt {
 #define CHIP_NUM_58804         0xd804
 #define CHIP_NUM_58808         0xd808
 
+       u8                      chip_rev;
+
 #define BNXT_CHIP_NUM_5730X(chip_num)          \
        ((chip_num) >= CHIP_NUM_57301 &&        \
         (chip_num) <= CHIP_NUM_57304)