• Samuel Holland's avatar
    net: stmmac: dwmac-sun8i: Balance internal PHY resource references · 52925421
    Samuel Holland authored
    While stmmac_pltfr_remove calls sun8i_dwmac_exit, the sun8i_dwmac_init
    and sun8i_dwmac_exit functions are also called by the stmmac_platform
    suspend/resume callbacks. They may be called many times during the
    device's lifetime and should not release resources used by the driver.
    
    Furthermore, there was no error handling in case registering the MDIO
    mux failed during probe, and the EPHY clock was never released at all.
    
    Fix all of these issues by moving the deinitialization code to a driver
    removal callback. Also ensure the EPHY is powered down before removal.
    
    Fixes: 634db83b ("net: stmmac: dwmac-sun8i: Handle integrated/external MDIOs")
    Signed-off-by: default avatarSamuel Holland <samuel@sholland.org>
    Reviewed-by: default avatarChen-Yu Tsai <wens@csie.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    52925421
dwmac-sun8i.c 33.5 KB