diff options
Diffstat (limited to 'drivers/net/ethernet/sfc/mcdi.h')
| -rw-r--r-- | drivers/net/ethernet/sfc/mcdi.h | 12 | 
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/net/ethernet/sfc/mcdi.h b/drivers/net/ethernet/sfc/mcdi.h index 0bdf3e33183..3ba2e5b5a9c 100644 --- a/drivers/net/ethernet/sfc/mcdi.h +++ b/drivers/net/ethernet/sfc/mcdi.h @@ -71,6 +71,12 @@ extern int efx_mcdi_rpc(struct efx_nic *efx, unsigned cmd, const u8 *inbuf,  			size_t inlen, u8 *outbuf, size_t outlen,  			size_t *outlen_actual); +extern void efx_mcdi_rpc_start(struct efx_nic *efx, unsigned cmd, +			       const u8 *inbuf, size_t inlen); +extern int efx_mcdi_rpc_finish(struct efx_nic *efx, unsigned cmd, size_t inlen, +			       u8 *outbuf, size_t outlen, +			       size_t *outlen_actual); +  extern int efx_mcdi_poll_reboot(struct efx_nic *efx);  extern void efx_mcdi_mode_poll(struct efx_nic *efx);  extern void efx_mcdi_mode_event(struct efx_nic *efx); @@ -107,11 +113,13 @@ extern void efx_mcdi_sensor_event(struct efx_nic *efx, efx_qword_t *ev);  #define MCDI_EVENT_FIELD(_ev, _field)			\  	EFX_QWORD_FIELD(_ev, MCDI_EVENT_ ## _field)  #define MCDI_ARRAY_FIELD(_buf, _field1, _type, _index, _field2)		\ -	EFX_DWORD_FIELD(						\ +	EFX_EXTRACT_DWORD(						\  		*((efx_dword_t *)					\  		  (MCDI_ARRAY_PTR(_buf, _field1, _type, _index) +	\  		   (MC_CMD_ ## _type ## _TYPEDEF_ ## _field2 ## _OFST & ~3))), \ -		MC_CMD_ ## _type ## _TYPEDEF_ ## _field2) +		MC_CMD_ ## _type ## _TYPEDEF_ ## _field2 ## _LBN & 0x1f, \ +		(MC_CMD_ ## _type ## _TYPEDEF_ ## _field2 ## _LBN & 0x1f) + \ +		MC_CMD_ ## _type ## _TYPEDEF_ ## _field2 ## _WIDTH - 1)  extern void efx_mcdi_print_fwver(struct efx_nic *efx, char *buf, size_t len);  extern int efx_mcdi_drv_attach(struct efx_nic *efx, bool driver_operating,  |