diff options
author | Francois Romieu <romieu@fr.zoreil.com> | 2008-05-30 10:07:07 -0400 |
---|---|---|
committer | Francois Romieu <romieu@fr.zoreil.com> | 2008-10-10 17:08:22 -0400 |
commit | f50d4275422415cfb2a5b94bad3b2b229d0ec1aa (patch) | |
tree | f1a7ced221a135f43fa3b173a5f6b4cda12fbbec /drivers/net/r8169.c | |
parent | a2de6b89b74b28052e293fdb39975a5a03c432e0 (diff) |
r8169: update phy init parameters
The modified parameters are synced with Realtek's driver
version 8.006.00.
The change should only be noticeable with some 8168c.
Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Edward Hsu <edward_hsu@realtek.com.tw>
Diffstat (limited to 'drivers/net/r8169.c')
-rw-r--r-- | drivers/net/r8169.c | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c index 9881563898d..62e11159156 100644 --- a/drivers/net/r8169.c +++ b/drivers/net/r8169.c | |||
@@ -1379,26 +1379,45 @@ static void rtl8168c_hw_phy_config(void __iomem *ioaddr) | |||
1379 | { 0x1f, 0x0003 }, | 1379 | { 0x1f, 0x0003 }, |
1380 | { 0x12, 0xc096 }, | 1380 | { 0x12, 0xc096 }, |
1381 | { 0x16, 0x000a }, | 1381 | { 0x16, 0x000a }, |
1382 | { 0x1f, 0x0000 } | 1382 | { 0x1f, 0x0000 }, |
1383 | { 0x1f, 0x0000 }, | ||
1384 | { 0x09, 0x2000 }, | ||
1385 | { 0x09, 0x0000 } | ||
1383 | }; | 1386 | }; |
1384 | 1387 | ||
1385 | rtl_phy_write(ioaddr, phy_reg_init, ARRAY_SIZE(phy_reg_init)); | 1388 | rtl_phy_write(ioaddr, phy_reg_init, ARRAY_SIZE(phy_reg_init)); |
1389 | |||
1390 | mdio_patch(ioaddr, 0x14, 1 << 5); | ||
1391 | mdio_patch(ioaddr, 0x0d, 1 << 5); | ||
1392 | mdio_write(ioaddr, 0x1f, 0x0000); | ||
1386 | } | 1393 | } |
1387 | 1394 | ||
1388 | static void rtl8168cx_hw_phy_config(void __iomem *ioaddr) | 1395 | static void rtl8168cx_hw_phy_config(void __iomem *ioaddr) |
1389 | { | 1396 | { |
1390 | struct phy_reg phy_reg_init[] = { | 1397 | struct phy_reg phy_reg_init[] = { |
1391 | { 0x1f, 0x0000 }, | 1398 | { 0x1f, 0x0001 }, |
1392 | { 0x12, 0x2300 }, | 1399 | { 0x12, 0x2300 }, |
1393 | { 0x1f, 0x0003 }, | 1400 | { 0x03, 0x802f }, |
1394 | { 0x16, 0x0f0a }, | 1401 | { 0x02, 0x4f02 }, |
1395 | { 0x1f, 0x0000 }, | 1402 | { 0x01, 0x0409 }, |
1403 | { 0x00, 0xf099 }, | ||
1404 | { 0x04, 0x9800 }, | ||
1405 | { 0x04, 0x9000 }, | ||
1406 | { 0x1d, 0x3d98 }, | ||
1396 | { 0x1f, 0x0002 }, | 1407 | { 0x1f, 0x0002 }, |
1397 | { 0x0c, 0x7eb8 }, | 1408 | { 0x0c, 0x7eb8 }, |
1409 | { 0x06, 0x0761 }, | ||
1410 | { 0x1f, 0x0003 }, | ||
1411 | { 0x16, 0x0f0a }, | ||
1398 | { 0x1f, 0x0000 } | 1412 | { 0x1f, 0x0000 } |
1399 | }; | 1413 | }; |
1400 | 1414 | ||
1401 | rtl_phy_write(ioaddr, phy_reg_init, ARRAY_SIZE(phy_reg_init)); | 1415 | rtl_phy_write(ioaddr, phy_reg_init, ARRAY_SIZE(phy_reg_init)); |
1416 | |||
1417 | mdio_patch(ioaddr, 0x16, 1 << 0); | ||
1418 | mdio_patch(ioaddr, 0x14, 1 << 5); | ||
1419 | mdio_patch(ioaddr, 0x0d, 1 << 5); | ||
1420 | mdio_write(ioaddr, 0x1f, 0x0000); | ||
1402 | } | 1421 | } |
1403 | 1422 | ||
1404 | static void rtl8102e_hw_phy_config(void __iomem *ioaddr) | 1423 | static void rtl8102e_hw_phy_config(void __iomem *ioaddr) |