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>
diff --git a/drivers/net/wireless/iwlwifi/mvm/rs.c b/drivers/net/wireless/iwlwifi/mvm/rs.c
index 3cfcea5..ffcc635 100644
--- a/drivers/net/wireless/iwlwifi/mvm/rs.c
+++ b/drivers/net/wireless/iwlwifi/mvm/rs.c
@@ -1324,17 +1324,18 @@
 		/* 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",