r8169: align setting PME with vendor driver
authorHeiner Kallweit <hkallweit1@gmail.com>
Fri, 26 Jul 2019 18:56:20 +0000 (20:56 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sat, 27 Jul 2019 21:23:14 +0000 (14:23 -0700)
Align setting PME with the vendor driver. PMEnable is writable on
RTL8169 only, on later chip versions it's read-only. PME_SIGNAL is
used on chip versions from RTL8168evl with the exception of the
RTL8168f family.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/realtek/r8169_main.c

index e1e1c89fbe3d16947ae24accae5c13482105403a..5c337234b7bc25e02bc9e005d11e21c7a54fd845 100644 (file)
@@ -1414,18 +1414,22 @@ static void __rtl8169_set_wol(struct rtl8169_private *tp, u32 wolopts)
        }
 
        switch (tp->mac_version) {
-       case RTL_GIGA_MAC_VER_02 ... RTL_GIGA_MAC_VER_17:
+       case RTL_GIGA_MAC_VER_02 ... RTL_GIGA_MAC_VER_06:
                options = RTL_R8(tp, Config1) & ~PMEnable;
                if (wolopts)
                        options |= PMEnable;
                RTL_W8(tp, Config1, options);
                break;
-       default:
+       case RTL_GIGA_MAC_VER_34:
+       case RTL_GIGA_MAC_VER_37:
+       case RTL_GIGA_MAC_VER_39 ... RTL_GIGA_MAC_VER_51:
                options = RTL_R8(tp, Config2) & ~PME_SIGNAL;
                if (wolopts)
                        options |= PME_SIGNAL;
                RTL_W8(tp, Config2, options);
                break;
+       default:
+               break;
        }
 
        rtl_lock_config_regs(tp);