diff options
author | Hayes Wang <hayeswang@realtek.com> | 2011-09-06 16:55:14 +0800 |
---|---|---|
committer | Francois Romieu <romieu@fr.zoreil.com> | 2011-09-17 11:37:48 +0200 |
commit | 106633897e086e1b47126996aac1a427eb80eb1b (patch) | |
tree | 51dca62524da7913f88810f4774e5faa62c3fc5b | |
parent | bbb8af75d0a6a5138ff00fe0b1b95c4824effd55 (diff) | |
download | linux-106633897e086e1b47126996aac1a427eb80eb1b.tar.bz2 |
r8169: fix WOL setting for 8105 and 8111evl
rtl8105, rtl8111E, and rtl8111evl need enable RxConfig bit 1 ~ 3
for supporting wake on lan.
Signed-off-by: Hayes Wang <hayeswang@realtek.com>
-rw-r--r-- | drivers/net/r8169.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c index b55fba7f3a04..78c1d5832792 100644 --- a/drivers/net/r8169.c +++ b/drivers/net/r8169.c @@ -3320,9 +3320,16 @@ static void r810x_phy_power_up(struct rtl8169_private *tp) static void r810x_pll_power_down(struct rtl8169_private *tp) { + void __iomem *ioaddr = tp->mmio_addr; + if (__rtl8169_get_wol(tp) & WAKE_ANY) { rtl_writephy(tp, 0x1f, 0x0000); rtl_writephy(tp, MII_BMCR, 0x0000); + + if (tp->mac_version == RTL_GIGA_MAC_VER_29 || + tp->mac_version == RTL_GIGA_MAC_VER_30) + RTL_W32(RxConfig, RTL_R32(RxConfig) | AcceptBroadcast | + AcceptMulticast | AcceptMyPhys); return; } @@ -3418,7 +3425,8 @@ static void r8168_pll_power_down(struct rtl8169_private *tp) rtl_writephy(tp, MII_BMCR, 0x0000); if (tp->mac_version == RTL_GIGA_MAC_VER_32 || - tp->mac_version == RTL_GIGA_MAC_VER_33) + tp->mac_version == RTL_GIGA_MAC_VER_33 || + tp->mac_version == RTL_GIGA_MAC_VER_34) RTL_W32(RxConfig, RTL_R32(RxConfig) | AcceptBroadcast | AcceptMulticast | AcceptMyPhys); return; |