• Doug Berger's avatar
    net: bcmgenet: soft reset 40nm EPHYs before MAC init · 1f515486
    Doug Berger authored
    It turns out that the "Workaround for putting the PHY in IDDQ mode"
    used by the internal EPHYs on 40nm Set-Top Box chips when powering
    down puts the interface to the GENET MAC in a state that can cause
    subsequent MAC resets to be incomplete.
    
    Rather than restore the forced soft reset when powering up internal
    PHYs, this commit moves the invocation of phy_init_hw earlier in
    the MAC initialization sequence to just before the MAC reset in the
    open and resume functions. This allows the interface to be stable
    and allows the MAC resets to be successful.
    
    The bcmgenet_mii_probe() function is split in two to accommodate
    this. The new function bcmgenet_mii_connect() handles the first
    half of the functionality before the MAC initialization, and the
    bcmgenet_mii_config() function is extended to provide the remaining
    PHY configuration following the MAC initialization.
    
    Fixes: 484bfa15 ("Revert "net: bcmgenet: Software reset EPHY after power on"")
    Signed-off-by: default avatarDoug Berger <opendmb@gmail.com>
    Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    1f515486
bcmgenet.c 97.8 KB