From 34ccbc35a2714e021c1929f0cd36b4e62eaaa77b Mon Sep 17 00:00:00 2001 From: Qingpeng Yang Date: Sun, 28 Sep 2025 10:09:23 +0000 Subject: [PATCH] eth: fix TXHD2 link issue after resume [1/1] PD#SWPL-233319 Problem: After system suspend, due to phy must power off, TXHD2 phy register reset to default value. Solution: Restore phy register after resume. Verify: TXHD2-BE311 Change-Id: I40a3dc0636d3c788a7fc245f588270b7f4a205bd Signed-off-by: Qingpeng Yang --- drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c index f8fea744c..781e11941 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c @@ -894,8 +894,6 @@ static int meson8b_resume(struct device *dev) if (phydev) phydev->irq_suspended = 0; ret = stmmac_resume(dev); - if (phydev) - gxl_resume_internal_registers(phydev); } else { if (dwmac->data->resume) dwmac->data->resume(dwmac); @@ -904,6 +902,13 @@ static int meson8b_resume(struct device *dev) phydev->irq_suspended = 0; ret = stmmac_resume(dev); } + /* only for eth reset or txhd2. + * txhd2: restore register due to PHY must poweroff + */ + if (ee_reset_base || phy_mode == 2) { + if (phydev) + gxl_resume_internal_registers(phydev); + } } /*RTC wait linkup*/ pr_info("eth hold wakelock 5s\n");