@@ -1776,9 +1776,29 @@ static void tg3_phy_eee_adjust(struct tg3 *tp, u32 current_link_up)
17761776 tg3_phy_cl45_read (tp , MDIO_MMD_AN ,
17771777 TG3_CL45_D7_EEERES_STAT , & val );
17781778
1779- if (val == TG3_CL45_D7_EEERES_STAT_LP_1000T ||
1780- val == TG3_CL45_D7_EEERES_STAT_LP_100TX )
1779+ switch (val ) {
1780+ case TG3_CL45_D7_EEERES_STAT_LP_1000T :
1781+ switch (GET_ASIC_REV (tp -> pci_chip_rev_id )) {
1782+ case ASIC_REV_5717 :
1783+ case ASIC_REV_5719 :
1784+ case ASIC_REV_57765 :
1785+ /* Enable SM_DSP clock and tx 6dB coding. */
1786+ val = MII_TG3_AUXCTL_SHDWSEL_AUXCTL |
1787+ MII_TG3_AUXCTL_ACTL_SMDSP_ENA |
1788+ MII_TG3_AUXCTL_ACTL_TX_6DB ;
1789+ tg3_writephy (tp , MII_TG3_AUX_CTRL , val );
1790+
1791+ tg3_phydsp_write (tp , MII_TG3_DSP_TAP26 , 0x0000 );
1792+
1793+ /* Turn off SM_DSP clock. */
1794+ val = MII_TG3_AUXCTL_SHDWSEL_AUXCTL |
1795+ MII_TG3_AUXCTL_ACTL_TX_6DB ;
1796+ tg3_writephy (tp , MII_TG3_AUX_CTRL , val );
1797+ }
1798+ /* Fallthrough */
1799+ case TG3_CL45_D7_EEERES_STAT_LP_100TX :
17811800 tp -> setlpicnt = 2 ;
1801+ }
17821802 }
17831803
17841804 if (!tp -> setlpicnt ) {
@@ -2968,11 +2988,19 @@ static void tg3_phy_copper_begin(struct tg3 *tp)
29682988 MII_TG3_AUXCTL_ACTL_TX_6DB ;
29692989 tg3_writephy (tp , MII_TG3_AUX_CTRL , val );
29702990
2971- if ((GET_ASIC_REV (tp -> pci_chip_rev_id ) == ASIC_REV_5717 ||
2972- GET_ASIC_REV (tp -> pci_chip_rev_id ) == ASIC_REV_57765 ) &&
2973- !tg3_phydsp_read (tp , MII_TG3_DSP_CH34TP2 , & val ))
2974- tg3_phydsp_write (tp , MII_TG3_DSP_CH34TP2 ,
2975- val | MII_TG3_DSP_CH34TP2_HIBW01 );
2991+ switch (GET_ASIC_REV (tp -> pci_chip_rev_id )) {
2992+ case ASIC_REV_5717 :
2993+ case ASIC_REV_57765 :
2994+ if (!tg3_phydsp_read (tp , MII_TG3_DSP_CH34TP2 , & val ))
2995+ tg3_phydsp_write (tp , MII_TG3_DSP_CH34TP2 , val |
2996+ MII_TG3_DSP_CH34TP2_HIBW01 );
2997+ /* Fall through */
2998+ case ASIC_REV_5719 :
2999+ val = MII_TG3_DSP_TAP26_ALNOKO |
3000+ MII_TG3_DSP_TAP26_RMRXSTO |
3001+ MII_TG3_DSP_TAP26_OPCSINPT ;
3002+ tg3_phydsp_write (tp , MII_TG3_DSP_TAP26 , val );
3003+ }
29763004
29773005 val = 0 ;
29783006 if (tp -> link_config .autoneg == AUTONEG_ENABLE ) {
0 commit comments