forked from Minki/linux
iwlegacy: refactor iwl4965_mac_channel_switch
Use less indentions and remove uneeded irq-save flags. Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
0d01550f3d
commit
7f1f974251
@ -2510,7 +2510,6 @@ void iwl4965_mac_channel_switch(struct ieee80211_hw *hw,
|
|||||||
|
|
||||||
struct iwl_rxon_context *ctx = &priv->contexts[IWL_RXON_CTX_BSS];
|
struct iwl_rxon_context *ctx = &priv->contexts[IWL_RXON_CTX_BSS];
|
||||||
u16 ch;
|
u16 ch;
|
||||||
unsigned long flags = 0;
|
|
||||||
|
|
||||||
IWL_DEBUG_MAC80211(priv, "enter\n");
|
IWL_DEBUG_MAC80211(priv, "enter\n");
|
||||||
|
|
||||||
@ -2527,64 +2526,64 @@ void iwl4965_mac_channel_switch(struct ieee80211_hw *hw,
|
|||||||
if (!iwl_legacy_is_associated_ctx(ctx))
|
if (!iwl_legacy_is_associated_ctx(ctx))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (priv->cfg->ops->lib->set_channel_switch) {
|
if (priv->cfg->ops->lib->set_channel_switch)
|
||||||
|
goto out;
|
||||||
|
|
||||||
ch = channel->hw_value;
|
ch = channel->hw_value;
|
||||||
if (le16_to_cpu(ctx->active.channel) != ch) {
|
if (le16_to_cpu(ctx->active.channel) == ch)
|
||||||
ch_info = iwl_legacy_get_channel_info(priv,
|
goto out;
|
||||||
channel->band,
|
|
||||||
ch);
|
|
||||||
if (!iwl_legacy_is_channel_valid(ch_info)) {
|
|
||||||
IWL_DEBUG_MAC80211(priv, "invalid channel\n");
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
spin_lock_irqsave(&priv->lock, flags);
|
|
||||||
|
|
||||||
priv->current_ht_config.smps = conf->smps_mode;
|
ch_info = iwl_legacy_get_channel_info(priv, channel->band, ch);
|
||||||
|
if (!iwl_legacy_is_channel_valid(ch_info)) {
|
||||||
/* Configure HT40 channels */
|
IWL_DEBUG_MAC80211(priv, "invalid channel\n");
|
||||||
ctx->ht.enabled = conf_is_ht(conf);
|
goto out;
|
||||||
if (ctx->ht.enabled) {
|
|
||||||
if (conf_is_ht40_minus(conf)) {
|
|
||||||
ctx->ht.extension_chan_offset =
|
|
||||||
IEEE80211_HT_PARAM_CHA_SEC_BELOW;
|
|
||||||
ctx->ht.is_40mhz = true;
|
|
||||||
} else if (conf_is_ht40_plus(conf)) {
|
|
||||||
ctx->ht.extension_chan_offset =
|
|
||||||
IEEE80211_HT_PARAM_CHA_SEC_ABOVE;
|
|
||||||
ctx->ht.is_40mhz = true;
|
|
||||||
} else {
|
|
||||||
ctx->ht.extension_chan_offset =
|
|
||||||
IEEE80211_HT_PARAM_CHA_SEC_NONE;
|
|
||||||
ctx->ht.is_40mhz = false;
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
ctx->ht.is_40mhz = false;
|
|
||||||
|
|
||||||
if ((le16_to_cpu(ctx->staging.channel) != ch))
|
|
||||||
ctx->staging.flags = 0;
|
|
||||||
|
|
||||||
iwl_legacy_set_rxon_channel(priv, channel, ctx);
|
|
||||||
iwl_legacy_set_rxon_ht(priv, ht_conf);
|
|
||||||
iwl_legacy_set_flags_for_band(priv, ctx, channel->band,
|
|
||||||
ctx->vif);
|
|
||||||
spin_unlock_irqrestore(&priv->lock, flags);
|
|
||||||
|
|
||||||
iwl_legacy_set_rate(priv);
|
|
||||||
/*
|
|
||||||
* at this point, staging_rxon has the
|
|
||||||
* configuration for channel switch
|
|
||||||
*/
|
|
||||||
set_bit(STATUS_CHANNEL_SWITCH_PENDING, &priv->status);
|
|
||||||
priv->switch_channel = cpu_to_le16(ch);
|
|
||||||
if (priv->cfg->ops->lib->set_channel_switch(priv, ch_switch)) {
|
|
||||||
clear_bit(STATUS_CHANNEL_SWITCH_PENDING,
|
|
||||||
&priv->status);
|
|
||||||
priv->switch_channel = 0;
|
|
||||||
ieee80211_chswitch_done(ctx->vif, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
spin_lock(&priv->lock);
|
||||||
|
|
||||||
|
priv->current_ht_config.smps = conf->smps_mode;
|
||||||
|
|
||||||
|
/* Configure HT40 channels */
|
||||||
|
ctx->ht.enabled = conf_is_ht(conf);
|
||||||
|
if (ctx->ht.enabled) {
|
||||||
|
if (conf_is_ht40_minus(conf)) {
|
||||||
|
ctx->ht.extension_chan_offset =
|
||||||
|
IEEE80211_HT_PARAM_CHA_SEC_BELOW;
|
||||||
|
ctx->ht.is_40mhz = true;
|
||||||
|
} else if (conf_is_ht40_plus(conf)) {
|
||||||
|
ctx->ht.extension_chan_offset =
|
||||||
|
IEEE80211_HT_PARAM_CHA_SEC_ABOVE;
|
||||||
|
ctx->ht.is_40mhz = true;
|
||||||
|
} else {
|
||||||
|
ctx->ht.extension_chan_offset =
|
||||||
|
IEEE80211_HT_PARAM_CHA_SEC_NONE;
|
||||||
|
ctx->ht.is_40mhz = false;
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
ctx->ht.is_40mhz = false;
|
||||||
|
|
||||||
|
if ((le16_to_cpu(ctx->staging.channel) != ch))
|
||||||
|
ctx->staging.flags = 0;
|
||||||
|
|
||||||
|
iwl_legacy_set_rxon_channel(priv, channel, ctx);
|
||||||
|
iwl_legacy_set_rxon_ht(priv, ht_conf);
|
||||||
|
iwl_legacy_set_flags_for_band(priv, ctx, channel->band, ctx->vif);
|
||||||
|
|
||||||
|
spin_unlock_irq(&priv->lock);
|
||||||
|
|
||||||
|
iwl_legacy_set_rate(priv);
|
||||||
|
/*
|
||||||
|
* at this point, staging_rxon has the
|
||||||
|
* configuration for channel switch
|
||||||
|
*/
|
||||||
|
set_bit(STATUS_CHANNEL_SWITCH_PENDING, &priv->status);
|
||||||
|
priv->switch_channel = cpu_to_le16(ch);
|
||||||
|
if (priv->cfg->ops->lib->set_channel_switch(priv, ch_switch)) {
|
||||||
|
clear_bit(STATUS_CHANNEL_SWITCH_PENDING, &priv->status);
|
||||||
|
priv->switch_channel = 0;
|
||||||
|
ieee80211_chswitch_done(ctx->vif, false);
|
||||||
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
mutex_unlock(&priv->mutex);
|
mutex_unlock(&priv->mutex);
|
||||||
IWL_DEBUG_MAC80211(priv, "leave\n");
|
IWL_DEBUG_MAC80211(priv, "leave\n");
|
||||||
|
Loading…
Reference in New Issue
Block a user