]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
r8169: 8168c and later require bit 0x20 to be set in Config2 for PME signaling.
authorFrancois Romieu <romieu@fr.zoreil.com>
Fri, 5 Oct 2012 21:29:19 +0000 (23:29 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 12 Oct 2012 20:28:13 +0000 (05:28 +0900)
commit d387b427c973974dd619a33549c070ac5d0e089f upstream.

The new 84xx stopped flying below the radars.

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

index c9bf1e8124dd9125ba76d8152e22b747b13e5ce8..f8bfd5237c2e700db2d9ce2a00a1a54890cf6a65 100644 (file)
@@ -299,6 +299,8 @@ enum rtl_registers {
        Config0         = 0x51,
        Config1         = 0x52,
        Config2         = 0x53,
+#define PME_SIGNAL                     (1 << 5)        /* 8168c and later */
+
        Config3         = 0x54,
        Config4         = 0x55,
        Config5         = 0x56,
@@ -1249,6 +1251,10 @@ static void __rtl8169_set_wol(struct rtl8169_private *tp, u32 wolopts)
                RTL_W8(Config1, options);
                break;
        default:
+               options = RTL_R8(Config2) & ~PME_SIGNAL;
+               if (wolopts)
+                       options |= PME_SIGNAL;
+               RTL_W8(Config2, options);
                break;
        }