sfc: QT2025C: Use hard reset only
Subsystems (2)
PATCH 4/7 sfc: QT2025C: Use hard reset only
At probe time, falcon_reset_hw() performs a hard reset of the PHY along with Falcon. There is no need to perform a soft reset later, and any access to standard MDIO registers before the PHY firmware has booted can interrupt the boot process, making the port unusable.
Signed-off-by Ben Hutchings <[email protected]>
--- drivers/net/sfc/xfp_phy.c | 19 ++++++++++--------- 1 files changed, 10 insertions(+), 9 deletions(-)
drivers/net/sfc/xfp_phy.c +10 -9
@@ -97,23 +97,24 @@ static int qt2025c_wait_reset(struct efx_nic *efx)return 0 ; } -/* Reset the PHYXS MMD. This is documented (for the Quake PHYs) as doing -* a complete soft reset. -*/ static int xfp_reset_phy (struct efx_nic *efx) {int rc; - rc =efx_mdio_reset_mmd (efx,MDIO_MMD_PHYXS , -XFP_MAX_RESET_TIME /XFP_RESET_WAIT , -XFP_RESET_WAIT ); -if (rc <0 ) - goto fail; -if (efx->phy_type ==PHY_TYPE_QT2025C ) { +/* Wait for the reset triggered by falcon_reset_hw() +* to complete */ rc =qt2025c_wait_reset (efx);if (rc <0 ) goto fail; + }else { +/* Reset the PHYXS MMD. This is documented as doing +* a complete soft reset. */ + rc =efx_mdio_reset_mmd (efx,MDIO_MMD_PHYXS , +XFP_MAX_RESET_TIME /XFP_RESET_WAIT , +XFP_RESET_WAIT ); +if (rc <0 ) + goto fail; }/* Wait 250ms for the PHY to complete bootup */
Signature · 3 lines
Ben Hutchings, Senior Software Engineer, Solarflare Communications Not speaking for my employer; that's the marketing department's job. They asked us to note that Solarflare product names are trademarked.
From: Ben Hutchings <[email protected]>
Date: Wed, 26 Aug 2009 19:17:19 +0100
Quoted 6 lines
At probe time,
falcon_reset_hw()performs a hard reset of the PHY along with Falcon. There is no need to perform a soft reset later, and any access to standard MDIO registers before the PHY firmware has booted can interrupt the boot process, making the port unusable.Signed-off-by Ben Hutchings <[email protected]>
Applied.