drivers: net: xgene: Enable MDIO driver
This patch enables MDIO driver by, - Selecting MDIO_XGENE - Changed open and close to use phy_start and phy_stop - Changed to use mac_ops->tx(rx)_enable and tx(rx)_disable Signed-off-by: Iyappan Subramanian <isubramanian@apm.com> Tested-by: Fushen Chen <fchen@apm.com> Tested-by: Toan Le <toanle@apm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
8089a96f60
commit
47c62b6d5f
@ -3,6 +3,7 @@ config NET_XGENE
|
|||||||
depends on HAS_DMA
|
depends on HAS_DMA
|
||||||
depends on ARCH_XGENE || COMPILE_TEST
|
depends on ARCH_XGENE || COMPILE_TEST
|
||||||
select PHYLIB
|
select PHYLIB
|
||||||
|
select MDIO_XGENE
|
||||||
help
|
help
|
||||||
This is the Ethernet driver for the on-chip ethernet interface on the
|
This is the Ethernet driver for the on-chip ethernet interface on the
|
||||||
APM X-Gene SoC.
|
APM X-Gene SoC.
|
||||||
|
@ -794,13 +794,13 @@ static void xgene_enet_adjust_link(struct net_device *ndev)
|
|||||||
if (pdata->phy_speed != phydev->speed) {
|
if (pdata->phy_speed != phydev->speed) {
|
||||||
pdata->phy_speed = phydev->speed;
|
pdata->phy_speed = phydev->speed;
|
||||||
mac_ops->set_speed(pdata);
|
mac_ops->set_speed(pdata);
|
||||||
xgene_gmac_rx_enable(pdata);
|
mac_ops->rx_enable(pdata);
|
||||||
xgene_gmac_tx_enable(pdata);
|
mac_ops->tx_enable(pdata);
|
||||||
phy_print_status(phydev);
|
phy_print_status(phydev);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
xgene_gmac_rx_disable(pdata);
|
mac_ops->rx_disable(pdata);
|
||||||
xgene_gmac_tx_disable(pdata);
|
mac_ops->tx_disable(pdata);
|
||||||
pdata->phy_speed = SPEED_UNKNOWN;
|
pdata->phy_speed = SPEED_UNKNOWN;
|
||||||
phy_print_status(phydev);
|
phy_print_status(phydev);
|
||||||
}
|
}
|
||||||
|
@ -739,9 +739,9 @@ static int xgene_enet_open(struct net_device *ndev)
|
|||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
if (pdata->phy_mode == PHY_INTERFACE_MODE_RGMII)
|
if (pdata->phy_dev) {
|
||||||
phy_start(pdata->phy_dev);
|
phy_start(pdata->phy_dev);
|
||||||
else {
|
} else {
|
||||||
schedule_delayed_work(&pdata->link_work, PHY_POLL_LINK_OFF);
|
schedule_delayed_work(&pdata->link_work, PHY_POLL_LINK_OFF);
|
||||||
netif_carrier_off(ndev);
|
netif_carrier_off(ndev);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user