aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sfc/falcon_xmac.c
diff options
context:
space:
mode:
authorBen Hutchings <bhutchings@solarflare.com>2008-09-01 07:49:02 -0400
committerJeff Garzik <jgarzik@redhat.com>2008-09-03 09:53:48 -0400
commit8c8661e4cefdd1ddbfe7d5120f046694555d9e5c (patch)
tree0618e0392140bccadf012381e64a795dfe2e41a4 /drivers/net/sfc/falcon_xmac.c
parenta515089c963b045f65c495cee1d344d8cb75e1d1 (diff)
sfc: Extend self-tests
Include PMA/PMD in loopback self-tests as intended. Add NVRAM checksum validation and include it in self-tests. Add register self-tests. Run PHY self-tests where available. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
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)
373 reset_xgxs = ((xgxs_loopback != old_xgxs_loopback) || 373 reset_xgxs = ((xgxs_loopback != old_xgxs_loopback) ||
374 (xaui_loopback != old_xaui_loopback) || 374 (xaui_loopback != old_xaui_loopback) ||
375 (xgmii_loopback != old_xgmii_loopback)); 375 (xgmii_loopback != old_xgmii_loopback));
376 if (reset_xgxs) { 376
377 falcon_read(efx, &reg, XX_PWR_RST_REG); 377 if (reset_xgxs)
378 EFX_SET_OWORD_FIELD(reg, XX_RSTXGXSTX_EN, 1); 378 falcon_reset_xaui(efx);
379 EFX_SET_OWORD_FIELD(reg, XX_RSTXGXSRX_EN, 1);
380 falcon_write(efx, &reg, XX_PWR_RST_REG);
381 udelay(1);
382 EFX_SET_OWORD_FIELD(reg, XX_RSTXGXSTX_EN, 0);
383 EFX_SET_OWORD_FIELD(reg, XX_RSTXGXSRX_EN, 0);
384 falcon_write(efx, &reg, XX_PWR_RST_REG);
385 udelay(1);
386 }
387 } 379 }
388 380
389 falcon_read(efx, &reg, XX_CORE_STAT_REG); 381 falcon_read(efx, &reg, XX_CORE_STAT_REG);