bnx2x: Add new 57840 device IDs
authorYuval Mintz <yuvalmin@broadcom.com>
Mon, 23 Jul 2012 07:25:43 +0000 (10:25 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 23 Jul 2012 07:58:21 +0000 (00:58 -0700)
The 57840 boards come in two flavours: 2 x 20G and 4 x 10G.
To better differentiate between the two flavours, a separate device ID
was assigned to each.
The silicon default value is still the currently supported 57840 device ID
(0x168d), and since a user can damage the nvram (e.g., 'ethtool -E')
the driver will still support this device ID to allow the user to amend the
nvram back into a supported configuration.

Notice this patch contains lines longer than 80 characters (strings).

Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c

index dbe9791..77bcd4c 100644 (file)
@@ -819,8 +819,11 @@ struct bnx2x_common {
 #define CHIP_NUM_57810_MF              0x16ae
 #define CHIP_NUM_57811                 0x163d
 #define CHIP_NUM_57811_MF              0x163e
-#define CHIP_NUM_57840                 0x168d
-#define CHIP_NUM_57840_MF              0x16ab
+#define CHIP_NUM_57840_OBSOLETE        0x168d
+#define CHIP_NUM_57840_MF_OBSOLETE     0x16ab
+#define CHIP_NUM_57840_4_10            0x16a1
+#define CHIP_NUM_57840_2_20            0x16a2
+#define CHIP_NUM_57840_MF              0x16a4
 #define CHIP_IS_E1(bp)                 (CHIP_NUM(bp) == CHIP_NUM_57710)
 #define CHIP_IS_57711(bp)              (CHIP_NUM(bp) == CHIP_NUM_57711)
 #define CHIP_IS_57711E(bp)             (CHIP_NUM(bp) == CHIP_NUM_57711E)
@@ -832,8 +835,12 @@ struct bnx2x_common {
 #define CHIP_IS_57810_MF(bp)           (CHIP_NUM(bp) == CHIP_NUM_57810_MF)
 #define CHIP_IS_57811(bp)              (CHIP_NUM(bp) == CHIP_NUM_57811)
 #define CHIP_IS_57811_MF(bp)           (CHIP_NUM(bp) == CHIP_NUM_57811_MF)
-#define CHIP_IS_57840(bp)              (CHIP_NUM(bp) == CHIP_NUM_57840)
-#define CHIP_IS_57840_MF(bp)           (CHIP_NUM(bp) == CHIP_NUM_57840_MF)
+#define CHIP_IS_57840(bp)              \
+               ((CHIP_NUM(bp) == CHIP_NUM_57840_4_10) || \
+                (CHIP_NUM(bp) == CHIP_NUM_57840_2_20) || \
+                (CHIP_NUM(bp) == CHIP_NUM_57840_OBSOLETE))
+#define CHIP_IS_57840_MF(bp)   ((CHIP_NUM(bp) == CHIP_NUM_57840_MF) || \
+                                (CHIP_NUM(bp) == CHIP_NUM_57840_MF_OBSOLETE))
 #define CHIP_IS_E1H(bp)                        (CHIP_IS_57711(bp) || \
                                         CHIP_IS_57711E(bp))
 #define CHIP_IS_E2(bp)                 (CHIP_IS_57712(bp) || \
index e04b282..f4beb46 100644 (file)
@@ -1718,7 +1718,7 @@ static void bnx2x_xmac_init(struct link_params *params, u32 max_speed)
         * ports of the path
         */
 
-       if ((CHIP_NUM(bp) == CHIP_NUM_57840) &&
+       if ((CHIP_NUM(bp) == CHIP_NUM_57840_4_10) &&
            (REG_RD(bp, MISC_REG_RESET_REG_2) &
             MISC_REGISTERS_RESET_REG_2_XMAC)) {
                DP(NETIF_MSG_LINK,
index 08eca3f..9aaf863 100644 (file)
@@ -137,7 +137,10 @@ enum bnx2x_board_type {
        BCM57800_MF,
        BCM57810,
        BCM57810_MF,
-       BCM57840,
+       BCM57840_O,
+       BCM57840_4_10,
+       BCM57840_2_20,
+       BCM57840_MFO,
        BCM57840_MF,
        BCM57811,
        BCM57811_MF
@@ -157,6 +160,9 @@ static struct {
        { "Broadcom NetXtreme II BCM57810 10 Gigabit Ethernet" },
        { "Broadcom NetXtreme II BCM57810 10 Gigabit Ethernet Multi Function" },
        { "Broadcom NetXtreme II BCM57840 10/20 Gigabit Ethernet" },
+       { "Broadcom NetXtreme II BCM57840 10 Gigabit Ethernet" },
+       { "Broadcom NetXtreme II BCM57840 20 Gigabit Ethernet" },
+       { "Broadcom NetXtreme II BCM57840 10/20 Gigabit Ethernet Multi Function"},
        { "Broadcom NetXtreme II BCM57840 10/20 Gigabit Ethernet Multi Function"},
        { "Broadcom NetXtreme II BCM57811 10 Gigabit Ethernet"},
        { "Broadcom NetXtreme II BCM57811 10 Gigabit Ethernet Multi Function"},
@@ -189,8 +195,17 @@ static struct {
 #ifndef PCI_DEVICE_ID_NX2_57810_MF
 #define PCI_DEVICE_ID_NX2_57810_MF     CHIP_NUM_57810_MF
 #endif
-#ifndef PCI_DEVICE_ID_NX2_57840
-#define PCI_DEVICE_ID_NX2_57840                CHIP_NUM_57840
+#ifndef PCI_DEVICE_ID_NX2_57840_O
+#define PCI_DEVICE_ID_NX2_57840_O      CHIP_NUM_57840_OBSOLETE
+#endif
+#ifndef PCI_DEVICE_ID_NX2_57840_4_10
+#define PCI_DEVICE_ID_NX2_57840_4_10   CHIP_NUM_57840_4_10
+#endif
+#ifndef PCI_DEVICE_ID_NX2_57840_2_20
+#define PCI_DEVICE_ID_NX2_57840_2_20   CHIP_NUM_57840_2_20
+#endif
+#ifndef PCI_DEVICE_ID_NX2_57840_MFO
+#define PCI_DEVICE_ID_NX2_57840_MFO    CHIP_NUM_57840_MF_OBSOLETE
 #endif
 #ifndef PCI_DEVICE_ID_NX2_57840_MF
 #define PCI_DEVICE_ID_NX2_57840_MF     CHIP_NUM_57840_MF
@@ -211,7 +226,10 @@ static DEFINE_PCI_DEVICE_TABLE(bnx2x_pci_tbl) = {
        { PCI_VDEVICE(BROADCOM, PCI_DEVICE_ID_NX2_57800_MF), BCM57800_MF },
        { PCI_VDEVICE(BROADCOM, PCI_DEVICE_ID_NX2_57810), BCM57810 },
        { PCI_VDEVICE(BROADCOM, PCI_DEVICE_ID_NX2_57810_MF), BCM57810_MF },
-       { PCI_VDEVICE(BROADCOM, PCI_DEVICE_ID_NX2_57840), BCM57840 },
+       { PCI_VDEVICE(BROADCOM, PCI_DEVICE_ID_NX2_57840_O), BCM57840_O },
+       { PCI_VDEVICE(BROADCOM, PCI_DEVICE_ID_NX2_57840_4_10), BCM57840_4_10 },
+       { PCI_VDEVICE(BROADCOM, PCI_DEVICE_ID_NX2_57840_2_20), BCM57840_2_20 },
+       { PCI_VDEVICE(BROADCOM, PCI_DEVICE_ID_NX2_57840_MFO), BCM57840_MFO },
        { PCI_VDEVICE(BROADCOM, PCI_DEVICE_ID_NX2_57840_MF), BCM57840_MF },
        { PCI_VDEVICE(BROADCOM, PCI_DEVICE_ID_NX2_57811), BCM57811 },
        { PCI_VDEVICE(BROADCOM, PCI_DEVICE_ID_NX2_57811_MF), BCM57811_MF },
@@ -11801,7 +11819,10 @@ static int __devinit bnx2x_init_one(struct pci_dev *pdev,
        case BCM57800_MF:
        case BCM57810:
        case BCM57810_MF:
-       case BCM57840:
+       case BCM57840_O:
+       case BCM57840_4_10:
+       case BCM57840_2_20:
+       case BCM57840_MFO:
        case BCM57840_MF:
        case BCM57811:
        case BCM57811_MF: