r8169: improve reset handling for chips from RTL8168g
authorHeiner Kallweit <hkallweit1@gmail.com>
Fri, 8 May 2020 21:32:49 +0000 (23:32 +0200)
committerJakub Kicinski <kuba@kernel.org>
Sat, 9 May 2020 05:41:55 +0000 (22:41 -0700)
Sync the reset preparation for chips from RTL8168g with the r8168 and
r8125 vendor drivers.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/realtek/r8169_main.c

index 47ff514..b4e49c4 100644 (file)
@@ -2535,10 +2535,13 @@ static void rtl8169_hw_reset(struct rtl8169_private *tp)
                rtl_loop_wait_low(tp, &rtl_npq_cond, 20, 2000);
                break;
        case RTL_GIGA_MAC_VER_34 ... RTL_GIGA_MAC_VER_38:
-       case RTL_GIGA_MAC_VER_40 ... RTL_GIGA_MAC_VER_52:
                RTL_W8(tp, ChipCmd, RTL_R8(tp, ChipCmd) | StopReq);
                rtl_loop_wait_high(tp, &rtl_txcfg_empty_cond, 100, 666);
                break;
+       case RTL_GIGA_MAC_VER_40 ... RTL_GIGA_MAC_VER_61:
+               rtl_enable_rxdvgate(tp);
+               fsleep(2000);
+               break;
        default:
                RTL_W8(tp, ChipCmd, RTL_R8(tp, ChipCmd) | StopReq);
                udelay(100);