[openwrt/openwrt] ipq40xx: net: ethernet: edma: fix link detection

LEDE Commits lede-commits at lists.infradead.org
Wed Dec 23 10:36:32 EST 2020


ynezz pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/053c3d8e0b1b8d9371df8d989942243e9839acf0

commit 053c3d8e0b1b8d9371df8d989942243e9839acf0
Author: Robert Marko <robert.marko at sartura.hr>
AuthorDate: Thu Oct 8 12:19:05 2020 +0200

    ipq40xx: net: ethernet: edma: fix link detection
    
    PHY needs to be soft reset before starting it from ethernet driver as
    AR40xx calibration will leave it in unwanted state.
    
    Signed-off-by: Robert Marko <robert.marko at sartura.hr>
---
 .../linux/ipq40xx/files/drivers/net/ethernet/qualcomm/essedma/edma.c  | 4 ++++
 1 file changed, 4 insertions(+)

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;



More information about the lede-commits mailing list