diff options
Diffstat (limited to 'drivers/net/ethernet/sfc/mcdi.h')
-rw-r--r-- | drivers/net/ethernet/sfc/mcdi.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/net/ethernet/sfc/mcdi.h b/drivers/net/ethernet/sfc/mcdi.h index 52931aebf3c3..56465f7465a2 100644 --- a/drivers/net/ethernet/sfc/mcdi.h +++ b/drivers/net/ethernet/sfc/mcdi.h | |||
@@ -28,9 +28,16 @@ enum efx_mcdi_state { | |||
28 | MCDI_STATE_COMPLETED, | 28 | MCDI_STATE_COMPLETED, |
29 | }; | 29 | }; |
30 | 30 | ||
31 | /** | ||
32 | * enum efx_mcdi_mode - MCDI transaction mode | ||
33 | * @MCDI_MODE_POLL: poll for MCDI completion, until timeout | ||
34 | * @MCDI_MODE_EVENTS: wait for an mcdi_event. On timeout, poll once | ||
35 | * @MCDI_MODE_FAIL: we think MCDI is dead, so fail-fast all calls | ||
36 | */ | ||
31 | enum efx_mcdi_mode { | 37 | enum efx_mcdi_mode { |
32 | MCDI_MODE_POLL, | 38 | MCDI_MODE_POLL, |
33 | MCDI_MODE_EVENTS, | 39 | MCDI_MODE_EVENTS, |
40 | MCDI_MODE_FAIL, | ||
34 | }; | 41 | }; |
35 | 42 | ||
36 | /** | 43 | /** |
@@ -104,6 +111,12 @@ struct efx_mcdi_data { | |||
104 | u32 fn_flags; | 111 | u32 fn_flags; |
105 | }; | 112 | }; |
106 | 113 | ||
114 | static inline struct efx_mcdi_iface *efx_mcdi(struct efx_nic *efx) | ||
115 | { | ||
116 | EFX_BUG_ON_PARANOID(!efx->mcdi); | ||
117 | return &efx->mcdi->iface; | ||
118 | } | ||
119 | |||
107 | #ifdef CONFIG_SFC_MCDI_MON | 120 | #ifdef CONFIG_SFC_MCDI_MON |
108 | static inline struct efx_mcdi_mon *efx_mcdi_mon(struct efx_nic *efx) | 121 | static inline struct efx_mcdi_mon *efx_mcdi_mon(struct efx_nic *efx) |
109 | { | 122 | { |