• Florian Fainelli's avatar
    net: phy: ensure Gigabit features are masked off if requested · 5273e3a5
    Florian Fainelli authored
    
    
    When a Gigabit PHY device is connected to a 10/100Mbits capable Ethernet
    MAC, the driver will restrict the phydev->supported modes to mask off
    Gigabit. If the Gigabit PHY comes out of reset with the Gigabit features
    set by default in MII_CTRL1000, it will keep advertising these feature,
    so by the time we call genphy_config_advert(), the condition on
    phydev->supported having the Gigabit features on is false, and we do not
    update MII_CTRL1000 with updated values, and we keep advertising Gigabit
    features, eventually configuring the PHY for Gigabit whilst the Ethernet
    MAC does not support that.
    
    This patches fixes the problem by ensuring that the Gigabit feature bits
    are always cleared in MII_CTRL1000, if the PHY happens to be a Gigabit
    PHY, and then, if Gigabit features are supported, setting those and
    updating MII_CTRL1000 accordingly.
    Reported-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Tested-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    5273e3a5
phy_device.c 31.6 KB