aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux')
-rw-r--r--target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/essedma/edma.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/essedma/edma.c b/target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/essedma/edma.c
index 5f2630ae50..ecbc946de9 100644
--- a/target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/essedma/edma.c
+++ b/target/linux/ipq40xx/files/drivers/net/ethernet/qualcomm/essedma/edma.c
@@ -2023,6 +2023,10 @@ int edma_open(struct net_device *netdev)
*/
if (adapter->poll_required) {
if (!IS_ERR(adapter->phydev)) {
+ /* AR40xx calibration will leave the PHY in unwanted state,
+ * so a soft reset is required before phy_start()
+ */
+ genphy_soft_reset(adapter->phydev);
phy_start(adapter->phydev);
phy_start_aneg(adapter->phydev);
adapter->link_state = __EDMA_LINKDOWN;