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

Commit 6fe8efb2 authored by Shanyu Zhao's avatar Shanyu Zhao Committed by John W. Linville
Browse files

iwlwifi: disable disconnected antenna for advanced bt coex



Disconnected antenna algorithm is used to find out which antennas are
disconnected. It should be disabled for devices that support advanced
bluetooth coexist.

Signed-off-by: default avatarShanyu Zhao <shanyu.zhao@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 3031242b
Loading
Loading
Loading
Loading
+11 −8
Original line number Diff line number Diff line
@@ -801,12 +801,6 @@ static void iwl_find_disconn_antenna(struct iwl_priv *priv, u32* average_sig,
	 * To be safe, simply mask out any chains that we know
	 * are not on the device.
	 */
	if (priv->cfg->bt_params &&
	    priv->cfg->bt_params->advanced_bt_coexist &&
	    priv->bt_full_concurrent) {
		/* operated as 1x1 in full concurrency mode */
		active_chains &= first_antenna(priv->hw_params.valid_rx_ant);
	} else
	active_chains &= priv->hw_params.valid_rx_ant;

	num_tx_chains = 0;
@@ -985,6 +979,15 @@ void iwl_chain_noise_calibration(struct iwl_priv *priv, void *stat_resp)
		return;

	/* Analyze signal for disconnected antenna */
	if (priv->cfg->bt_params &&
	    priv->cfg->bt_params->advanced_bt_coexist) {
		/* Disable disconnected antenna algorithm for advanced
		   bt coex, assuming valid antennas are connected */
		data->active_chains = priv->hw_params.valid_rx_ant;
		for (i = 0; i < NUM_RX_CHAINS; i++)
			if (!(data->active_chains & (1<<i)))
				data->disconn_array[i] = 1;
	} else
		iwl_find_disconn_antenna(priv, average_sig, data);

	/* Analyze noise for rx balance */