diff options
Diffstat (limited to 'drivers/net/bnx2.c')
-rw-r--r-- | drivers/net/bnx2.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c index 92897efbc263..157463b4fa9f 100644 --- a/drivers/net/bnx2.c +++ b/drivers/net/bnx2.c | |||
@@ -86,6 +86,7 @@ typedef enum { | |||
86 | NC370F, | 86 | NC370F, |
87 | BCM5708, | 87 | BCM5708, |
88 | BCM5708S, | 88 | BCM5708S, |
89 | BCM5709, | ||
89 | } board_t; | 90 | } board_t; |
90 | 91 | ||
91 | /* indexed by board_t, above */ | 92 | /* indexed by board_t, above */ |
@@ -99,6 +100,7 @@ static const struct { | |||
99 | { "HP NC370F Multifunction Gigabit Server Adapter" }, | 100 | { "HP NC370F Multifunction Gigabit Server Adapter" }, |
100 | { "Broadcom NetXtreme II BCM5708 1000Base-T" }, | 101 | { "Broadcom NetXtreme II BCM5708 1000Base-T" }, |
101 | { "Broadcom NetXtreme II BCM5708 1000Base-SX" }, | 102 | { "Broadcom NetXtreme II BCM5708 1000Base-SX" }, |
103 | { "Broadcom NetXtreme II BCM5709 1000Base-T" }, | ||
102 | }; | 104 | }; |
103 | 105 | ||
104 | static struct pci_device_id bnx2_pci_tbl[] = { | 106 | static struct pci_device_id bnx2_pci_tbl[] = { |
@@ -116,6 +118,8 @@ static struct pci_device_id bnx2_pci_tbl[] = { | |||
116 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, BCM5706S }, | 118 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, BCM5706S }, |
117 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_NX2_5708S, | 119 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_NX2_5708S, |
118 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, BCM5708S }, | 120 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, BCM5708S }, |
121 | { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_NX2_5709, | ||
122 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, BCM5709 }, | ||
119 | { 0, } | 123 | { 0, } |
120 | }; | 124 | }; |
121 | 125 | ||
@@ -5854,10 +5858,15 @@ bnx2_init_board(struct pci_dev *pdev, struct net_device *dev) | |||
5854 | bp->phy_addr = 1; | 5858 | bp->phy_addr = 1; |
5855 | 5859 | ||
5856 | /* Disable WOL support if we are running on a SERDES chip. */ | 5860 | /* Disable WOL support if we are running on a SERDES chip. */ |
5857 | if (CHIP_BOND_ID(bp) & CHIP_BOND_ID_SERDES_BIT) { | 5861 | if (CHIP_NUM(bp) == CHIP_NUM_5709) { |
5862 | if (CHIP_BOND_ID(bp) != BNX2_MISC_DUAL_MEDIA_CTRL_BOND_ID_C) | ||
5863 | bp->phy_flags |= PHY_SERDES_FLAG; | ||
5864 | } else if (CHIP_BOND_ID(bp) & CHIP_BOND_ID_SERDES_BIT) | ||
5858 | bp->phy_flags |= PHY_SERDES_FLAG; | 5865 | bp->phy_flags |= PHY_SERDES_FLAG; |
5866 | |||
5867 | if (bp->phy_flags & PHY_SERDES_FLAG) { | ||
5859 | bp->flags |= NO_WOL_FLAG; | 5868 | bp->flags |= NO_WOL_FLAG; |
5860 | if (CHIP_NUM(bp) == CHIP_NUM_5708) { | 5869 | if (CHIP_NUM(bp) != CHIP_NUM_5706) { |
5861 | bp->phy_addr = 2; | 5870 | bp->phy_addr = 2; |
5862 | reg = REG_RD_IND(bp, bp->shmem_base + | 5871 | reg = REG_RD_IND(bp, bp->shmem_base + |
5863 | BNX2_SHARED_HW_CFG_CONFIG); | 5872 | BNX2_SHARED_HW_CFG_CONFIG); |