sfc: Keep disabled NICs quiescent during suspend/resume

Currently we ignore and clear the disabled state.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
This commit is contained in:
Ben Hutchings 2012-07-27 19:35:47 +01:00
parent 61da026d86
commit 6032fb56c5
1 changed files with 16 additions and 12 deletions

View File

@ -2729,12 +2729,14 @@ static int efx_pm_freeze(struct device *dev)
rtnl_lock();
efx->state = STATE_UNINIT;
if (efx->state != STATE_DISABLED) {
efx->state = STATE_UNINIT;
netif_device_detach(efx->net_dev);
netif_device_detach(efx->net_dev);
efx_stop_all(efx);
efx_stop_interrupts(efx, false);
efx_stop_all(efx);
efx_stop_interrupts(efx, false);
}
rtnl_unlock();
@ -2747,19 +2749,21 @@ static int efx_pm_thaw(struct device *dev)
rtnl_lock();
efx_start_interrupts(efx, false);
if (efx->state != STATE_DISABLED) {
efx_start_interrupts(efx, false);
mutex_lock(&efx->mac_lock);
efx->phy_op->reconfigure(efx);
mutex_unlock(&efx->mac_lock);
mutex_lock(&efx->mac_lock);
efx->phy_op->reconfigure(efx);
mutex_unlock(&efx->mac_lock);
efx_start_all(efx);
efx_start_all(efx);
netif_device_attach(efx->net_dev);
netif_device_attach(efx->net_dev);
efx->state = STATE_READY;
efx->state = STATE_READY;
efx->type->resume_wol(efx);
efx->type->resume_wol(efx);
}
rtnl_unlock();