Skip to content

Commit 3148ded

Browse files
hkallweitdavem330
authored andcommitted
r8169: fix powering up RTL8168h
Since commit a92a084 "r8169: improve runtime pm in general and suspend unused ports" interfaces w/o link are runtime-suspended after 10s. On systems where drivers take longer to load this can lead to the situation that the interface is runtime-suspended already when it's initially brought up. This shouldn't be a problem because rtl_open() resumes MAC/PHY. However with at least one chip version the interface doesn't properly come up, as reported here: https://bugzilla.kernel.org/show_bug.cgi?id=199549 The vendor driver uses a delay to give certain chip versions some time to resume before starting the PHY configuration. So let's do the same. I don't know which chip versions may be affected, therefore apply this delay always. This patch was reported to fix the issue for RTL8168h. I was able to reproduce the issue on an Asus H310I-Plus which also uses a RTL8168h. Also in my case the patch fixed the issue. Reported-by: Slava Kardakov <[email protected]> Tested-by: Slava Kardakov <[email protected]> Signed-off-by: Heiner Kallweit <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 42f0213 commit 3148ded

File tree

1 file changed

+3
-0
lines changed
  • drivers/net/ethernet/realtek

1 file changed

+3
-0
lines changed

drivers/net/ethernet/realtek/r8169.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4981,6 +4981,9 @@ static void rtl_pll_power_down(struct rtl8169_private *tp)
49814981
static void rtl_pll_power_up(struct rtl8169_private *tp)
49824982
{
49834983
rtl_generic_op(tp, tp->pll_power_ops.up);
4984+
4985+
/* give MAC/PHY some time to resume */
4986+
msleep(20);
49844987
}
49854988

49864989
static void rtl_init_pll_power_ops(struct rtl8169_private *tp)

0 commit comments

Comments
 (0)