diff options
author | Alexandre Rames <arames@solarflare.com> | 2013-01-14 12:20:22 -0500 |
---|---|---|
committer | Ben Hutchings <bhutchings@solarflare.com> | 2013-03-07 15:22:04 -0500 |
commit | 626950db84c065925ee10c2e833da265cbda8800 (patch) | |
tree | d4acb18c4b3554f80ff7a21bfeb63dd56420474f /drivers/net/ethernet/sfc/enum.h | |
parent | 634ab72c39b3df78ac7d6ccd4a50133059bae14f (diff) |
sfc: Add AER and EEH support for Siena
The Linux side of EEH is triggered by MMIO reads, but this
driver's data path does not issue any MMIO reads (except in
legacy interrupt mode). Therefore add a monitor function
to poll EEH periodically.
When preparing to reset the device based on our own error
detection, also poll EEH and defer to its recovery mechanism
if appropriate.
[bwh: Use a separate condition for the initial link poll; fix some
style errors]
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Diffstat (limited to 'drivers/net/ethernet/sfc/enum.h')
-rw-r--r-- | drivers/net/ethernet/sfc/enum.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/net/ethernet/sfc/enum.h b/drivers/net/ethernet/sfc/enum.h index 182dbe2cc6e4..ab8fb5889e55 100644 --- a/drivers/net/ethernet/sfc/enum.h +++ b/drivers/net/ethernet/sfc/enum.h | |||
@@ -137,8 +137,12 @@ enum efx_loopback_mode { | |||
137 | * Reset methods are numbered in order of increasing scope. | 137 | * Reset methods are numbered in order of increasing scope. |
138 | * | 138 | * |
139 | * @RESET_TYPE_INVISIBLE: Reset datapath and MAC (Falcon only) | 139 | * @RESET_TYPE_INVISIBLE: Reset datapath and MAC (Falcon only) |
140 | * @RESET_TYPE_RECOVER_OR_ALL: Try to recover. Apply RESET_TYPE_ALL | ||
141 | * if unsuccessful. | ||
140 | * @RESET_TYPE_ALL: Reset datapath, MAC and PHY | 142 | * @RESET_TYPE_ALL: Reset datapath, MAC and PHY |
141 | * @RESET_TYPE_WORLD: Reset as much as possible | 143 | * @RESET_TYPE_WORLD: Reset as much as possible |
144 | * @RESET_TYPE_RECOVER_OR_DISABLE: Try to recover. Apply RESET_TYPE_DISABLE if | ||
145 | * unsuccessful. | ||
142 | * @RESET_TYPE_DISABLE: Reset datapath, MAC and PHY; leave NIC disabled | 146 | * @RESET_TYPE_DISABLE: Reset datapath, MAC and PHY; leave NIC disabled |
143 | * @RESET_TYPE_TX_WATCHDOG: reset due to TX watchdog | 147 | * @RESET_TYPE_TX_WATCHDOG: reset due to TX watchdog |
144 | * @RESET_TYPE_INT_ERROR: reset due to internal error | 148 | * @RESET_TYPE_INT_ERROR: reset due to internal error |
@@ -150,9 +154,11 @@ enum efx_loopback_mode { | |||
150 | */ | 154 | */ |
151 | enum reset_type { | 155 | enum reset_type { |
152 | RESET_TYPE_INVISIBLE = 0, | 156 | RESET_TYPE_INVISIBLE = 0, |
153 | RESET_TYPE_ALL = 1, | 157 | RESET_TYPE_RECOVER_OR_ALL = 1, |
154 | RESET_TYPE_WORLD = 2, | 158 | RESET_TYPE_ALL = 2, |
155 | RESET_TYPE_DISABLE = 3, | 159 | RESET_TYPE_WORLD = 3, |
160 | RESET_TYPE_RECOVER_OR_DISABLE = 4, | ||
161 | RESET_TYPE_DISABLE = 5, | ||
156 | RESET_TYPE_MAX_METHOD, | 162 | RESET_TYPE_MAX_METHOD, |
157 | RESET_TYPE_TX_WATCHDOG, | 163 | RESET_TYPE_TX_WATCHDOG, |
158 | RESET_TYPE_INT_ERROR, | 164 | RESET_TYPE_INT_ERROR, |