aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/mvm/rs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/rs.c')
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/rs.c45
1 files changed, 2 insertions, 43 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/rs.c b/drivers/net/wireless/iwlwifi/mvm/rs.c
index 0faeecc0ab1c..a0b4cc8d9c3b 100644
--- a/drivers/net/wireless/iwlwifi/mvm/rs.c
+++ b/drivers/net/wireless/iwlwifi/mvm/rs.c
@@ -1402,29 +1402,9 @@ static int rs_move_siso_to_other(struct iwl_mvm *mvm,
1402 u8 update_search_tbl_counter = 0; 1402 u8 update_search_tbl_counter = 0;
1403 int ret; 1403 int ret;
1404 1404
1405 switch (le32_to_cpu(mvm->last_bt_notif.bt_activity_grading)) { 1405 if (tbl->action == IWL_SISO_SWITCH_MIMO2 &&
1406 case IWL_BT_COEX_TRAFFIC_LOAD_NONE: 1406 !iwl_mvm_bt_coex_is_mimo_allowed(mvm, sta))
1407 /* nothing */
1408 break;
1409 case IWL_BT_COEX_TRAFFIC_LOAD_LOW:
1410 /* avoid switching to antenna B but allow MIMO */
1411 if (tbl->action == IWL_SISO_SWITCH_ANTENNA &&
1412 tbl->ant_type == ANT_A)
1413 tbl->action = IWL_SISO_SWITCH_MIMO2;
1414 break;
1415 case IWL_BT_COEX_TRAFFIC_LOAD_HIGH:
1416 case IWL_BT_COEX_TRAFFIC_LOAD_CONTINUOUS:
1417 /* A - avoid antenna B and MIMO. B - switch to A */
1418 if (tbl->ant_type == ANT_A)
1419 valid_tx_ant =
1420 first_antenna(iwl_fw_valid_tx_ant(mvm->fw));
1421 tbl->action = IWL_SISO_SWITCH_ANTENNA; 1407 tbl->action = IWL_SISO_SWITCH_ANTENNA;
1422 break;
1423 default:
1424 IWL_ERR(mvm, "Invalid BT load %d",
1425 le32_to_cpu(mvm->last_bt_notif.bt_activity_grading));
1426 break;
1427 }
1428 1408
1429 start_action = tbl->action; 1409 start_action = tbl->action;
1430 while (1) { 1410 while (1) {
@@ -1519,27 +1499,6 @@ static int rs_move_mimo2_to_other(struct iwl_mvm *mvm,
1519 u8 update_search_tbl_counter = 0; 1499 u8 update_search_tbl_counter = 0;
1520 int ret; 1500 int ret;
1521 1501
1522 switch (le32_to_cpu(mvm->last_bt_notif.bt_activity_grading)) {
1523 case IWL_BT_COEX_TRAFFIC_LOAD_NONE:
1524 /* nothing */
1525 break;
1526 case IWL_BT_COEX_TRAFFIC_LOAD_HIGH:
1527 case IWL_BT_COEX_TRAFFIC_LOAD_CONTINUOUS:
1528 /* avoid antenna B and MIMO */
1529 if (tbl->action != IWL_MIMO2_SWITCH_SISO_A)
1530 tbl->action = IWL_MIMO2_SWITCH_SISO_A;
1531 break;
1532 case IWL_BT_COEX_TRAFFIC_LOAD_LOW:
1533 /* avoid antenna B unless MIMO */
1534 if (tbl->action == IWL_MIMO2_SWITCH_SISO_B)
1535 tbl->action = IWL_MIMO2_SWITCH_SISO_A;
1536 break;
1537 default:
1538 IWL_ERR(mvm, "Invalid BT load %d",
1539 le32_to_cpu(mvm->last_bt_notif.bt_activity_grading));
1540 break;
1541 }
1542
1543 start_action = tbl->action; 1502 start_action = tbl->action;
1544 while (1) { 1503 while (1) {
1545 lq_sta->action_counter++; 1504 lq_sta->action_counter++;