|
@@ -7819,11 +7819,26 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
|
|
|
tw32_f(TG3_CPMU_EEE_CTRL,
|
|
|
TG3_CPMU_EEE_CTRL_EXIT_20_1_US);
|
|
|
|
|
|
- tw32_f(TG3_CPMU_EEE_MODE,
|
|
|
- TG3_CPMU_EEEMD_ERLY_L1_XIT_DET |
|
|
|
- TG3_CPMU_EEEMD_LPI_IN_TX |
|
|
|
- TG3_CPMU_EEEMD_LPI_IN_RX |
|
|
|
- TG3_CPMU_EEEMD_EEE_ENABLE);
|
|
|
+ val = TG3_CPMU_EEEMD_ERLY_L1_XIT_DET |
|
|
|
+ TG3_CPMU_EEEMD_LPI_IN_TX |
|
|
|
+ TG3_CPMU_EEEMD_LPI_IN_RX |
|
|
|
+ TG3_CPMU_EEEMD_EEE_ENABLE;
|
|
|
+
|
|
|
+ if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5717)
|
|
|
+ val |= TG3_CPMU_EEEMD_SND_IDX_DET_EN;
|
|
|
+
|
|
|
+ if (tp->tg3_flags3 & TG3_FLG3_ENABLE_APE)
|
|
|
+ val |= TG3_CPMU_EEEMD_APE_TX_DET_EN;
|
|
|
+
|
|
|
+ tw32_f(TG3_CPMU_EEE_MODE, val);
|
|
|
+
|
|
|
+ tw32_f(TG3_CPMU_EEE_DBTMR1,
|
|
|
+ TG3_CPMU_DBTMR1_PCIEXIT_2047US |
|
|
|
+ TG3_CPMU_DBTMR1_LNKIDLE_2047US);
|
|
|
+
|
|
|
+ tw32_f(TG3_CPMU_EEE_DBTMR2,
|
|
|
+ TG3_CPMU_DBTMR1_APE_TX_2047US |
|
|
|
+ TG3_CPMU_DBTMR2_TXIDXEQ_2047US);
|
|
|
}
|
|
|
|
|
|
if (reset_phy)
|