aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sfc/falcon.c
diff options
context:
space:
mode:
authorBen Hutchings <bhutchings@solarflare.com>2009-11-25 16:11:45 +0000
committerDavid S. Miller <davem@davemloft.net>2009-11-26 15:59:40 -0800
commitfe75820b99ff2de713de23252432f0f9d0ca1d35 (patch)
treeca03ef31a0e3a5352628038db11c5c61e9341da1 /drivers/net/sfc/falcon.c
parentsfc: Split MAC stats DMA initiation and completion (diff)
downloadlinux-dev-fe75820b99ff2de713de23252432f0f9d0ca1d35.tar.xz
linux-dev-fe75820b99ff2de713de23252432f0f9d0ca1d35.zip
sfc: Move Falcon board/PHY/MAC monitoring code to falcon.c
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/sfc/falcon.c')
-rw-r--r--drivers/net/sfc/falcon.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/net/sfc/falcon.c b/drivers/net/sfc/falcon.c
index 3ab2daff6b48..c43c5e6f077b 100644
--- a/drivers/net/sfc/falcon.c
+++ b/drivers/net/sfc/falcon.c
@@ -2612,6 +2612,21 @@ fail5:
return rc;
}
+void falcon_monitor(struct efx_nic *efx)
+{
+ int rc;
+
+ rc = falcon_board(efx)->type->monitor(efx);
+ if (rc) {
+ EFX_ERR(efx, "Board sensor %s; shutting down PHY\n",
+ (rc == -ERANGE) ? "reported fault" : "failed");
+ efx->phy_mode |= PHY_MODE_LOW_POWER;
+ falcon_sim_phy_event(efx);
+ }
+ efx->phy_op->poll(efx);
+ efx->mac_op->poll(efx);
+}
+
/* Zeroes out the SRAM contents. This routine must be called in
* process context and is allowed to sleep.
*/