Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7e79a393 authored by Johannes Berg's avatar Johannes Berg Committed by John W. Linville
Browse files

iwlwifi: use valid TX/RX antenna from hw_params



It's not really a good idea to write to the
global static configuration. Use the valid
TX/RX antenna information only from the HW
params struct except in the case where the
values from the config are used to override
the values from the EEPROM.

Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 54708d8d
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -131,14 +131,13 @@ static void iwl1000_hw_set_hw_params(struct iwl_priv *priv)

	hw_params(priv).ht40_channel =  BIT(IEEE80211_BAND_2GHZ);

	hw_params(priv).tx_chains_num = num_of_ant(cfg(priv)->valid_tx_ant);
	hw_params(priv).tx_chains_num =
		num_of_ant(hw_params(priv).valid_tx_ant);
	if (cfg(priv)->rx_with_siso_diversity)
		hw_params(priv).rx_chains_num = 1;
	else
		hw_params(priv).rx_chains_num =
			num_of_ant(cfg(priv)->valid_rx_ant);
	hw_params(priv).valid_tx_ant = cfg(priv)->valid_tx_ant;
	hw_params(priv).valid_rx_ant = cfg(priv)->valid_rx_ant;
			num_of_ant(hw_params(priv).valid_rx_ant);

	iwl1000_set_ct_threshold(priv);

+3 −4
Original line number Diff line number Diff line
@@ -127,14 +127,13 @@ static void iwl2000_hw_set_hw_params(struct iwl_priv *priv)

	hw_params(priv).ht40_channel =  BIT(IEEE80211_BAND_2GHZ);

	hw_params(priv).tx_chains_num = num_of_ant(cfg(priv)->valid_tx_ant);
	hw_params(priv).tx_chains_num =
		num_of_ant(hw_params(priv).valid_tx_ant);
	if (cfg(priv)->rx_with_siso_diversity)
		hw_params(priv).rx_chains_num = 1;
	else
		hw_params(priv).rx_chains_num =
			num_of_ant(cfg(priv)->valid_rx_ant);
	hw_params(priv).valid_tx_ant = cfg(priv)->valid_tx_ant;
	hw_params(priv).valid_rx_ant = cfg(priv)->valid_rx_ant;
			num_of_ant(hw_params(priv).valid_rx_ant);

	iwl2000_set_ct_threshold(priv);

+8 −8
Original line number Diff line number Diff line
@@ -167,10 +167,10 @@ static void iwl5000_hw_set_hw_params(struct iwl_priv *priv)
	hw_params(priv).ht40_channel =  BIT(IEEE80211_BAND_2GHZ) |
					BIT(IEEE80211_BAND_5GHZ);

	hw_params(priv).tx_chains_num = num_of_ant(cfg(priv)->valid_tx_ant);
	hw_params(priv).rx_chains_num = num_of_ant(cfg(priv)->valid_rx_ant);
	hw_params(priv).valid_tx_ant = cfg(priv)->valid_tx_ant;
	hw_params(priv).valid_rx_ant = cfg(priv)->valid_rx_ant;
	hw_params(priv).tx_chains_num =
		num_of_ant(hw_params(priv).valid_tx_ant);
	hw_params(priv).rx_chains_num =
		num_of_ant(hw_params(priv).valid_rx_ant);

	iwl5000_set_ct_threshold(priv);

@@ -190,10 +190,10 @@ static void iwl5150_hw_set_hw_params(struct iwl_priv *priv)
	hw_params(priv).ht40_channel =  BIT(IEEE80211_BAND_2GHZ) |
					BIT(IEEE80211_BAND_5GHZ);

	hw_params(priv).tx_chains_num = num_of_ant(cfg(priv)->valid_tx_ant);
	hw_params(priv).rx_chains_num = num_of_ant(cfg(priv)->valid_rx_ant);
	hw_params(priv).valid_tx_ant = cfg(priv)->valid_tx_ant;
	hw_params(priv).valid_rx_ant = cfg(priv)->valid_rx_ant;
	hw_params(priv).tx_chains_num =
		num_of_ant(hw_params(priv).valid_tx_ant);
	hw_params(priv).rx_chains_num =
		num_of_ant(hw_params(priv).valid_rx_ant);

	iwl5150_set_ct_threshold(priv);

+3 −4
Original line number Diff line number Diff line
@@ -149,14 +149,13 @@ static void iwl6000_hw_set_hw_params(struct iwl_priv *priv)
	hw_params(priv).ht40_channel =  BIT(IEEE80211_BAND_2GHZ) |
					BIT(IEEE80211_BAND_5GHZ);

	hw_params(priv).tx_chains_num = num_of_ant(cfg(priv)->valid_tx_ant);
	hw_params(priv).tx_chains_num =
		num_of_ant(hw_params(priv).valid_tx_ant);
	if (cfg(priv)->rx_with_siso_diversity)
		hw_params(priv).rx_chains_num = 1;
	else
		hw_params(priv).rx_chains_num =
			num_of_ant(cfg(priv)->valid_rx_ant);
	hw_params(priv).valid_tx_ant = cfg(priv)->valid_tx_ant;
	hw_params(priv).valid_rx_ant = cfg(priv)->valid_rx_ant;
			num_of_ant(hw_params(priv).valid_rx_ant);

	iwl6000_set_ct_threshold(priv);

+2 −2
Original line number Diff line number Diff line
@@ -848,7 +848,7 @@ static void iwl_find_disconn_antenna(struct iwl_priv *priv, u32* average_sig,
			 * connect the first valid tx chain
			 */
			first_chain =
				find_first_chain(cfg(priv)->valid_tx_ant);
				find_first_chain(hw_params(priv).valid_tx_ant);
			data->disconn_array[first_chain] = 0;
			active_chains |= BIT(first_chain);
			IWL_DEBUG_CALIB(priv,
@@ -1082,7 +1082,7 @@ void iwl_chain_noise_calibration(struct iwl_priv *priv)

	iwlagn_gain_computation(priv, average_noise,
				min_average_noise_antenna_i, min_average_noise,
				find_first_chain(cfg(priv)->valid_rx_ant));
				find_first_chain(hw_params(priv).valid_rx_ant));

	/* Some power changes may have been made during the calibration.
	 * Update and commit the RXON
Loading