net/hns:bugfix of ethtool -t phy self_test
This patch fixes the phy loopback self_test failed issue. when Marvell Phy Module is loaded, it will powerdown fiber when doing phy loopback self test, which cause phy loopback self_test fail. Signed-off-by: Lin Yun Sheng <linyunsheng@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
9745e362ad
Коммит
7fe5b91431
|
@ -288,9 +288,15 @@ static int hns_nic_config_phy_loopback(struct phy_device *phy_dev, u8 en)
|
|||
|
||||
/* Force 1000M Link, Default is 0x0200 */
|
||||
phy_write(phy_dev, 7, 0x20C);
|
||||
phy_write(phy_dev, HNS_PHY_PAGE_REG, 0);
|
||||
|
||||
/* Enable PHY loop-back */
|
||||
/* Powerup Fiber */
|
||||
phy_write(phy_dev, HNS_PHY_PAGE_REG, 1);
|
||||
val = phy_read(phy_dev, COPPER_CONTROL_REG);
|
||||
val &= ~PHY_POWER_DOWN;
|
||||
phy_write(phy_dev, COPPER_CONTROL_REG, val);
|
||||
|
||||
/* Enable Phy Loopback */
|
||||
phy_write(phy_dev, HNS_PHY_PAGE_REG, 0);
|
||||
val = phy_read(phy_dev, COPPER_CONTROL_REG);
|
||||
val |= PHY_LOOP_BACK;
|
||||
val &= ~PHY_POWER_DOWN;
|
||||
|
@ -299,6 +305,12 @@ static int hns_nic_config_phy_loopback(struct phy_device *phy_dev, u8 en)
|
|||
phy_write(phy_dev, HNS_PHY_PAGE_REG, 0xFA);
|
||||
phy_write(phy_dev, 1, 0x400);
|
||||
phy_write(phy_dev, 7, 0x200);
|
||||
|
||||
phy_write(phy_dev, HNS_PHY_PAGE_REG, 1);
|
||||
val = phy_read(phy_dev, COPPER_CONTROL_REG);
|
||||
val |= PHY_POWER_DOWN;
|
||||
phy_write(phy_dev, COPPER_CONTROL_REG, val);
|
||||
|
||||
phy_write(phy_dev, HNS_PHY_PAGE_REG, 0);
|
||||
phy_write(phy_dev, 9, 0xF00);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче