Skip to content

Commit a7a92cf

Browse files
hkallweitdavem330
authored andcommitted
r8169: sync PCIe PHY init with vendor driver 8.047.01
Synchronize PCIe PHY initialization with vendor driver version 8.047.01. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent ef712ed commit a7a92cf

File tree

1 file changed

+38
-22
lines changed

1 file changed

+38
-22
lines changed

drivers/net/ethernet/realtek/r8169_main.c

Lines changed: 38 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4415,7 +4415,7 @@ static void rtl_hw_start_8168c_2(struct rtl8169_private *tp)
44154415
{
44164416
static const struct ephy_info e_info_8168c_2[] = {
44174417
{ 0x01, 0, 0x0001 },
4418-
{ 0x03, 0x0400, 0x0220 }
4418+
{ 0x03, 0x0400, 0x0020 }
44194419
};
44204420

44214421
rtl_set_def_aspm_entry_latency(tp);
@@ -4462,7 +4462,8 @@ static void rtl_hw_start_8168d_4(struct rtl8169_private *tp)
44624462
static const struct ephy_info e_info_8168d_4[] = {
44634463
{ 0x0b, 0x0000, 0x0048 },
44644464
{ 0x19, 0x0020, 0x0050 },
4465-
{ 0x0c, 0x0100, 0x0020 }
4465+
{ 0x0c, 0x0100, 0x0020 },
4466+
{ 0x10, 0x0004, 0x0000 },
44664467
};
44674468

44684469
rtl_set_def_aspm_entry_latency(tp);
@@ -4512,7 +4513,9 @@ static void rtl_hw_start_8168e_2(struct rtl8169_private *tp)
45124513
{
45134514
static const struct ephy_info e_info_8168e_2[] = {
45144515
{ 0x09, 0x0000, 0x0080 },
4515-
{ 0x19, 0x0000, 0x0224 }
4516+
{ 0x19, 0x0000, 0x0224 },
4517+
{ 0x00, 0x0000, 0x0004 },
4518+
{ 0x0c, 0x3df0, 0x0200 },
45164519
};
45174520

45184521
rtl_set_def_aspm_entry_latency(tp);
@@ -4574,7 +4577,9 @@ static void rtl_hw_start_8168f_1(struct rtl8169_private *tp)
45744577
{ 0x06, 0x00c0, 0x0020 },
45754578
{ 0x08, 0x0001, 0x0002 },
45764579
{ 0x09, 0x0000, 0x0080 },
4577-
{ 0x19, 0x0000, 0x0224 }
4580+
{ 0x19, 0x0000, 0x0224 },
4581+
{ 0x00, 0x0000, 0x0004 },
4582+
{ 0x0c, 0x3df0, 0x0200 },
45784583
};
45794584

45804585
rtl_hw_start_8168f(tp);
@@ -4589,8 +4594,9 @@ static void rtl_hw_start_8411(struct rtl8169_private *tp)
45894594
static const struct ephy_info e_info_8168f_1[] = {
45904595
{ 0x06, 0x00c0, 0x0020 },
45914596
{ 0x0f, 0xffff, 0x5200 },
4592-
{ 0x1e, 0x0000, 0x4000 },
4593-
{ 0x19, 0x0000, 0x0224 }
4597+
{ 0x19, 0x0000, 0x0224 },
4598+
{ 0x00, 0x0000, 0x0004 },
4599+
{ 0x0c, 0x3df0, 0x0200 },
45944600
};
45954601

45964602
rtl_hw_start_8168f(tp);
@@ -4629,8 +4635,8 @@ static void rtl_hw_start_8168g(struct rtl8169_private *tp)
46294635
static void rtl_hw_start_8168g_1(struct rtl8169_private *tp)
46304636
{
46314637
static const struct ephy_info e_info_8168g_1[] = {
4632-
{ 0x00, 0x0000, 0x0008 },
4633-
{ 0x0c, 0x37d0, 0x0820 },
4638+
{ 0x00, 0x0008, 0x0000 },
4639+
{ 0x0c, 0x3ff0, 0x0820 },
46344640
{ 0x1e, 0x0000, 0x0001 },
46354641
{ 0x19, 0x8000, 0x0000 }
46364642
};
@@ -4646,10 +4652,15 @@ static void rtl_hw_start_8168g_1(struct rtl8169_private *tp)
46464652
static void rtl_hw_start_8168g_2(struct rtl8169_private *tp)
46474653
{
46484654
static const struct ephy_info e_info_8168g_2[] = {
4649-
{ 0x00, 0x0000, 0x0008 },
4650-
{ 0x0c, 0x3df0, 0x0200 },
4651-
{ 0x19, 0xffff, 0xfc00 },
4652-
{ 0x1e, 0xffff, 0x20eb }
4655+
{ 0x00, 0x0008, 0x0000 },
4656+
{ 0x0c, 0x3ff0, 0x0820 },
4657+
{ 0x19, 0xffff, 0x7c00 },
4658+
{ 0x1e, 0xffff, 0x20eb },
4659+
{ 0x0d, 0xffff, 0x1666 },
4660+
{ 0x00, 0xffff, 0x10a3 },
4661+
{ 0x06, 0xffff, 0xf050 },
4662+
{ 0x04, 0x0000, 0x0010 },
4663+
{ 0x1d, 0x4000, 0x0000 },
46534664
};
46544665

46554666
rtl_hw_start_8168g(tp);
@@ -4663,11 +4674,16 @@ static void rtl_hw_start_8168g_2(struct rtl8169_private *tp)
46634674
static void rtl_hw_start_8411_2(struct rtl8169_private *tp)
46644675
{
46654676
static const struct ephy_info e_info_8411_2[] = {
4666-
{ 0x00, 0x0000, 0x0008 },
4667-
{ 0x0c, 0x3df0, 0x0200 },
4668-
{ 0x0f, 0xffff, 0x5200 },
4669-
{ 0x19, 0x0020, 0x0000 },
4670-
{ 0x1e, 0x0000, 0x2000 }
4677+
{ 0x00, 0x0008, 0x0000 },
4678+
{ 0x0c, 0x37d0, 0x0820 },
4679+
{ 0x1e, 0x0000, 0x0001 },
4680+
{ 0x19, 0x8021, 0x0000 },
4681+
{ 0x1e, 0x0000, 0x2000 },
4682+
{ 0x0d, 0x0100, 0x0200 },
4683+
{ 0x00, 0x0000, 0x0080 },
4684+
{ 0x06, 0x0000, 0x0010 },
4685+
{ 0x04, 0x0000, 0x0010 },
4686+
{ 0x1d, 0x0000, 0x4000 },
46714687
};
46724688

46734689
rtl_hw_start_8168g(tp);
@@ -4822,7 +4838,7 @@ static void rtl_hw_start_8168h_1(struct rtl8169_private *tp)
48224838
{ 0x1d, 0x0000, 0x0800 },
48234839
{ 0x05, 0xffff, 0x2089 },
48244840
{ 0x06, 0xffff, 0x5881 },
4825-
{ 0x04, 0xffff, 0x154a },
4841+
{ 0x04, 0xffff, 0x854a },
48264842
{ 0x01, 0xffff, 0x068b }
48274843
};
48284844
int rg_saw_cnt;
@@ -4959,10 +4975,10 @@ static void rtl_hw_start_8168ep_2(struct rtl8169_private *tp)
49594975
static void rtl_hw_start_8168ep_3(struct rtl8169_private *tp)
49604976
{
49614977
static const struct ephy_info e_info_8168ep_3[] = {
4962-
{ 0x00, 0xffff, 0x10a3 },
4963-
{ 0x19, 0xffff, 0x7c00 },
4964-
{ 0x1e, 0xffff, 0x20eb },
4965-
{ 0x0d, 0xffff, 0x1666 }
4978+
{ 0x00, 0x0000, 0x0080 },
4979+
{ 0x0d, 0x0100, 0x0200 },
4980+
{ 0x19, 0x8021, 0x0000 },
4981+
{ 0x1e, 0x0000, 0x2000 },
49664982
};
49674983

49684984
/* disable aspm and clock request before access ephy */

0 commit comments

Comments
 (0)