ethernet: enhance window function [1/1]
authorZhuo Wang <zhuo.wang@amlogic.com>
Fri, 5 Jul 2019 09:05:20 +0000 (17:05 +0800)
committerTao Zeng <tao.zeng@amlogic.com>
Tue, 9 Jul 2019 11:07:33 +0000 (04:07 -0700)
PD#SWPL-10876

Problem:
add del 2ns function

Solution:
add del 2ns function

Verify:
verify on u200 board

Change-Id: I949a1d85e41d0b0e03708243f9559f8de63b0e54
Signed-off-by: Zhuo Wang <zhuo.wang@amlogic.com>
drivers/net/phy/realtek.c

index 0f5615a..7b155cc 100644 (file)
@@ -132,20 +132,23 @@ static int rtl8211f_config_init(struct phy_device *phydev)
 
        phy_write(phydev, 0x11, reg);
 #ifdef CONFIG_AMLOGIC_ETH_PRIVE
+       /*switch page d08*/
+       phy_write(phydev, RTL8211F_PAGE_SELECT, 0xd08);
+       reg = phy_read(phydev, 0x15);
        if (external_rx_delay) {
-       /*add 2ns delay for rx*/
-               phy_write(phydev, RTL8211F_PAGE_SELECT, 0xd08);
-               reg = phy_read(phydev, 0x15);
-               reg = phy_write(phydev, 0x15, reg | 0x8);
-               phy_write(phydev, RTL8211F_PAGE_SELECT, 0x0);
+               /*add 2ns delay for rx*/
+               phy_write(phydev, 0x15, reg | 0x8);
+       } else {
+               /*del 2ns rx*/
+               phy_write(phydev, 0x15, reg & 0xfff7);
        }
+
        if (external_tx_delay) {
-       /*add 2ns delay for tx*/
-               phy_write(phydev, RTL8211F_PAGE_SELECT, 0xd08);
                reg = phy_read(phydev, 0x11);
-               reg = phy_write(phydev, 0x11, reg | 0x100);
-               phy_write(phydev, RTL8211F_PAGE_SELECT, 0x0);
+               phy_write(phydev, 0x11, reg | 0x100);
        }
+       phy_write(phydev, RTL8211F_PAGE_SELECT, 0x0);
+
        /*disable clk_out pin 35 set page 0x0a43 reg25.0 as 0*/
        phy_write(phydev, RTL8211F_PAGE_SELECT, 0x0a43);
        reg = phy_read(phydev, 0x19);