• Daniel Drake's avatar
    r8169: only enable PCI wakeups when WOL is active · bde135a6
    Daniel Drake authored
    rtl_init_one() currently enables PCI wakeups if the ethernet device
    is found to be WOL-capable. There is no need to do this when
    rtl8169_set_wol() will correctly enable or disable the same wakeup flag
    when WOL is activated/deactivated.
    
    This works around an ACPI DSDT bug which prevents the Acer laptop models
    Aspire ES1-533, Aspire ES1-732, PackardBell ENTE69AP and Gateway NE533
    from entering S3 suspend - even when no ethernet cable is connected.
    
    On these platforms, the DSDT says that GPE08 is a wakeup source for
    ethernet, but this GPE fires as soon as the system goes into suspend,
    waking the system up immediately. Having the wakeup normally disabled
    avoids this issue in the default case.
    
    With this change, WOL will continue to be unusable on these platforms
    (it will instantly wake up if WOL is later enabled by the user) but we
    do not expect this to be a commonly used feature on these consumer
    laptops. We have separately determined that WOL works fine without any
    ACPI GPEs enabled during sleep, so a DSDT fix or override would be
    possible to make WOL work.
    Signed-off-by: default avatarDaniel Drake <drake@endlessm.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    bde135a6
r8169.c 210 KB