diff options
Diffstat (limited to 'drivers/qe/uec_phy.c')
| -rw-r--r-- | drivers/qe/uec_phy.c | 9 | 
1 files changed, 9 insertions, 0 deletions
| diff --git a/drivers/qe/uec_phy.c b/drivers/qe/uec_phy.c index 7ea2ae1af..9be784e6a 100644 --- a/drivers/qe/uec_phy.c +++ b/drivers/qe/uec_phy.c @@ -351,6 +351,15 @@ static int marvell_config_aneg (struct uec_mii_info *mii_info)  static int genmii_config_aneg (struct uec_mii_info *mii_info)  {  	if (mii_info->autoneg) { +		/* Speed up the common case, if link is already up, speed and +		   duplex match, skip auto neg as it already matches */ +		if (!genmii_read_status(mii_info) && mii_info->link) +			if (mii_info->duplex == DUPLEX_FULL && +			    mii_info->speed == SPEED_100) +				if (mii_info->advertising & +				    ADVERTISED_100baseT_Full) +					return 0; +  		config_genmii_advert (mii_info);  		genmii_restart_aneg (mii_info);  	} else |