|
@@ -806,8 +806,12 @@ static int iwlagn_request_scan(struct iwl_priv *priv, struct ieee80211_vif *vif)
|
|
|
rate_flags |= iwl_ant_idx_to_flags(priv->scan_tx_ant[band]);
|
|
|
scan->tx_cmd.rate_n_flags = iwl_hw_set_rate_n_flags(rate, rate_flags);
|
|
|
|
|
|
- /* In power save mode use one chain, otherwise use all chains */
|
|
|
- if (test_bit(STATUS_POWER_PMI, &priv->shrd->status)) {
|
|
|
+ /*
|
|
|
+ * In power save mode while associated use one chain,
|
|
|
+ * otherwise use all chains
|
|
|
+ */
|
|
|
+ if (test_bit(STATUS_POWER_PMI, &priv->shrd->status) &&
|
|
|
+ !(priv->hw->conf.flags & IEEE80211_CONF_IDLE)) {
|
|
|
/* rx_ant has been set to all valid chains previously */
|
|
|
active_chains = rx_ant &
|
|
|
((u8)(priv->chain_noise_data.active_chains));
|