sfc: Extend loopback mode enumeration
Subsystems (2)
PATCH 2/12 sfc: Extend loopback mode enumeration
New NICs and PHYs support a wider variety of loopback modes.
Signed-off-by Ben Hutchings <[email protected]>
--- drivers/net/sfc/efx.c | 19 +++++++- drivers/net/sfc/enum.h | 106 +++++++++++++++++++++++++++++++++-------- drivers/net/sfc/falcon_xmac.c | 2 +- drivers/net/sfc/mdio_10g.c | 4 +- drivers/net/sfc/net_driver.h | 2 +- drivers/net/sfc/qt202x_phy.c | 2 +- drivers/net/sfc/tenxpress.c | 4 +- 7 files changed, 111 insertions(+), 28 deletions(-)
drivers/net/sfc/efx.c +18 -1
@@ -36,15 +36,32 @@const unsigned int efx_loopback_mode_max =LOOPBACK_MAX ;const char *efx_loopback_mode_names[] = { [LOOPBACK_NONE ] ="NONE" , + [LOOPBACK_DATA ] ="DATAPATH" , [LOOPBACK_GMAC ] ="GMAC" , [LOOPBACK_XGMII ] ="XGMII" , [LOOPBACK_XGXS ] ="XGXS" , [LOOPBACK_XAUI ] ="XAUI" , + [LOOPBACK_GMII ] ="GMII" , + [LOOPBACK_SGMII ] ="SGMII" , + [LOOPBACK_XGBR ] ="XGBR" , + [LOOPBACK_XFI ] ="XFI" , + [LOOPBACK_XAUI_FAR ] ="XAUI_FAR" , + [LOOPBACK_GMII_FAR ] ="GMII_FAR" , + [LOOPBACK_SGMII_FAR ] ="SGMII_FAR" , + [LOOPBACK_XFI_FAR ] ="XFI_FAR" , [LOOPBACK_GPHY ] ="GPHY" , [LOOPBACK_PHYXS ] ="PHYXS" , [LOOPBACK_PCS ] ="PCS" , [LOOPBACK_PMAPMD ] ="PMA/PMD" , - [LOOPBACK_NETWORK ] ="NETWORK" , + [LOOPBACK_XPORT ] ="XPORT" , + [LOOPBACK_XGMII_WS ] ="XGMII_WS" , + [LOOPBACK_XAUI_WS ] ="XAUI_WS" , + [LOOPBACK_XAUI_WS_FAR ] ="XAUI_WS_FAR" , + [LOOPBACK_XAUI_WS_NEAR ] ="XAUI_WS_NEAR" , + [LOOPBACK_GMII_WS ] ="GMII_WS" , + [LOOPBACK_XFI_WS ] ="XFI_WS" , + [LOOPBACK_XFI_WS_FAR ] ="XFI_WS_FAR" , + [LOOPBACK_PHYXS_WS ] ="PHYXS_WS" , };/* Interrupt mode names (see INT_MODE())) */
drivers/net/sfc/enum.h +86 -20
130 lines not on this page · raw message
drivers/net/sfc/falcon_xmac.c +1 -1
@@ -249,7 +249,7 @@ static bool falcon_check_xaui_link_up(struct efx_nic *efx, int tries) {bool mac_up =falcon_xaui_link_ok (efx); -if ((efx->loopback_mode ==LOOPBACK_NETWORK ) || +if (LOOPBACK_MASK (efx) &LOOPBACKS_EXTERNAL (efx) &LOOPBACKS_WS ||efx_phy_mode_disabled (efx->phy_mode))/* XAUI link is expected to be down */ return mac_up;
drivers/net/sfc/mdio_10g.c +2 -2
@@ -173,7 +173,7 @@ bool efx_mdio_links_ok(struct efx_nic *efx, unsigned int mmd_mask)* of mmd's */ if (LOOPBACK_INTERNAL (efx))return true; -else if (efx->loopback_mode ==LOOPBACK_NETWORK ) +else if (LOOPBACK_MASK (efx) &LOOPBACKS_WS )return false;else if (efx_phy_mode_disabled (efx->phy_mode))return false;
@@ -210,7 +210,7 @@ void efx_mdio_phy_reconfigure(struct efx_nic *efx) efx->loopback_mode == LOOPBACK_PCS);efx_mdio_set_flag (efx,MDIO_MMD_PHYXS ,MDIO_CTRL1 ,MDIO_PHYXS_CTRL1_LOOPBACK , - efx->loopback_mode ==LOOPBACK_NETWORK ); + efx->loopback_mode ==LOOPBACK_PHYXS_WS ); } static void efx_mdio_set_mmd_lpower(struct efx_nic *efx,
drivers/net/sfc/net_driver.h +1 -1
@@ -824,7 +824,7 @@ struct efx_nic {atomic_t rx_reset;enum efx_loopback_mode loopback_mode; -unsigned int loopback_modes; +u64 loopback_modes;void *loopback_selftest; };
drivers/net/sfc/qt202x_phy.c +1 -1
@@ -23,7 +23,7 @@#define QT202X_LOOPBACKS ((1 << LOOPBACK_PCS) | \ (1 << LOOPBACK_PMAPMD) | \ - (1 << LOOPBACK_NETWORK)) + (1 << LOOPBACK_PHYXS_WS))/****************************************************************************/ /* Quake-specific MDIO registers */
drivers/net/sfc/tenxpress.c +2 -2
@@ -30,13 +30,13 @@#define SFX7101_LOOPBACKS ((1 << LOOPBACK_PHYXS) | \ (1 << LOOPBACK_PCS) | \ (1 << LOOPBACK_PMAPMD) | \ - (1 << LOOPBACK_NETWORK)) + (1 << LOOPBACK_PHYXS_WS))#define SFT9001_LOOPBACKS ((1 << LOOPBACK_GPHY) | \ (1 << LOOPBACK_PHYXS) | \ (1 << LOOPBACK_PCS) | \ (1 << LOOPBACK_PMAPMD) | \ - (1 << LOOPBACK_NETWORK)) + (1 << LOOPBACK_PHYXS_WS))/* We complain if we fail to see the link partner as 10G capable this many * times in a row (must be > 1 as sampling the autoneg. registers is racy)
Signature · 9 lines
1.6.5.3 -- 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: Mon, 30 Nov 2009 01:08:41 +0000
Quoted 3 lines
New NICs and PHYs support a wider variety of loopback modes.
Signed-off-by Ben Hutchings <[email protected]>
Applied.