]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
bnxt_en: Define the supported chip numbers.
authorMichael Chan <michael.chan@broadcom.com>
Mon, 13 Jun 2016 06:25:33 +0000 (02:25 -0400)
committerChuck Anderson <chuck.anderson@oracle.com>
Thu, 7 Jul 2016 00:37:30 +0000 (17:37 -0700)
Orabug: 23221795

Define all the supported chip numbers and chip categories.  Store the
chip_num returned by firmware.  If the call to get the version and chip
number fails, we should abort.

Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 659c805cc01b3c5a6d972db0408164371a2bab4b)
Signed-off-by: Brian Maly <brian.maly@oracle.com>
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/broadcom/bnxt/bnxt.h

index 3423a8989dd4c5d1e95806f14c13177eda6d0eaf..15c7fd011f9732c302d8295fd07afc82b62a315e 100644 (file)
@@ -4054,6 +4054,8 @@ static int bnxt_hwrm_ver_get(struct bnxt *bp)
        if (resp->hwrm_intf_maj >= 1)
                bp->hwrm_max_req_len = le16_to_cpu(resp->max_req_win_len);
 
+       bp->chip_num = le16_to_cpu(resp->chip_num);
+
 hwrm_ver_get_exit:
        mutex_unlock(&bp->hwrm_cmd_lock);
        return rc;
@@ -6468,7 +6470,9 @@ static int bnxt_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
                goto init_err;
 
        mutex_init(&bp->hwrm_cmd_lock);
-       bnxt_hwrm_ver_get(bp);
+       rc = bnxt_hwrm_ver_get(bp);
+       if (rc)
+               goto init_err;
 
        rc = bnxt_hwrm_func_drv_rgtr(bp);
        if (rc)
index ec18a07f90b4cc328e2767b4d00be1e9d150e602..b754be60f829864eab320d231c7d92a1410e21c0 100644 (file)
@@ -873,6 +873,44 @@ struct bnxt {
        void __iomem            *bar2;
 
        u32                     reg_base;
+       u16                     chip_num;
+#define CHIP_NUM_57301         0x16c8
+#define CHIP_NUM_57302         0x16c9
+#define CHIP_NUM_57304         0x16ca
+#define CHIP_NUM_57402         0x16d0
+#define CHIP_NUM_57404         0x16d1
+#define CHIP_NUM_57406         0x16d2
+
+#define CHIP_NUM_57311         0x16ce
+#define CHIP_NUM_57312         0x16cf
+#define CHIP_NUM_57314         0x16df
+#define CHIP_NUM_57412         0x16d6
+#define CHIP_NUM_57414         0x16d7
+#define CHIP_NUM_57416         0x16d8
+#define CHIP_NUM_57417         0x16d9
+
+#define BNXT_CHIP_NUM_5730X(chip_num)          \
+       ((chip_num) >= CHIP_NUM_57301 &&        \
+        (chip_num) <= CHIP_NUM_57304)
+
+#define BNXT_CHIP_NUM_5740X(chip_num)          \
+       ((chip_num) >= CHIP_NUM_57402 &&        \
+        (chip_num) <= CHIP_NUM_57406)
+
+#define BNXT_CHIP_NUM_5731X(chip_num)          \
+       ((chip_num) == CHIP_NUM_57311 ||        \
+        (chip_num) == CHIP_NUM_57312 ||        \
+        (chip_num) == CHIP_NUM_57314)
+
+#define BNXT_CHIP_NUM_5741X(chip_num)          \
+       ((chip_num) >= CHIP_NUM_57412 &&        \
+        (chip_num) <= CHIP_NUM_57417)
+
+#define BNXT_CHIP_NUM_57X0X(chip_num)          \
+       (BNXT_CHIP_NUM_5730X(chip_num) || BNXT_CHIP_NUM_5740X(chip_num))
+
+#define BNXT_CHIP_NUM_57X1X(chip_num)          \
+       (BNXT_CHIP_NUM_5731X(chip_num) || BNXT_CHIP_NUM_5741X(chip_num))
 
        struct net_device       *dev;
        struct pci_dev          *pdev;