Commit 82a66bbb authored by Tomas Winkler's avatar Tomas Winkler Committed by John W. Linville
Browse files

iwlwifi: clean iwl4965_mac_config



This patch cleans up iwl4965_mac_config.

Signed-off-by: default avatarTomas Winkler <tomas.winkler@intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent d2f18bfd
Loading
Loading
Loading
Loading
+2 −3
Original line number Original line Diff line number Diff line
@@ -573,8 +573,7 @@ void iwl_free_channel_map(struct iwl_priv *priv)
 *
 *
 * Based on band and channel number.
 * Based on band and channel number.
 */
 */
const struct iwl_channel_info *iwl_get_channel_info(
const struct iwl_channel_info *iwl_get_channel_info(const struct iwl_priv *priv,
		const struct iwl_priv *priv,
					enum ieee80211_band band, u16 channel)
					enum ieee80211_band band, u16 channel)
{
{
	int i;
	int i;
+11 −12
Original line number Original line Diff line number Diff line
@@ -1084,7 +1084,7 @@ static int iwl4965_scan_initiate(struct iwl_priv *priv)
}
}




static void iwl4965_set_flags_for_phymode(struct iwl_priv *priv,
static void iwl_set_flags_for_band(struct iwl_priv *priv,
				   enum ieee80211_band band)
				   enum ieee80211_band band)
{
{
	if (band == IEEE80211_BAND_5GHZ) {
	if (band == IEEE80211_BAND_5GHZ) {
@@ -1170,7 +1170,7 @@ static void iwl4965_connection_init_rx_config(struct iwl_priv *priv)
	priv->staging_rxon.channel = cpu_to_le16(ch_info->channel);
	priv->staging_rxon.channel = cpu_to_le16(ch_info->channel);
	priv->band = ch_info->band;
	priv->band = ch_info->band;


	iwl4965_set_flags_for_phymode(priv, priv->band);
	iwl_set_flags_for_band(priv, priv->band);


	priv->staging_rxon.ofdm_basic_rates =
	priv->staging_rxon.ofdm_basic_rates =
	    (IWL_OFDM_RATES_MASK >> IWL_FIRST_OFDM_RATE) & 0xFF;
	    (IWL_OFDM_RATES_MASK >> IWL_FIRST_OFDM_RATE) & 0xFF;
@@ -3823,6 +3823,7 @@ static int iwl4965_mac_config(struct ieee80211_hw *hw, struct ieee80211_conf *co
	const struct iwl_channel_info *ch_info;
	const struct iwl_channel_info *ch_info;
	unsigned long flags;
	unsigned long flags;
	int ret = 0;
	int ret = 0;
	u16 channel;


	mutex_lock(&priv->mutex);
	mutex_lock(&priv->mutex);
	IWL_DEBUG_MAC80211("enter to channel %d\n", conf->channel->hw_value);
	IWL_DEBUG_MAC80211("enter to channel %d\n", conf->channel->hw_value);
@@ -3843,22 +3844,21 @@ static int iwl4965_mac_config(struct ieee80211_hw *hw, struct ieee80211_conf *co
		return 0;
		return 0;
	}
	}


	spin_lock_irqsave(&priv->lock, flags);
	channel = ieee80211_frequency_to_channel(conf->channel->center_freq);

	ch_info = iwl_get_channel_info(priv, conf->channel->band, channel);
	ch_info = iwl_get_channel_info(priv, conf->channel->band,
			ieee80211_frequency_to_channel(conf->channel->center_freq));
	if (!is_channel_valid(ch_info)) {
	if (!is_channel_valid(ch_info)) {
		IWL_DEBUG_MAC80211("leave - invalid channel\n");
		IWL_DEBUG_MAC80211("leave - invalid channel\n");
		spin_unlock_irqrestore(&priv->lock, flags);
		ret = -EINVAL;
		ret = -EINVAL;
		goto out;
		goto out;
	}
	}


	spin_lock_irqsave(&priv->lock, flags);

#ifdef CONFIG_IWL4965_HT
#ifdef CONFIG_IWL4965_HT
	/* if we are switching from ht to 2.4 clear flags
	/* if we are switching from ht to 2.4 clear flags
	 * from any ht related info since 2.4 does not
	 * from any ht related info since 2.4 does not
	 * support ht */
	 * support ht */
	if ((le16_to_cpu(priv->staging_rxon.channel) != conf->channel->hw_value)
	if ((le16_to_cpu(priv->staging_rxon.channel) != channel)
#ifdef IEEE80211_CONF_CHANNEL_SWITCH
#ifdef IEEE80211_CONF_CHANNEL_SWITCH
	    && !(conf->flags & IEEE80211_CONF_CHANNEL_SWITCH)
	    && !(conf->flags & IEEE80211_CONF_CHANNEL_SWITCH)
#endif
#endif
@@ -3866,10 +3866,9 @@ static int iwl4965_mac_config(struct ieee80211_hw *hw, struct ieee80211_conf *co
		priv->staging_rxon.flags = 0;
		priv->staging_rxon.flags = 0;
#endif /* CONFIG_IWL4965_HT */
#endif /* CONFIG_IWL4965_HT */


	iwl_set_rxon_channel(priv, conf->channel->band,
	iwl_set_rxon_channel(priv, conf->channel->band, channel);
		ieee80211_frequency_to_channel(conf->channel->center_freq));


	iwl4965_set_flags_for_phymode(priv, conf->channel->band);
	iwl_set_flags_for_band(priv, conf->channel->band);


	/* The list of supported rates and rate mask can be different
	/* The list of supported rates and rate mask can be different
	 * for each band; since the band may have changed, reset
	 * for each band; since the band may have changed, reset