iwlwifi: handle the case when set power fail

Modify the power update function, when driver fail to set the power, it
should not continue move forward and try to change the rx chain
configuration.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Wey-Yi Guy 2009-08-07 15:41:47 -07:00 committed by John W. Linville
parent ee9f29894f
commit 3a780d2542

View File

@ -282,18 +282,21 @@ int iwl_power_update_mode(struct iwl_priv *priv, bool force)
cmd.flags |= IWL_POWER_FAST_PD; cmd.flags |= IWL_POWER_FAST_PD;
ret = iwl_set_power(priv, &cmd); ret = iwl_set_power(priv, &cmd);
if (!ret) {
if (final_mode == IWL_POWER_MODE_CAM)
clear_bit(STATUS_POWER_PMI, &priv->status);
if (final_mode == IWL_POWER_MODE_CAM) if (priv->cfg->ops->lib->update_chain_flags &&
clear_bit(STATUS_POWER_PMI, &priv->status); update_chains)
priv->cfg->ops->lib->update_chain_flags(priv);
if (priv->cfg->ops->lib->update_chain_flags && update_chains) else
priv->cfg->ops->lib->update_chain_flags(priv); IWL_DEBUG_POWER(priv,
else "Cannot update the power, chain noise "
IWL_DEBUG_POWER(priv, "Cannot update the power, chain noise "
"calibration running: %d\n", "calibration running: %d\n",
priv->chain_noise_data.state); priv->chain_noise_data.state);
if (!ret)
setting->power_mode = final_mode; setting->power_mode = final_mode;
} else
IWL_ERR(priv, "set power fail, ret = %d", ret);
} }
return ret; return ret;