|
@@ -127,6 +127,18 @@ static void siena_remove_port(struct efx_nic *efx)
|
|
|
efx_nic_free_buffer(efx, &efx->stats_buffer);
|
|
|
}
|
|
|
|
|
|
+void siena_prepare_flush(struct efx_nic *efx)
|
|
|
+{
|
|
|
+ if (efx->fc_disable++ == 0)
|
|
|
+ efx_mcdi_set_mac(efx);
|
|
|
+}
|
|
|
+
|
|
|
+void siena_finish_flush(struct efx_nic *efx)
|
|
|
+{
|
|
|
+ if (--efx->fc_disable == 0)
|
|
|
+ efx_mcdi_set_mac(efx);
|
|
|
+}
|
|
|
+
|
|
|
static const struct efx_nic_register_test siena_register_tests[] = {
|
|
|
{ FR_AZ_ADR_REGION,
|
|
|
EFX_OWORD32(0x0003FFFF, 0x0003FFFF, 0x0003FFFF, 0x0003FFFF) },
|
|
@@ -659,7 +671,8 @@ const struct efx_nic_type siena_a0_nic_type = {
|
|
|
.reset = siena_reset_hw,
|
|
|
.probe_port = siena_probe_port,
|
|
|
.remove_port = siena_remove_port,
|
|
|
- .prepare_flush = efx_port_dummy_op_void,
|
|
|
+ .prepare_flush = siena_prepare_flush,
|
|
|
+ .finish_flush = siena_finish_flush,
|
|
|
.update_stats = siena_update_nic_stats,
|
|
|
.start_stats = siena_start_nic_stats,
|
|
|
.stop_stats = siena_stop_nic_stats,
|