• Florian Fainelli's avatar
    net: phy: Allow drivers to always call into ->suspend() · a7e34480
    Florian Fainelli authored
    A few PHY drivers are currently attempting to not suspend the PHY when
    Wake-on-LAN is enabled, however that code is not currently executing at
    all due to an early check in phy_suspend().
    
    This prevents PHY drivers from making an appropriate decisions and put
    the hardware into a low power state if desired.
    
    In order to allow the PHY drivers to opt into getting their ->suspend
    routine to be called, add a PHY_ALWAYS_CALL_SUSPEND bit which can be
    set. A boolean that tracks whether the PHY or the attached MAC has
    Wake-on-LAN enabled is also provided for convenience.
    
    If phydev::wol_enabled then the PHY shall not prevent its own
    Wake-on-LAN detection logic from working and shall not prevent the
    Ethernet MAC from receiving packets for matching.
    Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
    Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    a7e34480
phy_device.c 91.6 KB