aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/tg3.c
diff options
context:
space:
mode:
authorMatt Carlson <mcarlson@broadcom.com>2011-04-05 10:22:45 -0400
committerDavid S. Miller <davem@davemloft.net>2011-04-06 14:29:07 -0400
commit0a58d6689bb7c0d49addbf6992aa97234bcfc96c (patch)
tree652c08fd0be3596d72e49b0000fd22042aa4ca57 /drivers/net/tg3.c
parent1407deb1a99f7ec7ed5b09798b02abea5aa44128 (diff)
tg3: Reintroduce 5717_PLUS
This patch reintroduces the TG3_FLG3_5717_PLUS to identify 5717 and later devices. Signed-off-by: Matt Carlson <mcarlson@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/tg3.c')
-rw-r--r--drivers/net/tg3.c40
1 files changed, 16 insertions, 24 deletions
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 4f8976bd2b4..dc6b60b65c0 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -1042,8 +1042,7 @@ static int tg3_mdio_init(struct tg3 *tp)
1042 u32 reg; 1042 u32 reg;
1043 struct phy_device *phydev; 1043 struct phy_device *phydev;
1044 1044
1045 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || 1045 if (tp->tg3_flags3 & TG3_FLG3_5717_PLUS) {
1046 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719) {
1047 u32 is_serdes; 1046 u32 is_serdes;
1048 1047
1049 tp->phy_addr = PCI_FUNC(tp->pdev->devfn) + 1; 1048 tp->phy_addr = PCI_FUNC(tp->pdev->devfn) + 1;
@@ -1621,8 +1620,7 @@ static void tg3_phy_toggle_apd(struct tg3 *tp, bool enable)
1621 u32 reg; 1620 u32 reg;
1622 1621
1623 if (!(tp->tg3_flags2 & TG3_FLG2_5705_PLUS) || 1622 if (!(tp->tg3_flags2 & TG3_FLG2_5705_PLUS) ||
1624 ((GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || 1623 ((tp->tg3_flags3 & TG3_FLG3_5717_PLUS) &&
1625 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719) &&
1626 (tp->phy_flags & TG3_PHYFLG_MII_SERDES))) 1624 (tp->phy_flags & TG3_PHYFLG_MII_SERDES)))
1627 return; 1625 return;
1628 1626
@@ -2045,8 +2043,7 @@ static int tg3_phy_reset(struct tg3 *tp)
2045 } 2043 }
2046 } 2044 }
2047 2045
2048 if ((GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || 2046 if ((tp->tg3_flags3 & TG3_FLG3_5717_PLUS) &&
2049 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719) &&
2050 (tp->phy_flags & TG3_PHYFLG_MII_SERDES)) 2047 (tp->phy_flags & TG3_PHYFLG_MII_SERDES))
2051 return 0; 2048 return 0;
2052 2049
@@ -7671,8 +7668,7 @@ static void tg3_rings_reset(struct tg3 *tp)
7671 /* Disable all transmit rings but the first. */ 7668 /* Disable all transmit rings but the first. */
7672 if (!(tp->tg3_flags2 & TG3_FLG2_5705_PLUS)) 7669 if (!(tp->tg3_flags2 & TG3_FLG2_5705_PLUS))
7673 limit = NIC_SRAM_SEND_RCB + TG3_BDINFO_SIZE * 16; 7670 limit = NIC_SRAM_SEND_RCB + TG3_BDINFO_SIZE * 16;
7674 else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || 7671 else if (tp->tg3_flags3 & TG3_FLG3_5717_PLUS)
7675 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719)
7676 limit = NIC_SRAM_SEND_RCB + TG3_BDINFO_SIZE * 4; 7672 limit = NIC_SRAM_SEND_RCB + TG3_BDINFO_SIZE * 4;
7677 else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765) 7673 else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765)
7678 limit = NIC_SRAM_SEND_RCB + TG3_BDINFO_SIZE * 2; 7674 limit = NIC_SRAM_SEND_RCB + TG3_BDINFO_SIZE * 2;
@@ -7686,8 +7682,7 @@ static void tg3_rings_reset(struct tg3 *tp)
7686 7682
7687 7683
7688 /* Disable all receive return rings but the first. */ 7684 /* Disable all receive return rings but the first. */
7689 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || 7685 if (tp->tg3_flags3 & TG3_FLG3_5717_PLUS)
7690 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719)
7691 limit = NIC_SRAM_RCV_RET_RCB + TG3_BDINFO_SIZE * 17; 7686 limit = NIC_SRAM_RCV_RET_RCB + TG3_BDINFO_SIZE * 17;
7692 else if (!(tp->tg3_flags2 & TG3_FLG2_5705_PLUS)) 7687 else if (!(tp->tg3_flags2 & TG3_FLG2_5705_PLUS))
7693 limit = NIC_SRAM_RCV_RET_RCB + TG3_BDINFO_SIZE * 16; 7688 limit = NIC_SRAM_RCV_RET_RCB + TG3_BDINFO_SIZE * 16;
@@ -8089,8 +8084,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
8089 ((u64) tpr->rx_std_mapping >> 32)); 8084 ((u64) tpr->rx_std_mapping >> 32));
8090 tw32(RCVDBDI_STD_BD + TG3_BDINFO_HOST_ADDR + TG3_64BIT_REG_LOW, 8085 tw32(RCVDBDI_STD_BD + TG3_BDINFO_HOST_ADDR + TG3_64BIT_REG_LOW,
8091 ((u64) tpr->rx_std_mapping & 0xffffffff)); 8086 ((u64) tpr->rx_std_mapping & 0xffffffff));
8092 if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5717 && 8087 if (!(tp->tg3_flags3 & TG3_FLG3_5717_PLUS))
8093 GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5719)
8094 tw32(RCVDBDI_STD_BD + TG3_BDINFO_NIC_ADDR, 8088 tw32(RCVDBDI_STD_BD + TG3_BDINFO_NIC_ADDR,
8095 NIC_SRAM_RX_BUFFER_DESC); 8089 NIC_SRAM_RX_BUFFER_DESC);
8096 8090
@@ -10848,8 +10842,7 @@ static int tg3_test_memory(struct tg3 *tp)
10848 int err = 0; 10842 int err = 0;
10849 int i; 10843 int i;
10850 10844
10851 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || 10845 if (tp->tg3_flags3 & TG3_FLG3_5717_PLUS)
10852 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719)
10853 mem_tbl = mem_tbl_5717; 10846 mem_tbl = mem_tbl_5717;
10854 else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765) 10847 else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765)
10855 mem_tbl = mem_tbl_57765; 10848 mem_tbl = mem_tbl_57765;
@@ -11930,8 +11923,7 @@ static void __devinit tg3_nvram_init(struct tg3 *tp)
11930 else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780 || 11923 else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780 ||
11931 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765) 11924 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765)
11932 tg3_get_57780_nvram_info(tp); 11925 tg3_get_57780_nvram_info(tp);
11933 else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || 11926 else if (tp->tg3_flags3 & TG3_FLG3_5717_PLUS)
11934 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719)
11935 tg3_get_5717_nvram_info(tp); 11927 tg3_get_5717_nvram_info(tp);
11936 else 11928 else
11937 tg3_get_nvram_info(tp); 11929 tg3_get_nvram_info(tp);
@@ -13333,8 +13325,11 @@ static int __devinit tg3_get_invariants(struct tg3 *tp)
13333 tp->pdev_peer = tg3_find_peer(tp); 13325 tp->pdev_peer = tg3_find_peer(tp);
13334 13326
13335 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || 13327 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 ||
13336 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 || 13328 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719)
13337 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765) 13329 tp->tg3_flags3 |= TG3_FLG3_5717_PLUS;
13330
13331 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765 ||
13332 (tp->tg3_flags3 & TG3_FLG3_5717_PLUS))
13338 tp->tg3_flags3 |= TG3_FLG3_57765_PLUS; 13333 tp->tg3_flags3 |= TG3_FLG3_57765_PLUS;
13339 13334
13340 /* Intentionally exclude ASIC_REV_5906 */ 13335 /* Intentionally exclude ASIC_REV_5906 */
@@ -13427,8 +13422,7 @@ static int __devinit tg3_get_invariants(struct tg3 *tp)
13427 tp->tg3_flags3 |= TG3_FLG3_40BIT_DMA_LIMIT_BUG; 13422 tp->tg3_flags3 |= TG3_FLG3_40BIT_DMA_LIMIT_BUG;
13428 } 13423 }
13429 13424
13430 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || 13425 if (tp->tg3_flags3 & TG3_FLG3_5717_PLUS)
13431 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719)
13432 tp->tg3_flags3 |= TG3_FLG3_LRG_PROD_RING_CAP; 13426 tp->tg3_flags3 |= TG3_FLG3_LRG_PROD_RING_CAP;
13433 13427
13434 if ((tp->tg3_flags3 & TG3_FLG3_57765_PLUS) && 13428 if ((tp->tg3_flags3 & TG3_FLG3_57765_PLUS) &&
@@ -13962,8 +13956,7 @@ static int __devinit tg3_get_device_address(struct tg3 *tp)
13962 tw32_f(NVRAM_CMD, NVRAM_CMD_RESET); 13956 tw32_f(NVRAM_CMD, NVRAM_CMD_RESET);
13963 else 13957 else
13964 tg3_nvram_unlock(tp); 13958 tg3_nvram_unlock(tp);
13965 } else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || 13959 } else if (tp->tg3_flags3 & TG3_FLG3_5717_PLUS) {
13966 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719) {
13967 if (PCI_FUNC(tp->pdev->devfn) & 1) 13960 if (PCI_FUNC(tp->pdev->devfn) & 1)
13968 mac_offset = 0xcc; 13961 mac_offset = 0xcc;
13969 if (PCI_FUNC(tp->pdev->devfn) > 1) 13962 if (PCI_FUNC(tp->pdev->devfn) > 1)
@@ -14760,8 +14753,7 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
14760 } 14753 }
14761 14754
14762 if ((tp->tg3_flags3 & TG3_FLG3_5755_PLUS) && 14755 if ((tp->tg3_flags3 & TG3_FLG3_5755_PLUS) &&
14763 GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5717 && 14756 !(tp->tg3_flags3 & TG3_FLG3_5717_PLUS))
14764 GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5719)
14765 dev->netdev_ops = &tg3_netdev_ops; 14757 dev->netdev_ops = &tg3_netdev_ops;
14766 else 14758 else
14767 dev->netdev_ops = &tg3_netdev_ops_dma_bug; 14759 dev->netdev_ops = &tg3_netdev_ops_dma_bug;