• Andrew Lunn's avatar
    net: phy: fixed_phy: Set phy capabilities even when link down. · bc0f4a87
    Andrew Lunn authored
    What features a phy supports is masked in genphy_config_init() by
    looking at the PHYs BMSR register.
    
    If the link is down, fixed_phy_update_regs() will only set the auto-
    negotiation capable bit in BMSR. Thus genphy_config_init() comes to
    the conclusion the PHY can only perform 10/Half, and masks out the
    higher speed features. If however the link it up, BMSR is set to
    indicate the speed the PHY is capable of auto-negotiating, and
    genphy_config_init() does not mask out the high speed features.
    
    To fix this, when the link is down, have fixed_phy_update_regs() leave
    the link status, auto-negotiation complete, and link partner
    capabilities unset, but set all the local capabilities depending on
    the fixed phy speed.
    Signed-off-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    bc0f4a87
fixed_phy.c 8.99 KB