|
@@ -7857,7 +7857,10 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
tw32(BUFMGR_DMA_HIGH_WATER,
|
|
|
tp->bufmgr_config.dma_high_water);
|
|
|
|
|
|
- tw32(BUFMGR_MODE, BUFMGR_MODE_ENABLE | BUFMGR_MODE_ATTN_ENABLE);
|
|
|
+ val = BUFMGR_MODE_ENABLE | BUFMGR_MODE_ATTN_ENABLE;
|
|
|
+ if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719)
|
|
|
+ val |= BUFMGR_MODE_NO_TX_UNDERRUN;
|
|
|
+ tw32(BUFMGR_MODE, val);
|
|
|
for (i = 0; i < 2000; i++) {
|
|
|
if (tr32(BUFMGR_MODE) & BUFMGR_MODE_ENABLE)
|
|
|
break;
|
|
@@ -8037,6 +8040,13 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
val | TG3_RDMA_RSRVCTRL_FIFO_OFLW_FIX);
|
|
|
}
|
|
|
|
|
|
+ if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719) {
|
|
|
+ val = tr32(TG3_LSO_RD_DMA_CRPTEN_CTRL);
|
|
|
+ tw32(TG3_LSO_RD_DMA_CRPTEN_CTRL, val |
|
|
|
+ TG3_LSO_RD_DMA_CRPTEN_CTRL_BLEN_BD_4K |
|
|
|
+ TG3_LSO_RD_DMA_CRPTEN_CTRL_BLEN_LSO_4K);
|
|
|
+ }
|
|
|
+
|
|
|
/* Receive/send statistics. */
|
|
|
if (tp->tg3_flags2 & TG3_FLG2_5750_PLUS) {
|
|
|
val = tr32(RCVLPC_STATS_ENABLE);
|