aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/ethernet/broadcom/tg3.c58
-rw-r--r--drivers/net/ethernet/broadcom/tg3.h27
2 files changed, 58 insertions, 27 deletions
diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
index 9c9a4b4a9f6..90ef94292a9 100644
--- a/drivers/net/ethernet/broadcom/tg3.c
+++ b/drivers/net/ethernet/broadcom/tg3.c
@@ -199,6 +199,7 @@ static inline void _tg3_flag_clear(enum TG3_FLAGS flag, unsigned long *bits)
199 199
200/* minimum number of free TX descriptors required to wake up TX process */ 200/* minimum number of free TX descriptors required to wake up TX process */
201#define TG3_TX_WAKEUP_THRESH(tnapi) ((tnapi)->tx_pending / 4) 201#define TG3_TX_WAKEUP_THRESH(tnapi) ((tnapi)->tx_pending / 4)
202#define TG3_TX_BD_DMA_MAX_2K 2048
202#define TG3_TX_BD_DMA_MAX_4K 4096 203#define TG3_TX_BD_DMA_MAX_4K 4096
203 204
204#define TG3_RAW_IP_ALIGN 2 205#define TG3_RAW_IP_ALIGN 2
@@ -2154,7 +2155,7 @@ static void tg3_phy_eee_enable(struct tg3 *tp)
2154 if (tp->link_config.active_speed == SPEED_1000 && 2155 if (tp->link_config.active_speed == SPEED_1000 &&
2155 (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || 2156 (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 ||
2156 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 || 2157 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 ||
2157 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765) && 2158 tg3_flag(tp, 57765_CLASS)) &&
2158 !TG3_PHY_AUXCTL_SMDSP_ENABLE(tp)) { 2159 !TG3_PHY_AUXCTL_SMDSP_ENABLE(tp)) {
2159 val = MII_TG3_DSP_TAP26_ALNOKO | 2160 val = MII_TG3_DSP_TAP26_ALNOKO |
2160 MII_TG3_DSP_TAP26_RMRXSTO; 2161 MII_TG3_DSP_TAP26_RMRXSTO;
@@ -2673,8 +2674,7 @@ static void tg3_frob_aux_power(struct tg3 *tp, bool include_wol)
2673 bool need_vaux = false; 2674 bool need_vaux = false;
2674 2675
2675 /* The GPIOs do something completely different on 57765. */ 2676 /* The GPIOs do something completely different on 57765. */
2676 if (!tg3_flag(tp, IS_NIC) || 2677 if (!tg3_flag(tp, IS_NIC) || tg3_flag(tp, 57765_CLASS))
2677 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765)
2678 return; 2678 return;
2679 2679
2680 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || 2680 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 ||
@@ -3631,6 +3631,7 @@ static int tg3_phy_autoneg_cfg(struct tg3 *tp, u32 advertise, u32 flowctrl)
3631 switch (GET_ASIC_REV(tp->pci_chip_rev_id)) { 3631 switch (GET_ASIC_REV(tp->pci_chip_rev_id)) {
3632 case ASIC_REV_5717: 3632 case ASIC_REV_5717:
3633 case ASIC_REV_57765: 3633 case ASIC_REV_57765:
3634 case ASIC_REV_57766:
3634 case ASIC_REV_5719: 3635 case ASIC_REV_5719:
3635 /* If we advertised any eee advertisements above... */ 3636 /* If we advertised any eee advertisements above... */
3636 if (val) 3637 if (val)
@@ -8081,7 +8082,7 @@ static void tg3_rings_reset(struct tg3 *tp)
8081 limit = NIC_SRAM_SEND_RCB + TG3_BDINFO_SIZE * 16; 8082 limit = NIC_SRAM_SEND_RCB + TG3_BDINFO_SIZE * 16;
8082 else if (tg3_flag(tp, 5717_PLUS)) 8083 else if (tg3_flag(tp, 5717_PLUS))
8083 limit = NIC_SRAM_SEND_RCB + TG3_BDINFO_SIZE * 4; 8084 limit = NIC_SRAM_SEND_RCB + TG3_BDINFO_SIZE * 4;
8084 else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765) 8085 else if (tg3_flag(tp, 57765_CLASS))
8085 limit = NIC_SRAM_SEND_RCB + TG3_BDINFO_SIZE * 2; 8086 limit = NIC_SRAM_SEND_RCB + TG3_BDINFO_SIZE * 2;
8086 else 8087 else
8087 limit = NIC_SRAM_SEND_RCB + TG3_BDINFO_SIZE; 8088 limit = NIC_SRAM_SEND_RCB + TG3_BDINFO_SIZE;
@@ -8098,7 +8099,7 @@ static void tg3_rings_reset(struct tg3 *tp)
8098 else if (!tg3_flag(tp, 5705_PLUS)) 8099 else if (!tg3_flag(tp, 5705_PLUS))
8099 limit = NIC_SRAM_RCV_RET_RCB + TG3_BDINFO_SIZE * 16; 8100 limit = NIC_SRAM_RCV_RET_RCB + TG3_BDINFO_SIZE * 16;
8100 else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755 || 8101 else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755 ||
8101 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765) 8102 tg3_flag(tp, 57765_CLASS))
8102 limit = NIC_SRAM_RCV_RET_RCB + TG3_BDINFO_SIZE * 4; 8103 limit = NIC_SRAM_RCV_RET_RCB + TG3_BDINFO_SIZE * 4;
8103 else 8104 else
8104 limit = NIC_SRAM_RCV_RET_RCB + TG3_BDINFO_SIZE; 8105 limit = NIC_SRAM_RCV_RET_RCB + TG3_BDINFO_SIZE;
@@ -8342,7 +8343,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
8342 tw32(GRC_MODE, grc_mode); 8343 tw32(GRC_MODE, grc_mode);
8343 } 8344 }
8344 8345
8345 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765) { 8346 if (tg3_flag(tp, 57765_CLASS)) {
8346 if (tp->pci_chip_rev_id == CHIPREV_ID_57765_A0) { 8347 if (tp->pci_chip_rev_id == CHIPREV_ID_57765_A0) {
8347 u32 grc_mode = tr32(GRC_MODE); 8348 u32 grc_mode = tr32(GRC_MODE);
8348 8349
@@ -8430,7 +8431,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
8430 ~DMA_RWCTRL_DIS_CACHE_ALIGNMENT; 8431 ~DMA_RWCTRL_DIS_CACHE_ALIGNMENT;
8431 if (tp->pci_chip_rev_id == CHIPREV_ID_57765_A0) 8432 if (tp->pci_chip_rev_id == CHIPREV_ID_57765_A0)
8432 val &= ~DMA_RWCTRL_CRDRDR_RDMA_MRRS_MSK; 8433 val &= ~DMA_RWCTRL_CRDRDR_RDMA_MRRS_MSK;
8433 if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_57765 && 8434 if (!tg3_flag(tp, 57765_CLASS) &&
8434 GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5717) 8435 GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5717)
8435 val |= DMA_RWCTRL_TAGGED_STAT_WA; 8436 val |= DMA_RWCTRL_TAGGED_STAT_WA;
8436 tw32(TG3PCI_DMA_RW_CTRL, val | tp->dma_rwctrl); 8437 tw32(TG3PCI_DMA_RW_CTRL, val | tp->dma_rwctrl);
@@ -8577,7 +8578,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
8577 tw32(RCVDBDI_JUMBO_BD + TG3_BDINFO_MAXLEN_FLAGS, 8578 tw32(RCVDBDI_JUMBO_BD + TG3_BDINFO_MAXLEN_FLAGS,
8578 val | BDINFO_FLAGS_USE_EXT_RECV); 8579 val | BDINFO_FLAGS_USE_EXT_RECV);
8579 if (!tg3_flag(tp, USE_JUMBO_BDFLAG) || 8580 if (!tg3_flag(tp, USE_JUMBO_BDFLAG) ||
8580 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765) 8581 tg3_flag(tp, 57765_CLASS))
8581 tw32(RCVDBDI_JUMBO_BD + TG3_BDINFO_NIC_ADDR, 8582 tw32(RCVDBDI_JUMBO_BD + TG3_BDINFO_NIC_ADDR,
8582 NIC_SRAM_RX_JUMBO_BUFFER_DESC); 8583 NIC_SRAM_RX_JUMBO_BUFFER_DESC);
8583 } else { 8584 } else {
@@ -8663,6 +8664,9 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
8663 if (tg3_flag(tp, PCI_EXPRESS)) 8664 if (tg3_flag(tp, PCI_EXPRESS))
8664 rdmac_mode |= RDMAC_MODE_FIFO_LONG_BURST; 8665 rdmac_mode |= RDMAC_MODE_FIFO_LONG_BURST;
8665 8666
8667 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57766)
8668 rdmac_mode |= RDMAC_MODE_JMB_2K_MMRR;
8669
8666 if (tg3_flag(tp, HW_TSO_1) || 8670 if (tg3_flag(tp, HW_TSO_1) ||
8667 tg3_flag(tp, HW_TSO_2) || 8671 tg3_flag(tp, HW_TSO_2) ||
8668 tg3_flag(tp, HW_TSO_3)) 8672 tg3_flag(tp, HW_TSO_3))
@@ -9004,7 +9008,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
9004 /* Prevent chip from dropping frames when flow control 9008 /* Prevent chip from dropping frames when flow control
9005 * is enabled. 9009 * is enabled.
9006 */ 9010 */
9007 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765) 9011 if (tg3_flag(tp, 57765_CLASS))
9008 val = 1; 9012 val = 1;
9009 else 9013 else
9010 val = 2; 9014 val = 2;
@@ -9219,7 +9223,7 @@ static void tg3_timer(unsigned long __opaque)
9219 spin_lock(&tp->lock); 9223 spin_lock(&tp->lock);
9220 9224
9221 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || 9225 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 ||
9222 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765) 9226 tg3_flag(tp, 57765_CLASS))
9223 tg3_chk_missed_msi(tp); 9227 tg3_chk_missed_msi(tp);
9224 9228
9225 if (!tg3_flag(tp, TAGGED_STATUS)) { 9229 if (!tg3_flag(tp, TAGGED_STATUS)) {
@@ -9702,8 +9706,8 @@ static int tg3_open(struct net_device *dev)
9702 tg3_free_rings(tp); 9706 tg3_free_rings(tp);
9703 } else { 9707 } else {
9704 if (tg3_flag(tp, TAGGED_STATUS) && 9708 if (tg3_flag(tp, TAGGED_STATUS) &&
9705 GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5717 && 9709 GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5717 &&
9706 GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_57765) 9710 !tg3_flag(tp, 57765_CLASS))
9707 tp->timer_offset = HZ; 9711 tp->timer_offset = HZ;
9708 else 9712 else
9709 tp->timer_offset = HZ / 10; 9713 tp->timer_offset = HZ / 10;
@@ -11358,7 +11362,7 @@ static int tg3_test_memory(struct tg3 *tp)
11358 11362
11359 if (tg3_flag(tp, 5717_PLUS)) 11363 if (tg3_flag(tp, 5717_PLUS))
11360 mem_tbl = mem_tbl_5717; 11364 mem_tbl = mem_tbl_5717;
11361 else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765) 11365 else if (tg3_flag(tp, 57765_CLASS))
11362 mem_tbl = mem_tbl_57765; 11366 mem_tbl = mem_tbl_57765;
11363 else if (tg3_flag(tp, 5755_PLUS)) 11367 else if (tg3_flag(tp, 5755_PLUS))
11364 mem_tbl = mem_tbl_5755; 11368 mem_tbl = mem_tbl_5755;
@@ -12619,7 +12623,7 @@ static void __devinit tg3_nvram_init(struct tg3 *tp)
12619 else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) 12623 else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906)
12620 tg3_get_5906_nvram_info(tp); 12624 tg3_get_5906_nvram_info(tp);
12621 else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780 || 12625 else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780 ||
12622 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765) 12626 tg3_flag(tp, 57765_CLASS))
12623 tg3_get_57780_nvram_info(tp); 12627 tg3_get_57780_nvram_info(tp);
12624 else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || 12628 else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 ||
12625 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719) 12629 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719)
@@ -13463,6 +13467,17 @@ out_no_vpd:
13463 strcpy(tp->board_part_number, "BCM57795"); 13467 strcpy(tp->board_part_number, "BCM57795");
13464 else 13468 else
13465 goto nomatch; 13469 goto nomatch;
13470 } else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57766) {
13471 if (tp->pdev->device == TG3PCI_DEVICE_TIGON3_57762)
13472 strcpy(tp->board_part_number, "BCM57762");
13473 else if (tp->pdev->device == TG3PCI_DEVICE_TIGON3_57766)
13474 strcpy(tp->board_part_number, "BCM57766");
13475 else if (tp->pdev->device == TG3PCI_DEVICE_TIGON3_57782)
13476 strcpy(tp->board_part_number, "BCM57782");
13477 else if (tp->pdev->device == TG3PCI_DEVICE_TIGON3_57786)
13478 strcpy(tp->board_part_number, "BCM57786");
13479 else
13480 goto nomatch;
13466 } else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { 13481 } else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) {
13467 strcpy(tp->board_part_number, "BCM95906"); 13482 strcpy(tp->board_part_number, "BCM95906");
13468 } else { 13483 } else {
@@ -13801,7 +13816,11 @@ static int __devinit tg3_get_invariants(struct tg3 *tp)
13801 tp->pdev->device == TG3PCI_DEVICE_TIGON3_57761 || 13816 tp->pdev->device == TG3PCI_DEVICE_TIGON3_57761 ||
13802 tp->pdev->device == TG3PCI_DEVICE_TIGON3_57765 || 13817 tp->pdev->device == TG3PCI_DEVICE_TIGON3_57765 ||
13803 tp->pdev->device == TG3PCI_DEVICE_TIGON3_57791 || 13818 tp->pdev->device == TG3PCI_DEVICE_TIGON3_57791 ||
13804 tp->pdev->device == TG3PCI_DEVICE_TIGON3_57795) 13819 tp->pdev->device == TG3PCI_DEVICE_TIGON3_57795 ||
13820 tp->pdev->device == TG3PCI_DEVICE_TIGON3_57762 ||
13821 tp->pdev->device == TG3PCI_DEVICE_TIGON3_57766 ||
13822 tp->pdev->device == TG3PCI_DEVICE_TIGON3_57782 ||
13823 tp->pdev->device == TG3PCI_DEVICE_TIGON3_57786)
13805 pci_read_config_dword(tp->pdev, 13824 pci_read_config_dword(tp->pdev,
13806 TG3PCI_GEN15_PRODID_ASICREV, 13825 TG3PCI_GEN15_PRODID_ASICREV,
13807 &prod_id_asic_rev); 13826 &prod_id_asic_rev);
@@ -13948,7 +13967,10 @@ static int __devinit tg3_get_invariants(struct tg3 *tp)
13948 tg3_flag_set(tp, 5717_PLUS); 13967 tg3_flag_set(tp, 5717_PLUS);
13949 13968
13950 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765 || 13969 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765 ||
13951 tg3_flag(tp, 5717_PLUS)) 13970 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57766)
13971 tg3_flag_set(tp, 57765_CLASS);
13972
13973 if (tg3_flag(tp, 57765_CLASS) || tg3_flag(tp, 5717_PLUS))
13952 tg3_flag_set(tp, 57765_PLUS); 13974 tg3_flag_set(tp, 57765_PLUS);
13953 13975
13954 /* Intentionally exclude ASIC_REV_5906 */ 13976 /* Intentionally exclude ASIC_REV_5906 */
@@ -14042,6 +14064,8 @@ static int __devinit tg3_get_invariants(struct tg3 *tp)
14042 14064
14043 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719) 14065 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719)
14044 tp->dma_limit = TG3_TX_BD_DMA_MAX_4K; 14066 tp->dma_limit = TG3_TX_BD_DMA_MAX_4K;
14067 else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57766)
14068 tp->dma_limit = TG3_TX_BD_DMA_MAX_2K;
14045 14069
14046 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 || 14070 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 ||
14047 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 || 14071 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719 ||
@@ -14325,7 +14349,7 @@ static int __devinit tg3_get_invariants(struct tg3 *tp)
14325 14349
14326 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755 || 14350 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755 ||
14327 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780 || 14351 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57780 ||
14328 GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_57765) 14352 tg3_flag(tp, 57765_CLASS))
14329 tp->grc_local_ctrl |= GRC_LCLCTRL_GPIO_UART_SEL; 14353 tp->grc_local_ctrl |= GRC_LCLCTRL_GPIO_UART_SEL;
14330 14354
14331 if (tp->pdev->device == PCI_DEVICE_ID_TIGON3_5761 || 14355 if (tp->pdev->device == PCI_DEVICE_ID_TIGON3_5761 ||
diff --git a/drivers/net/ethernet/broadcom/tg3.h b/drivers/net/ethernet/broadcom/tg3.h
index 2ba5be16575..a4b1419e0cc 100644
--- a/drivers/net/ethernet/broadcom/tg3.h
+++ b/drivers/net/ethernet/broadcom/tg3.h
@@ -57,6 +57,10 @@
57#define TG3PCI_DEVICE_TIGON3_57795 0x16b6 57#define TG3PCI_DEVICE_TIGON3_57795 0x16b6
58#define TG3PCI_DEVICE_TIGON3_5719 0x1657 58#define TG3PCI_DEVICE_TIGON3_5719 0x1657
59#define TG3PCI_DEVICE_TIGON3_5720 0x165f 59#define TG3PCI_DEVICE_TIGON3_5720 0x165f
60#define TG3PCI_DEVICE_TIGON3_57762 0x1682
61#define TG3PCI_DEVICE_TIGON3_57766 0x1686
62#define TG3PCI_DEVICE_TIGON3_57786 0x16b3
63#define TG3PCI_DEVICE_TIGON3_57782 0x16b7
60/* 0x04 --> 0x2c unused */ 64/* 0x04 --> 0x2c unused */
61#define TG3PCI_SUBVENDOR_ID_BROADCOM PCI_VENDOR_ID_BROADCOM 65#define TG3PCI_SUBVENDOR_ID_BROADCOM PCI_VENDOR_ID_BROADCOM
62#define TG3PCI_SUBDEVICE_ID_BROADCOM_95700A6 0x1644 66#define TG3PCI_SUBDEVICE_ID_BROADCOM_95700A6 0x1644
@@ -168,6 +172,7 @@
168#define ASIC_REV_57765 0x57785 172#define ASIC_REV_57765 0x57785
169#define ASIC_REV_5719 0x5719 173#define ASIC_REV_5719 0x5719
170#define ASIC_REV_5720 0x5720 174#define ASIC_REV_5720 0x5720
175#define ASIC_REV_57766 0x57766
171#define GET_CHIP_REV(CHIP_REV_ID) ((CHIP_REV_ID) >> 8) 176#define GET_CHIP_REV(CHIP_REV_ID) ((CHIP_REV_ID) >> 8)
172#define CHIPREV_5700_AX 0x70 177#define CHIPREV_5700_AX 0x70
173#define CHIPREV_5700_BX 0x71 178#define CHIPREV_5700_BX 0x71
@@ -1340,6 +1345,7 @@
1340#define RDMAC_MODE_MBUF_SBD_CRPT_ENAB 0x00002000 1345#define RDMAC_MODE_MBUF_SBD_CRPT_ENAB 0x00002000
1341#define RDMAC_MODE_FIFO_SIZE_128 0x00020000 1346#define RDMAC_MODE_FIFO_SIZE_128 0x00020000
1342#define RDMAC_MODE_FIFO_LONG_BURST 0x00030000 1347#define RDMAC_MODE_FIFO_LONG_BURST 0x00030000
1348#define RDMAC_MODE_JMB_2K_MMRR 0x00800000
1343#define RDMAC_MODE_MULT_DMA_RD_DIS 0x01000000 1349#define RDMAC_MODE_MULT_DMA_RD_DIS 0x01000000
1344#define RDMAC_MODE_IPV4_LSO_EN 0x08000000 1350#define RDMAC_MODE_IPV4_LSO_EN 0x08000000
1345#define RDMAC_MODE_IPV6_LSO_EN 0x10000000 1351#define RDMAC_MODE_IPV6_LSO_EN 0x10000000
@@ -2874,6 +2880,8 @@ enum TG3_FLAGS {
2874 TG3_FLAG_NVRAM_BUFFERED, 2880 TG3_FLAG_NVRAM_BUFFERED,
2875 TG3_FLAG_SUPPORT_MSI, 2881 TG3_FLAG_SUPPORT_MSI,
2876 TG3_FLAG_SUPPORT_MSIX, 2882 TG3_FLAG_SUPPORT_MSIX,
2883 TG3_FLAG_USING_MSI,
2884 TG3_FLAG_USING_MSIX,
2877 TG3_FLAG_PCIX_MODE, 2885 TG3_FLAG_PCIX_MODE,
2878 TG3_FLAG_PCI_HIGH_SPEED, 2886 TG3_FLAG_PCI_HIGH_SPEED,
2879 TG3_FLAG_PCI_32BIT, 2887 TG3_FLAG_PCI_32BIT,
@@ -2889,7 +2897,6 @@ enum TG3_FLAGS {
2889 TG3_FLAG_CHIP_RESETTING, 2897 TG3_FLAG_CHIP_RESETTING,
2890 TG3_FLAG_INIT_COMPLETE, 2898 TG3_FLAG_INIT_COMPLETE,
2891 TG3_FLAG_TSO_BUG, 2899 TG3_FLAG_TSO_BUG,
2892 TG3_FLAG_IS_5788,
2893 TG3_FLAG_MAX_RXPEND_64, 2900 TG3_FLAG_MAX_RXPEND_64,
2894 TG3_FLAG_TSO_CAPABLE, 2901 TG3_FLAG_TSO_CAPABLE,
2895 TG3_FLAG_PCI_EXPRESS, /* BCM5785 + pci_is_pcie() */ 2902 TG3_FLAG_PCI_EXPRESS, /* BCM5785 + pci_is_pcie() */
@@ -2898,14 +2905,9 @@ enum TG3_FLAGS {
2898 TG3_FLAG_IS_NIC, 2905 TG3_FLAG_IS_NIC,
2899 TG3_FLAG_FLASH, 2906 TG3_FLAG_FLASH,
2900 TG3_FLAG_HW_TSO_1, 2907 TG3_FLAG_HW_TSO_1,
2901 TG3_FLAG_5705_PLUS, 2908 TG3_FLAG_HW_TSO_2,
2902 TG3_FLAG_5750_PLUS,
2903 TG3_FLAG_HW_TSO_3, 2909 TG3_FLAG_HW_TSO_3,
2904 TG3_FLAG_USING_MSI,
2905 TG3_FLAG_USING_MSIX,
2906 TG3_FLAG_ICH_WORKAROUND, 2910 TG3_FLAG_ICH_WORKAROUND,
2907 TG3_FLAG_5780_CLASS,
2908 TG3_FLAG_HW_TSO_2,
2909 TG3_FLAG_1SHOT_MSI, 2911 TG3_FLAG_1SHOT_MSI,
2910 TG3_FLAG_NO_FWARE_REPORTED, 2912 TG3_FLAG_NO_FWARE_REPORTED,
2911 TG3_FLAG_NO_NVRAM_ADDR_TRANS, 2913 TG3_FLAG_NO_NVRAM_ADDR_TRANS,
@@ -2919,18 +2921,23 @@ enum TG3_FLAGS {
2919 TG3_FLAG_RGMII_EXT_IBND_RX_EN, 2921 TG3_FLAG_RGMII_EXT_IBND_RX_EN,
2920 TG3_FLAG_RGMII_EXT_IBND_TX_EN, 2922 TG3_FLAG_RGMII_EXT_IBND_TX_EN,
2921 TG3_FLAG_CLKREQ_BUG, 2923 TG3_FLAG_CLKREQ_BUG,
2922 TG3_FLAG_5755_PLUS,
2923 TG3_FLAG_NO_NVRAM, 2924 TG3_FLAG_NO_NVRAM,
2924 TG3_FLAG_ENABLE_RSS, 2925 TG3_FLAG_ENABLE_RSS,
2925 TG3_FLAG_ENABLE_TSS, 2926 TG3_FLAG_ENABLE_TSS,
2926 TG3_FLAG_SHORT_DMA_BUG, 2927 TG3_FLAG_SHORT_DMA_BUG,
2927 TG3_FLAG_USE_JUMBO_BDFLAG, 2928 TG3_FLAG_USE_JUMBO_BDFLAG,
2928 TG3_FLAG_L1PLLPD_EN, 2929 TG3_FLAG_L1PLLPD_EN,
2929 TG3_FLAG_57765_PLUS,
2930 TG3_FLAG_APE_HAS_NCSI, 2930 TG3_FLAG_APE_HAS_NCSI,
2931 TG3_FLAG_5717_PLUS,
2932 TG3_FLAG_4K_FIFO_LIMIT, 2931 TG3_FLAG_4K_FIFO_LIMIT,
2933 TG3_FLAG_RESET_TASK_PENDING, 2932 TG3_FLAG_RESET_TASK_PENDING,
2933 TG3_FLAG_5705_PLUS,
2934 TG3_FLAG_IS_5788,
2935 TG3_FLAG_5750_PLUS,
2936 TG3_FLAG_5780_CLASS,
2937 TG3_FLAG_5755_PLUS,
2938 TG3_FLAG_57765_PLUS,
2939 TG3_FLAG_57765_CLASS,
2940 TG3_FLAG_5717_PLUS,
2934 2941
2935 /* Add new flags before this comment and TG3_FLAG_NUMBER_OF_FLAGS */ 2942 /* Add new flags before this comment and TG3_FLAG_NUMBER_OF_FLAGS */
2936 TG3_FLAG_NUMBER_OF_FLAGS, /* Last entry in enum TG3_FLAGS */ 2943 TG3_FLAG_NUMBER_OF_FLAGS, /* Last entry in enum TG3_FLAGS */