• Sriharsha Basavapatna's avatar
    be2net: Enable Wake-On-LAN from shutdown for Skyhawk · 45f13df7
    Sriharsha Basavapatna authored
    Skyhawk does support wake-up from ACPI shutdown state - S5, provided the
    platform supports it (like Auxiliary power source etc). The changes listed
    below are done to fix this.
    
    1) There's no need to defer the HW configuration of WOL to be_suspend().
    Remove this in be_suspend() and move it to be_set_wol() ethtool function
    so it is configured directly in the context of ethtool. This automatically
    takes care of the shutdown case.
    
    2) The driver incorrectly uses WOL_CAP field in the FW response to
    get_acpi_wol_cap() command, to determine if WOL is enabled. Instead the
    driver must rely on the macaddr field in the response to infer WOL state.
    
    3) In be_get_config() during init, if we find that WOL is enabled in FW,
    call pci_enable_wake() to enable pmcsr.pme_en bit. This is needed to
    support persistent WOL configuration provided by the FW in some platforms.
    
    4) Remove code in be_set_wol() that writes to PCICFG_PM_CONTROL_OFFSET
    to set pme_en bit; pci_enable_wake() sets that.
    
    Fixes: 028991e4 ("Enabling Wake-on-LAN is not supported in S5 state")
    Signed-off-by: default avatarSriharsha Basavapatna <sriharsha.basavapatna@broadcom.com>
    Signed-off-by: default avatarSathya Perla <sathya.perla@broadcom.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    45f13df7
be_ethtool.c 37 KB