sfc: Merge efx_mac_operations into efx_nic_type
No NICs need to switch efx_mac_operations at run-time, and the MAC operations are fairly closely bound to NIC types. Move efx_mac_operations::reconfigure to efx_nic_type::reconfigure_mac and efx_mac_operations::check_fault fo efx_nic_type::check_mac_fault. Change callers to call through efx->type or directly if the NIC type is known. Remove efx_mac_operations::update_stats. The implementations for Falcon used to fetch MAC statistics synchronously and this was used by efx_register_netdev() to clear statistics after running self-tests. However, it now only converts statistics that have already been fetched (and that only for Falcon), and the call from efx_register_netdev() has no effect. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
This commit is contained in:
@@ -9,7 +9,6 @@
|
||||
|
||||
#include "net_driver.h"
|
||||
#include "efx.h"
|
||||
#include "mac.h"
|
||||
#include "mcdi.h"
|
||||
#include "mcdi_pcol.h"
|
||||
|
||||
@@ -115,7 +114,7 @@ fail:
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int efx_mcdi_mac_reconfigure(struct efx_nic *efx)
|
||||
int efx_mcdi_mac_reconfigure(struct efx_nic *efx)
|
||||
{
|
||||
int rc;
|
||||
|
||||
@@ -130,16 +129,9 @@ static int efx_mcdi_mac_reconfigure(struct efx_nic *efx)
|
||||
}
|
||||
|
||||
|
||||
static bool efx_mcdi_mac_check_fault(struct efx_nic *efx)
|
||||
bool efx_mcdi_mac_check_fault(struct efx_nic *efx)
|
||||
{
|
||||
u32 faults;
|
||||
int rc = efx_mcdi_get_mac_faults(efx, &faults);
|
||||
return (rc != 0) || (faults != 0);
|
||||
}
|
||||
|
||||
|
||||
const struct efx_mac_operations efx_mcdi_mac_operations = {
|
||||
.reconfigure = efx_mcdi_mac_reconfigure,
|
||||
.update_stats = efx_port_dummy_op_void,
|
||||
.check_fault = efx_mcdi_mac_check_fault,
|
||||
};
|
||||
|
Reference in New Issue
Block a user