• Florian Fainelli's avatar
    net: phy: broadcom: Add support for Wake-on-LAN · 8baddaa9
    Florian Fainelli authored
    Add support for WAKE_UCAST, WAKE_MCAST, WAKE_BCAST, WAKE_MAGIC and
    WAKE_MAGICSECURE. This is only supported with the BCM54210E and
    compatible Ethernet PHYs. Using the in-band interrupt or an out of band
    GPIO interrupts are supported.
    
    Broadcom PHYs will generate a Wake-on-LAN level low interrupt on LED4 as
    soon as one of the supported patterns is being matched. That includes
    generating such an interrupt even if the PHY is operated during normal
    modes. If WAKE_UCAST is selected, this could lead to the LED4 interrupt
    firing up for every packet being received which is absolutely
    undesirable from a performance point of view.
    
    Because the Wake-on-LAN configuration can be set long before the system
    is actually put to sleep, we cannot have an interrupt service routine to
    clear on read the interrupt status register and ensure that new packet
    matches will be detected.
    
    It is desirable to enable the Wake-on-LAN interrupt as late as possible
    during the system suspend process such that we limit the number of
    interrupts to be handled by the system, but also conversely feed into
    the Linux's system suspend way of dealing with interrupts in and around
    the points of no return.
    Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
    Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    8baddaa9
bcm-phy-lib.c 25 KB