r8169: modify pll power function
authorHayes Wang <hayeswang@realtek.com>
Fri, 30 Mar 2012 06:33:00 +0000 (14:33 +0800)
committerFrancois Romieu <romieu@fr.zoreil.com>
Tue, 17 Apr 2012 09:22:40 +0000 (11:22 +0200)
Adjust r810x_pll_power_down, r810x_pll_power_up, and r8168_pll_power_up.
Always power up device during rtl_open. For r810x, turn off more power
when the WOL is disabled.

Signed-off-by: Hayes Wang <hayeswang@realtek.com>
drivers/net/ethernet/realtek/r8169.c

index 207aadcd37f2656d718baf8703431df0fa96f789..d9bae307c14458e34ca654c9b40b0861789b22ad 100644 (file)
@@ -3525,15 +3525,45 @@ 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 (rtl_wol_pll_power_down(tp))
                return;
 
        r810x_phy_power_down(tp);
+
+       switch (tp->mac_version) {
+       case RTL_GIGA_MAC_VER_07:
+       case RTL_GIGA_MAC_VER_08:
+       case RTL_GIGA_MAC_VER_09:
+       case RTL_GIGA_MAC_VER_10:
+       case RTL_GIGA_MAC_VER_13:
+       case RTL_GIGA_MAC_VER_16:
+               break;
+       default:
+               RTL_W8(PMCH, RTL_R8(PMCH) & ~0x80);
+               break;
+       }
 }
 
 static void r810x_pll_power_up(struct rtl8169_private *tp)
 {
+       void __iomem *ioaddr = tp->mmio_addr;
+
        r810x_phy_power_up(tp);
+
+       switch (tp->mac_version) {
+       case RTL_GIGA_MAC_VER_07:
+       case RTL_GIGA_MAC_VER_08:
+       case RTL_GIGA_MAC_VER_09:
+       case RTL_GIGA_MAC_VER_10:
+       case RTL_GIGA_MAC_VER_13:
+       case RTL_GIGA_MAC_VER_16:
+               break;
+       default:
+               RTL_W8(PMCH, RTL_R8(PMCH) | 0x80);
+               break;
+       }
 }
 
 static void r8168_phy_power_up(struct rtl8169_private *tp)
@@ -3637,13 +3667,6 @@ static void r8168_pll_power_up(struct rtl8169_private *tp)
 {
        void __iomem *ioaddr = tp->mmio_addr;
 
-       if ((tp->mac_version == RTL_GIGA_MAC_VER_27 ||
-            tp->mac_version == RTL_GIGA_MAC_VER_28 ||
-            tp->mac_version == RTL_GIGA_MAC_VER_31) &&
-           r8168dp_check_dash(tp)) {
-               return;
-       }
-
        switch (tp->mac_version) {
        case RTL_GIGA_MAC_VER_25:
        case RTL_GIGA_MAC_VER_26: