• Trent Piepho's avatar
    PHY: Avoid unnecessary aneg restarts · 51e2a384
    Trent Piepho authored
    The PHY's aneg is configured and restarted whenever the link is brought up,
    e.g. when DHCP is started after the kernel has booted.  This can take the
    link down for several seconds while auto-negotiation is redone.
    
    If the advertised features haven't changed, then it shouldn't be necessary
    to bring down the link and start auto-negotiation over again.
    
    genphy_config_advert() is enhanced to return 0 when the advertised features
    haven't been changed and >0 when they have been.
    
    genphy_config_aneg() then uses this information to not call
    genphy_restart_aneg() if there has been no change.
    Signed-off-by: default avatarTrent Piepho <tpiepho@freescale.com>
    Acked-by: default avatarAndy Fleming <afleming@freescale.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    51e2a384
phy_device.c 20.9 KB