aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/mvm/rs.c
diff options
context:
space:
mode:
authorEyal Shapira <eyal@wizery.com>2013-07-28 19:02:47 -0400
committerJohannes Berg <johannes.berg@intel.com>2013-10-02 12:00:37 -0400
commit22f6642c52e9e02732f620f9cde952cbfa87dfc8 (patch)
treea09f613aaa4e982275567bf870803ad20fd96654 /drivers/net/wireless/iwlwifi/mvm/rs.c
parent889b169650c5b2cfeac8bcf34137af84a85b1cb8 (diff)
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 <eyal@wizery.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/rs.c')
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/rs.c15
1 files 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,
1324 /* nothing */ 1324 /* nothing */
1325 break; 1325 break;
1326 case IWL_BT_COEX_TRAFFIC_LOAD_LOW: 1326 case IWL_BT_COEX_TRAFFIC_LOAD_LOW:
1327 /* avoid antenna B unless MIMO */ 1327 /* avoid switching to antenna B but allow MIMO */
1328 if (tbl->action == IWL_SISO_SWITCH_ANTENNA) 1328 if (tbl->action == IWL_SISO_SWITCH_ANTENNA &&
1329 tbl->ant_type == ANT_A)
1329 tbl->action = IWL_SISO_SWITCH_MIMO2; 1330 tbl->action = IWL_SISO_SWITCH_MIMO2;
1330 break; 1331 break;
1331 case IWL_BT_COEX_TRAFFIC_LOAD_HIGH: 1332 case IWL_BT_COEX_TRAFFIC_LOAD_HIGH:
1332 case IWL_BT_COEX_TRAFFIC_LOAD_CONTINUOUS: 1333 case IWL_BT_COEX_TRAFFIC_LOAD_CONTINUOUS:
1333 /* avoid antenna B and MIMO */ 1334 /* A - avoid antenna B and MIMO. B - switch to A */
1334 valid_tx_ant = 1335 if (tbl->ant_type == ANT_A)
1335 first_antenna(iwl_fw_valid_tx_ant(mvm->fw)); 1336 valid_tx_ant =
1336 if (tbl->action != IWL_SISO_SWITCH_ANTENNA) 1337 first_antenna(iwl_fw_valid_tx_ant(mvm->fw));
1337 tbl->action = IWL_SISO_SWITCH_ANTENNA; 1338 tbl->action = IWL_SISO_SWITCH_ANTENNA;
1338 break; 1339 break;
1339 default: 1340 default:
1340 IWL_ERR(mvm, "Invalid BT load %d", 1341 IWL_ERR(mvm, "Invalid BT load %d",