From 22f6642c52e9e02732f620f9cde952cbfa87dfc8 Mon Sep 17 00:00:00 2001 From: Eyal Shapira Date: Sun, 28 Jul 2013 23:02:47 +0000 Subject: [PATCH] iwlwifi: mvm: fix switch from shared antenna in case of BT load Current code didn't handle well the case where we're in SISO using ANT B and there's a BT load. Switch to ANT A in this case. Signed-off-by: Eyal Shapira Signed-off-by: Johannes Berg --- drivers/net/wireless/iwlwifi/mvm/rs.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/net/wireless/iwlwifi/mvm/rs.c b/drivers/net/wireless/iwlwifi/mvm/rs.c index 3cfcea547458..ffcc63539c3a 100644 --- a/drivers/net/wireless/iwlwifi/mvm/rs.c +++ b/drivers/net/wireless/iwlwifi/mvm/rs.c @@ -1324,17 +1324,18 @@ static int rs_move_siso_to_other(struct iwl_mvm *mvm, /* nothing */ break; case IWL_BT_COEX_TRAFFIC_LOAD_LOW: - /* avoid antenna B unless MIMO */ - if (tbl->action == IWL_SISO_SWITCH_ANTENNA) + /* avoid switching to antenna B but allow MIMO */ + if (tbl->action == IWL_SISO_SWITCH_ANTENNA && + tbl->ant_type == ANT_A) tbl->action = IWL_SISO_SWITCH_MIMO2; break; case IWL_BT_COEX_TRAFFIC_LOAD_HIGH: case IWL_BT_COEX_TRAFFIC_LOAD_CONTINUOUS: - /* avoid antenna B and MIMO */ - valid_tx_ant = - first_antenna(iwl_fw_valid_tx_ant(mvm->fw)); - if (tbl->action != IWL_SISO_SWITCH_ANTENNA) - tbl->action = IWL_SISO_SWITCH_ANTENNA; + /* A - avoid antenna B and MIMO. B - switch to A */ + if (tbl->ant_type == ANT_A) + valid_tx_ant = + first_antenna(iwl_fw_valid_tx_ant(mvm->fw)); + tbl->action = IWL_SISO_SWITCH_ANTENNA; break; default: IWL_ERR(mvm, "Invalid BT load %d", -- 2.20.1