r8169: don't enable rx when shutdown.
authorHayes Wang <hayeswang@realtek.com>
Fri, 5 Oct 2012 21:29:09 +0000 (23:29 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 12 Oct 2012 20:28:12 +0000 (05:28 +0900)
commit aaa89c08d9ffa3739c93d65d98b73ec2aa2e93a5 upstream.

Only 8111b needs to enable rx when shutdowning with WoL.

Signed-off-by: Hayes Wang <hayeswang@realtek.com>
Acked-by: Francois Romieu <romieu@fr.zoreil.com>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/r8169.c

index 0d2387aaf6accf3d7303c0313ad19d89ac565ad2..fa63283bf1c7bdfb7fb2a254e6fba918d1c11b8d 100644 (file)
@@ -5391,8 +5391,11 @@ static void rtl_shutdown(struct pci_dev *pdev)
        spin_unlock_irq(&tp->lock);
 
        if (system_state == SYSTEM_POWER_OFF) {
-               /* WoL fails with some 8168 when the receiver is disabled. */
-               if (tp->features & RTL_FEATURE_WOL) {
+               /* WoL fails with 8168b when the receiver is disabled. */
+               if ((tp->mac_version == RTL_GIGA_MAC_VER_11 ||
+                    tp->mac_version == RTL_GIGA_MAC_VER_12 ||
+                    tp->mac_version == RTL_GIGA_MAC_VER_17) &&
+                   (tp->features & RTL_FEATURE_WOL)) {
                        pci_clear_master(pdev);
 
                        RTL_W8(ChipCmd, CmdRxEnb);