summaryrefslogtreecommitdiff
path: root/drivers/net/sfc/falcon_xmac.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/sfc/falcon_xmac.c')
-rw-r--r--drivers/net/sfc/falcon_xmac.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/drivers/net/sfc/falcon_xmac.c b/drivers/net/sfc/falcon_xmac.c
index a9ae06a2ae2d..0d9f68ff71e7 100644
--- a/drivers/net/sfc/falcon_xmac.c
+++ b/drivers/net/sfc/falcon_xmac.c
@@ -373,17 +373,9 @@ static void falcon_reconfigure_xgxs_core(struct efx_nic *efx)
reset_xgxs = ((xgxs_loopback != old_xgxs_loopback) ||
(xaui_loopback != old_xaui_loopback) ||
(xgmii_loopback != old_xgmii_loopback));
- if (reset_xgxs) {
- falcon_read(efx, &reg, XX_PWR_RST_REG);
- EFX_SET_OWORD_FIELD(reg, XX_RSTXGXSTX_EN, 1);
- EFX_SET_OWORD_FIELD(reg, XX_RSTXGXSRX_EN, 1);
- falcon_write(efx, &reg, XX_PWR_RST_REG);
- udelay(1);
- EFX_SET_OWORD_FIELD(reg, XX_RSTXGXSTX_EN, 0);
- EFX_SET_OWORD_FIELD(reg, XX_RSTXGXSRX_EN, 0);
- falcon_write(efx, &reg, XX_PWR_RST_REG);
- udelay(1);
- }
+
+ if (reset_xgxs)
+ falcon_reset_xaui(efx);
}
falcon_read(efx, &reg, XX_CORE_STAT_REG);