qcacld-3.0: replace mac checing with correct API

Check whether the two connections are on the same mac with
policy_mgr_are_2_freq_on_same_mac().

Change-Id: I480a344386d22aa2a210b6b4663f68998d9af8b1
CRs-Fixed: 3103087
This commit is contained in:
Yu Wang
2022-01-14 14:29:19 +08:00
committed by Madan Koyyalamudi
parent 0257976d59
commit 9191958c92
4 changed files with 172 additions and 133 deletions

View File

@@ -1349,8 +1349,10 @@ policy_mgr_dump_dual_mac_concurrency(struct policy_mgr_psoc_priv_obj *pm_ctx,
char buf[4] = {0}; char buf[4] = {0};
qdf_mutex_acquire(&pm_ctx->qdf_conc_list_lock); qdf_mutex_acquire(&pm_ctx->qdf_conc_list_lock);
if (pm_conc_connection_list[0].mac == if (policy_mgr_are_2_freq_on_same_mac(pm_ctx->psoc,
pm_conc_connection_list[1].mac) { pm_conc_connection_list[0].freq,
pm_conc_connection_list[1].freq)
) {
if (pm_conc_connection_list[0].freq == if (pm_conc_connection_list[0].freq ==
pm_conc_connection_list[1].freq) pm_conc_connection_list[1].freq)
strlcat(cc_mode, strlcat(cc_mode,
@@ -1362,7 +1364,11 @@ policy_mgr_dump_dual_mac_concurrency(struct policy_mgr_psoc_priv_obj *pm_ctx,
length); length);
mac = pm_conc_connection_list[0].mac; mac = pm_conc_connection_list[0].mac;
} }
if (pm_conc_connection_list[0].mac == pm_conc_connection_list[2].mac) {
if (policy_mgr_are_2_freq_on_same_mac(pm_ctx->psoc,
pm_conc_connection_list[0].freq,
pm_conc_connection_list[2].freq)
) {
if (pm_conc_connection_list[0].freq == if (pm_conc_connection_list[0].freq ==
pm_conc_connection_list[2].freq) pm_conc_connection_list[2].freq)
strlcat(cc_mode, strlcat(cc_mode,
@@ -1374,7 +1380,11 @@ policy_mgr_dump_dual_mac_concurrency(struct policy_mgr_psoc_priv_obj *pm_ctx,
length); length);
mac = pm_conc_connection_list[0].mac; mac = pm_conc_connection_list[0].mac;
} }
if (pm_conc_connection_list[1].mac == pm_conc_connection_list[2].mac) {
if (policy_mgr_are_2_freq_on_same_mac(pm_ctx->psoc,
pm_conc_connection_list[1].freq,
pm_conc_connection_list[2].freq)
) {
if (pm_conc_connection_list[1].freq == if (pm_conc_connection_list[1].freq ==
pm_conc_connection_list[2].freq) pm_conc_connection_list[2].freq)
strlcat(cc_mode, strlcat(cc_mode,
@@ -1494,15 +1504,13 @@ void policy_mgr_dump_current_concurrency(struct wlan_objmgr_psoc *psoc)
pm_conc_connection_list[0].freq == pm_conc_connection_list[0].freq ==
pm_conc_connection_list[2].freq){ pm_conc_connection_list[2].freq){
qdf_mutex_release(&pm_ctx->qdf_conc_list_lock); qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
strlcat(cc_mode, " SCC", strlcat(cc_mode, " SCC", sizeof(cc_mode));
sizeof(cc_mode)); } else if (policy_mgr_are_3_freq_on_same_mac(psoc,
} else if ((pm_conc_connection_list[0].mac == pm_conc_connection_list[0].freq,
pm_conc_connection_list[1].mac) pm_conc_connection_list[1].freq,
&& (pm_conc_connection_list[0].mac == pm_conc_connection_list[2].freq)) {
pm_conc_connection_list[2].mac)) {
qdf_mutex_release(&pm_ctx->qdf_conc_list_lock); qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
strlcat(cc_mode, " MCC on single MAC", strlcat(cc_mode, " MCC on single MAC", sizeof(cc_mode));
sizeof(cc_mode));
} else { } else {
qdf_mutex_release(&pm_ctx->qdf_conc_list_lock); qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
if (policy_mgr_is_current_hwmode_dbs(psoc)) if (policy_mgr_is_current_hwmode_dbs(psoc))
@@ -3370,50 +3378,45 @@ bool policy_mgr_allow_new_home_channel(
{ {
bool status = true; bool status = true;
struct policy_mgr_psoc_priv_obj *pm_ctx; struct policy_mgr_psoc_priv_obj *pm_ctx;
uint32_t mcc_to_scc_switch; bool on_same_mac = false, force_switch_without_dis = false;
pm_ctx = policy_mgr_get_context(psoc); pm_ctx = policy_mgr_get_context(psoc);
if (!pm_ctx) { if (!pm_ctx) {
policy_mgr_err("Invalid Context"); policy_mgr_err("Invalid Context");
return false; return false;
} }
mcc_to_scc_switch =
policy_mgr_get_mcc_to_scc_switch_mode(psoc); force_switch_without_dis =
policy_mgr_get_mcc_to_scc_switch_mode(psoc) ==
QDF_MCC_TO_SCC_SWITCH_FORCE_PREFERRED_WITHOUT_DISCONNECTION;
qdf_mutex_acquire(&pm_ctx->qdf_conc_list_lock); qdf_mutex_acquire(&pm_ctx->qdf_conc_list_lock);
if (num_connections == 2) { if (num_connections == 2) {
/* No SCC or MCC combination is allowed with / on DFS channel */ /* No SCC or MCC combination is allowed with / on DFS channel */
if ((mcc_to_scc_switch == on_same_mac = policy_mgr_are_2_freq_on_same_mac(psoc,
QDF_MCC_TO_SCC_SWITCH_FORCE_PREFERRED_WITHOUT_DISCONNECTION) && pm_conc_connection_list[0].freq,
is_dfs_ch && pm_conc_connection_list[1].freq);
if (force_switch_without_dis && is_dfs_ch &&
((pm_conc_connection_list[0].ch_flagext & ((pm_conc_connection_list[0].ch_flagext &
(IEEE80211_CHAN_DFS | IEEE80211_CHAN_DFS_CFREQ2)) || (IEEE80211_CHAN_DFS | IEEE80211_CHAN_DFS_CFREQ2)) ||
(pm_conc_connection_list[1].ch_flagext & (pm_conc_connection_list[1].ch_flagext &
(IEEE80211_CHAN_DFS | IEEE80211_CHAN_DFS_CFREQ2)))) { (IEEE80211_CHAN_DFS | IEEE80211_CHAN_DFS_CFREQ2)))) {
policy_mgr_rl_debug("Existing DFS connection, new 3-port DFS connection is not allowed"); policy_mgr_rl_debug("Existing DFS connection, new 3-port DFS connection is not allowed");
status = false; status = false;
} else if (((pm_conc_connection_list[0].freq != } else if (((pm_conc_connection_list[0].freq !=
pm_conc_connection_list[1].freq) pm_conc_connection_list[1].freq) ||
|| (mcc_to_scc_switch == force_switch_without_dis) && on_same_mac) {
QDF_MCC_TO_SCC_SWITCH_FORCE_PREFERRED_WITHOUT_DISCONNECTION)
) && (pm_conc_connection_list[0].mac ==
pm_conc_connection_list[1].mac)) {
status = policy_mgr_allow_same_mac_diff_freq(psoc, status = policy_mgr_allow_same_mac_diff_freq(psoc,
ch_freq); ch_freq);
} else if (pm_conc_connection_list[0].mac == } else if (on_same_mac) {
pm_conc_connection_list[1].mac) {
status = policy_mgr_allow_same_mac_same_freq(psoc, status = policy_mgr_allow_same_mac_same_freq(psoc,
ch_freq, ch_freq,
mode); mode);
} }
} else if ((num_connections == 1) && } else if (num_connections == 1 && force_switch_without_dis &&
(mcc_to_scc_switch ==
QDF_MCC_TO_SCC_SWITCH_FORCE_PREFERRED_WITHOUT_DISCONNECTION) &&
is_dfs_ch && is_dfs_ch &&
(pm_conc_connection_list[0].ch_flagext & (pm_conc_connection_list[0].ch_flagext &
(IEEE80211_CHAN_DFS | IEEE80211_CHAN_DFS_CFREQ2))) { (IEEE80211_CHAN_DFS | IEEE80211_CHAN_DFS_CFREQ2))) {
policy_mgr_rl_debug("Existing DFS connection, new 2-port DFS connection is not allowed"); policy_mgr_rl_debug("Existing DFS connection, new 2-port DFS connection is not allowed");
status = false; status = false;
} else if ((num_connections == 1) && } else if ((num_connections == 1) &&

View File

@@ -718,7 +718,7 @@ policy_mgr_update_freq_info(struct policy_mgr_psoc_priv_obj *pm_ctx,
policy_mgr_update_5Ghz_freq_info(mac_range, mac_cap); policy_mgr_update_5Ghz_freq_info(mac_range, mac_cap);
} }
static void static QDF_STATUS
policy_mgr_modify_sbs_freq(struct policy_mgr_psoc_priv_obj *pm_ctx, policy_mgr_modify_sbs_freq(struct policy_mgr_psoc_priv_obj *pm_ctx,
uint8_t phy_id) uint8_t phy_id)
{ {
@@ -733,11 +733,11 @@ policy_mgr_modify_sbs_freq(struct policy_mgr_psoc_priv_obj *pm_ctx,
* keep the range as it is in SBS * keep the range as it is in SBS
*/ */
if (sbs_mac_range->low_2ghz_freq && sbs_mac_range->low_5ghz_freq) if (sbs_mac_range->low_2ghz_freq && sbs_mac_range->low_5ghz_freq)
return; return QDF_STATUS_SUCCESS;
if (sbs_mac_range->low_2ghz_freq && !sbs_mac_range->low_5ghz_freq) { if (sbs_mac_range->low_2ghz_freq && !sbs_mac_range->low_5ghz_freq) {
policy_mgr_err("Invalid DBS/SBS mode with only 2.4Ghz"); policy_mgr_err("Invalid DBS/SBS mode with only 2.4Ghz");
policy_mgr_dump_freq_range_per_mac(sbs_mac_range, MODE_SBS); policy_mgr_dump_freq_range_per_mac(sbs_mac_range, MODE_SBS);
return; return QDF_STATUS_E_INVAL;
} }
non_shared_range = sbs_mac_range; non_shared_range = sbs_mac_range;
@@ -777,8 +777,11 @@ policy_mgr_modify_sbs_freq(struct policy_mgr_psoc_priv_obj *pm_ctx,
QDF_MIN(shared_mac_range->high_5ghz_freq + 10, QDF_MIN(shared_mac_range->high_5ghz_freq + 10,
non_shared_range->high_5ghz_freq); non_shared_range->high_5ghz_freq);
} else { } else {
policy_mgr_debug("All 5Ghz shared, Do nothing"); policy_mgr_info("Invalid SBS range with all 5Ghz shared");
return QDF_STATUS_E_INVAL;
} }
return QDF_STATUS_SUCCESS;
} }
static qdf_freq_t static qdf_freq_t
@@ -901,6 +904,7 @@ policy_mgr_update_sbs_freq_info(struct policy_mgr_psoc_priv_obj *pm_ctx)
uint16_t sbs_range_sep; uint16_t sbs_range_sep;
struct policy_mgr_freq_range *mac_range; struct policy_mgr_freq_range *mac_range;
uint8_t phy_id; uint8_t phy_id;
QDF_STATUS status;
mac_range = pm_ctx->hw_mode.freq_range_caps[MODE_SBS]; mac_range = pm_ctx->hw_mode.freq_range_caps[MODE_SBS];
@@ -923,8 +927,14 @@ policy_mgr_update_sbs_freq_info(struct policy_mgr_psoc_priv_obj *pm_ctx)
* If sbs_lower_band_end_freq is not set that means FW will send one * If sbs_lower_band_end_freq is not set that means FW will send one
* shared mac range and one non-shared mac range. so update that freq. * shared mac range and one non-shared mac range. so update that freq.
*/ */
for (phy_id = 0; phy_id < MAX_MAC; phy_id++) for (phy_id = 0; phy_id < MAX_MAC; phy_id++) {
policy_mgr_modify_sbs_freq(pm_ctx, phy_id); status = policy_mgr_modify_sbs_freq(pm_ctx, phy_id);
if (QDF_IS_STATUS_ERROR(status)) {
/* Reset the SBS range */
qdf_mem_zero(mac_range, sizeof(*mac_range) * MAX_MAC);
break;
}
}
} }
static void static void
@@ -2524,8 +2534,9 @@ bool policy_mgr_current_concurrency_is_scc(struct wlan_objmgr_psoc *psoc)
case 2: case 2:
if (pm_conc_connection_list[0].freq == if (pm_conc_connection_list[0].freq ==
pm_conc_connection_list[1].freq && pm_conc_connection_list[1].freq &&
pm_conc_connection_list[0].mac == policy_mgr_are_2_freq_on_same_mac(psoc,
pm_conc_connection_list[1].mac) pm_conc_connection_list[0].freq,
pm_conc_connection_list[1].freq))
is_scc = true; is_scc = true;
break; break;
case 3: case 3:
@@ -2582,8 +2593,9 @@ bool policy_mgr_current_concurrency_is_mcc(struct wlan_objmgr_psoc *psoc)
case 2: case 2:
if (pm_conc_connection_list[0].freq != if (pm_conc_connection_list[0].freq !=
pm_conc_connection_list[1].freq && pm_conc_connection_list[1].freq &&
pm_conc_connection_list[0].mac == policy_mgr_are_2_freq_on_same_mac(psoc,
pm_conc_connection_list[1].mac) pm_conc_connection_list[0].freq,
pm_conc_connection_list[1].freq))
is_mcc = true; is_mcc = true;
break; break;
case 3: case 3:
@@ -2593,16 +2605,19 @@ bool policy_mgr_current_concurrency_is_mcc(struct wlan_objmgr_psoc *psoc)
*/ */
if ((pm_conc_connection_list[0].freq != if ((pm_conc_connection_list[0].freq !=
pm_conc_connection_list[1].freq && pm_conc_connection_list[1].freq &&
pm_conc_connection_list[0].mac == policy_mgr_are_2_freq_on_same_mac(psoc,
pm_conc_connection_list[1].mac) || pm_conc_connection_list[0].freq,
pm_conc_connection_list[1].freq)) ||
(pm_conc_connection_list[0].freq != (pm_conc_connection_list[0].freq !=
pm_conc_connection_list[2].freq && pm_conc_connection_list[2].freq &&
pm_conc_connection_list[0].mac == policy_mgr_are_2_freq_on_same_mac(psoc,
pm_conc_connection_list[2].mac) || pm_conc_connection_list[0].freq,
pm_conc_connection_list[2].freq)) ||
(pm_conc_connection_list[1].freq != (pm_conc_connection_list[1].freq !=
pm_conc_connection_list[2].freq && pm_conc_connection_list[2].freq &&
pm_conc_connection_list[1].mac == policy_mgr_are_2_freq_on_same_mac(psoc,
pm_conc_connection_list[2].mac)) pm_conc_connection_list[1].freq,
pm_conc_connection_list[2].freq)))
is_mcc = true; is_mcc = true;
break; break;
default: default:
@@ -4296,12 +4311,13 @@ QDF_STATUS policy_mgr_set_user_cfg(struct wlan_objmgr_psoc *psoc,
* *
* Return: true or false * Return: true or false
*/ */
static bool policy_mgr_is_two_connection_mcc(void) static bool policy_mgr_is_two_connection_mcc(struct wlan_objmgr_psoc *psoc)
{ {
return ((pm_conc_connection_list[0].freq != return ((pm_conc_connection_list[0].freq !=
pm_conc_connection_list[1].freq) && pm_conc_connection_list[1].freq) &&
(pm_conc_connection_list[0].mac == (policy_mgr_are_2_freq_on_same_mac(psoc,
pm_conc_connection_list[1].mac) && pm_conc_connection_list[0].freq,
pm_conc_connection_list[1].freq)) &&
(pm_conc_connection_list[0].freq <= (pm_conc_connection_list[0].freq <=
WLAN_REG_MAX_24GHZ_CHAN_FREQ) && WLAN_REG_MAX_24GHZ_CHAN_FREQ) &&
(pm_conc_connection_list[1].freq <= (pm_conc_connection_list[1].freq <=
@@ -4343,7 +4359,7 @@ bool policy_mgr_is_mcc_in_24G(struct wlan_objmgr_psoc *psoc)
case 1: case 1:
break; break;
case 2: case 2:
if (policy_mgr_is_two_connection_mcc()) if (policy_mgr_is_two_connection_mcc(psoc))
is_24G_mcc = true; is_24G_mcc = true;
break; break;
case 3: case 3:
@@ -5741,8 +5757,9 @@ bool policy_mgr_allow_sap_go_concurrency(struct wlan_objmgr_psoc *psoc,
policy_mgr_debug("DBS unsupported, mcc and scc unsupported too, don't allow 2nd AP"); policy_mgr_debug("DBS unsupported, mcc and scc unsupported too, don't allow 2nd AP");
return false; return false;
} }
if (policy_mgr_are_2_freq_on_same_mac(psoc, ch_freq, if (policy_mgr_are_2_freq_on_same_mac(psoc, ch_freq,
con_freq)){ con_freq)) {
policy_mgr_debug("DBS supported, 2 SAP on same band, reject 2nd AP"); policy_mgr_debug("DBS supported, 2 SAP on same band, reject 2nd AP");
return false; return false;
} }
@@ -6143,10 +6160,9 @@ bool policy_mgr_is_restart_sap_required(struct wlan_objmgr_psoc *psoc,
qdf_freq_t freq, qdf_freq_t freq,
tQDF_MCC_TO_SCC_SWITCH_MODE scc_mode) tQDF_MCC_TO_SCC_SWITCH_MODE scc_mode)
{ {
uint8_t i, mac = 0; uint8_t i;
bool restart_required = false; bool restart_required = false;
bool is_sta_p2p_cli; bool is_sta_p2p_cli;
bool is_same_mac;
bool sap_on_dfs = false; bool sap_on_dfs = false;
struct policy_mgr_psoc_priv_obj *pm_ctx; struct policy_mgr_psoc_priv_obj *pm_ctx;
struct policy_mgr_conc_connection_info *connection; struct policy_mgr_conc_connection_info *connection;
@@ -6167,8 +6183,6 @@ bool policy_mgr_is_restart_sap_required(struct wlan_objmgr_psoc *psoc,
for (i = 0; i < MAX_NUMBER_OF_CONC_CONNECTIONS; i++) { for (i = 0; i < MAX_NUMBER_OF_CONC_CONNECTIONS; i++) {
if (connection[i].vdev_id == vdev_id && if (connection[i].vdev_id == vdev_id &&
connection[i].in_use) { connection[i].in_use) {
mac = connection[i].mac;
if (WLAN_REG_IS_5GHZ_CH_FREQ(connection[i].freq) && if (WLAN_REG_IS_5GHZ_CH_FREQ(connection[i].freq) &&
(connection[i].ch_flagext & (IEEE80211_CHAN_DFS | (connection[i].ch_flagext & (IEEE80211_CHAN_DFS |
IEEE80211_CHAN_DFS_CFREQ2))) IEEE80211_CHAN_DFS_CFREQ2)))
@@ -6190,10 +6204,10 @@ bool policy_mgr_is_restart_sap_required(struct wlan_objmgr_psoc *psoc,
connection[i].mode == PM_P2P_CLIENT_MODE); connection[i].mode == PM_P2P_CLIENT_MODE);
if (!is_sta_p2p_cli) if (!is_sta_p2p_cli)
continue; continue;
is_same_mac = connection[i].freq != freq &&
(connection[i].mac == mac || if (connection[i].freq != freq &&
!policy_mgr_is_hw_dbs_capable(psoc)); policy_mgr_are_2_freq_on_same_mac(psoc, freq,
if (is_same_mac) { connection[i].freq)) {
restart_required = true; restart_required = true;
break; break;
} }

View File

@@ -1376,6 +1376,7 @@ policy_mgr_check_and_get_third_connection_pcl_table_index_for_scc(
*/ */
static enum policy_mgr_two_connection_mode static enum policy_mgr_two_connection_mode
policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc( policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc(
struct wlan_objmgr_psoc *psoc,
enum policy_mgr_two_connection_mode mcc_2g_1x1, enum policy_mgr_two_connection_mode mcc_2g_1x1,
enum policy_mgr_two_connection_mode mcc_2g_2x2, enum policy_mgr_two_connection_mode mcc_2g_2x2,
enum policy_mgr_two_connection_mode mcc_5g_1x1, enum policy_mgr_two_connection_mode mcc_5g_1x1,
@@ -1385,7 +1386,10 @@ policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc(
{ {
enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE; enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE;
if (pm_conc_connection_list[0].mac == pm_conc_connection_list[1].mac) { if (policy_mgr_are_2_freq_on_same_mac(psoc,
pm_conc_connection_list[0].freq,
pm_conc_connection_list[1].freq)
) {
if ((WLAN_REG_IS_24GHZ_CH_FREQ( if ((WLAN_REG_IS_24GHZ_CH_FREQ(
pm_conc_connection_list[0].freq)) && pm_conc_connection_list[0].freq)) &&
(WLAN_REG_IS_24GHZ_CH_FREQ( (WLAN_REG_IS_24GHZ_CH_FREQ(
@@ -1429,6 +1433,7 @@ policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc(
*/ */
static enum policy_mgr_two_connection_mode static enum policy_mgr_two_connection_mode
policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs( policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs(
struct wlan_objmgr_psoc *psoc,
enum policy_mgr_two_connection_mode sbs_5g_1x1, enum policy_mgr_two_connection_mode sbs_5g_1x1,
enum policy_mgr_two_connection_mode sbs_5g_2x2, enum policy_mgr_two_connection_mode sbs_5g_2x2,
enum policy_mgr_two_connection_mode dbs_1x1, enum policy_mgr_two_connection_mode dbs_1x1,
@@ -1436,7 +1441,10 @@ policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs(
{ {
enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE; enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE;
if (pm_conc_connection_list[0].mac != pm_conc_connection_list[1].mac) { if (!policy_mgr_are_2_freq_on_same_mac(psoc,
pm_conc_connection_list[0].freq,
pm_conc_connection_list[1].freq)
) {
/* SBS */ /* SBS */
if (!(WLAN_REG_IS_24GHZ_CH_FREQ( if (!(WLAN_REG_IS_24GHZ_CH_FREQ(
pm_conc_connection_list[0].freq)) && pm_conc_connection_list[0].freq)) &&
@@ -1461,7 +1469,8 @@ policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs(
} }
static enum policy_mgr_two_connection_mode static enum policy_mgr_two_connection_mode
policy_mgr_get_third_connection_pcl_table_index_cli_sap(void) policy_mgr_get_third_connection_pcl_table_index_cli_sap(
struct wlan_objmgr_psoc *psoc)
{ {
enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE; enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE;
@@ -1475,7 +1484,7 @@ static enum policy_mgr_two_connection_mode
return index; return index;
index = index =
policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc( policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc(psoc,
PM_P2P_CLI_SAP_MCC_24_1x1, PM_P2P_CLI_SAP_MCC_24_1x1,
PM_P2P_CLI_SAP_MCC_24_2x2, PM_P2P_CLI_SAP_MCC_24_2x2,
PM_P2P_CLI_SAP_MCC_5_1x1, PM_P2P_CLI_SAP_MCC_5_1x1,
@@ -1487,7 +1496,7 @@ static enum policy_mgr_two_connection_mode
return index; return index;
index = index =
policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs( policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs(psoc,
PM_P2P_CLI_SAP_SBS_5_1x1, PM_P2P_CLI_SAP_SBS_5_1x1,
PM_P2P_CLI_SAP_SBS_5_2x2, PM_P2P_CLI_SAP_SBS_5_2x2,
PM_P2P_CLI_SAP_DBS_1x1, PM_P2P_CLI_SAP_DBS_1x1,
@@ -1497,7 +1506,8 @@ static enum policy_mgr_two_connection_mode
} }
static enum policy_mgr_two_connection_mode static enum policy_mgr_two_connection_mode
policy_mgr_get_third_connection_pcl_table_index_sta_sap(void) policy_mgr_get_third_connection_pcl_table_index_sta_sap(
struct wlan_objmgr_psoc *psoc)
{ {
enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE; enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE;
@@ -1511,7 +1521,7 @@ static enum policy_mgr_two_connection_mode
return index; return index;
index = index =
policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc( policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc(psoc,
PM_STA_SAP_MCC_24_1x1, PM_STA_SAP_MCC_24_1x1,
PM_STA_SAP_MCC_24_2x2, PM_STA_SAP_MCC_24_2x2,
PM_STA_SAP_MCC_5_1x1, PM_STA_SAP_MCC_5_1x1,
@@ -1523,7 +1533,7 @@ static enum policy_mgr_two_connection_mode
return index; return index;
index = index =
policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs( policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs(psoc,
PM_STA_SAP_SBS_5_1x1, PM_STA_SAP_SBS_5_1x1,
PM_STA_SAP_SBS_5_2x2, PM_STA_SAP_SBS_5_2x2,
PM_STA_SAP_DBS_1x1, PM_STA_SAP_DBS_1x1,
@@ -1533,7 +1543,8 @@ static enum policy_mgr_two_connection_mode
} }
static enum policy_mgr_two_connection_mode static enum policy_mgr_two_connection_mode
policy_mgr_get_third_connection_pcl_table_index_sap_sap(void) policy_mgr_get_third_connection_pcl_table_index_sap_sap(
struct wlan_objmgr_psoc *psoc)
{ {
enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE; enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE;
@@ -1547,7 +1558,7 @@ static enum policy_mgr_two_connection_mode
return index; return index;
index = index =
policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc( policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc(psoc,
PM_SAP_SAP_MCC_24_1x1, PM_SAP_SAP_MCC_24_1x1,
PM_SAP_SAP_MCC_24_2x2, PM_SAP_SAP_MCC_24_2x2,
PM_SAP_SAP_MCC_5_1x1, PM_SAP_SAP_MCC_5_1x1,
@@ -1559,7 +1570,7 @@ static enum policy_mgr_two_connection_mode
return index; return index;
index = index =
policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs( policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs(psoc,
PM_SAP_SAP_SBS_5_1x1, PM_SAP_SAP_SBS_5_1x1,
PM_SAP_SAP_SBS_5_2x2, PM_SAP_SAP_SBS_5_2x2,
PM_SAP_SAP_DBS_1x1, PM_SAP_SAP_DBS_1x1,
@@ -1569,7 +1580,8 @@ static enum policy_mgr_two_connection_mode
} }
static enum policy_mgr_two_connection_mode static enum policy_mgr_two_connection_mode
policy_mgr_get_third_connection_pcl_table_index_sta_go(void) policy_mgr_get_third_connection_pcl_table_index_sta_go(
struct wlan_objmgr_psoc *psoc)
{ {
enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE; enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE;
@@ -1583,7 +1595,7 @@ static enum policy_mgr_two_connection_mode
return index; return index;
index = index =
policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc( policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc(psoc,
PM_STA_P2P_GO_MCC_24_1x1, PM_STA_P2P_GO_MCC_24_1x1,
PM_STA_P2P_GO_MCC_24_2x2, PM_STA_P2P_GO_MCC_24_2x2,
PM_STA_P2P_GO_MCC_5_1x1, PM_STA_P2P_GO_MCC_5_1x1,
@@ -1595,7 +1607,7 @@ static enum policy_mgr_two_connection_mode
return index; return index;
index = index =
policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs( policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs(psoc,
PM_STA_P2P_GO_SBS_5_1x1, PM_STA_P2P_GO_SBS_5_1x1,
PM_STA_P2P_GO_SBS_5_2x2, PM_STA_P2P_GO_SBS_5_2x2,
PM_STA_P2P_GO_DBS_1x1, PM_STA_P2P_GO_DBS_1x1,
@@ -1605,7 +1617,8 @@ static enum policy_mgr_two_connection_mode
} }
static enum policy_mgr_two_connection_mode static enum policy_mgr_two_connection_mode
policy_mgr_get_third_connection_pcl_table_index_sta_cli(void) policy_mgr_get_third_connection_pcl_table_index_sta_cli(
struct wlan_objmgr_psoc *psoc)
{ {
enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE; enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE;
@@ -1619,7 +1632,7 @@ static enum policy_mgr_two_connection_mode
return index; return index;
index = index =
policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc( policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc(psoc,
PM_STA_P2P_CLI_MCC_24_1x1, PM_STA_P2P_CLI_MCC_24_1x1,
PM_STA_P2P_CLI_MCC_24_2x2, PM_STA_P2P_CLI_MCC_24_2x2,
PM_STA_P2P_CLI_MCC_5_1x1, PM_STA_P2P_CLI_MCC_5_1x1,
@@ -1631,7 +1644,7 @@ static enum policy_mgr_two_connection_mode
return index; return index;
index = index =
policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs( policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs(psoc,
PM_STA_P2P_CLI_SBS_5_1x1, PM_STA_P2P_CLI_SBS_5_1x1,
PM_STA_P2P_CLI_SBS_5_2x2, PM_STA_P2P_CLI_SBS_5_2x2,
PM_STA_P2P_CLI_DBS_1x1, PM_STA_P2P_CLI_DBS_1x1,
@@ -1641,7 +1654,8 @@ static enum policy_mgr_two_connection_mode
} }
static enum policy_mgr_two_connection_mode static enum policy_mgr_two_connection_mode
policy_mgr_get_third_connection_pcl_table_index_go_cli(void) policy_mgr_get_third_connection_pcl_table_index_go_cli(
struct wlan_objmgr_psoc *psoc)
{ {
enum policy_mgr_two_connection_mode index; enum policy_mgr_two_connection_mode index;
@@ -1655,7 +1669,7 @@ static enum policy_mgr_two_connection_mode
return index; return index;
index = index =
policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc( policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc(psoc,
PM_P2P_GO_P2P_CLI_MCC_24_1x1, PM_P2P_GO_P2P_CLI_MCC_24_1x1,
PM_P2P_GO_P2P_CLI_MCC_24_2x2, PM_P2P_GO_P2P_CLI_MCC_24_2x2,
PM_P2P_GO_P2P_CLI_MCC_5_1x1, PM_P2P_GO_P2P_CLI_MCC_5_1x1,
@@ -1667,7 +1681,7 @@ static enum policy_mgr_two_connection_mode
return index; return index;
index = index =
policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs( policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs(psoc,
PM_P2P_GO_P2P_CLI_SBS_5_1x1, PM_P2P_GO_P2P_CLI_SBS_5_1x1,
PM_P2P_GO_P2P_CLI_SBS_5_2x2, PM_P2P_GO_P2P_CLI_SBS_5_2x2,
PM_P2P_GO_P2P_CLI_DBS_1x1, PM_P2P_GO_P2P_CLI_DBS_1x1,
@@ -1677,7 +1691,8 @@ static enum policy_mgr_two_connection_mode
} }
static enum policy_mgr_two_connection_mode static enum policy_mgr_two_connection_mode
policy_mgr_get_third_connection_pcl_table_index_go_sap(void) policy_mgr_get_third_connection_pcl_table_index_go_sap(
struct wlan_objmgr_psoc *psoc)
{ {
enum policy_mgr_two_connection_mode index; enum policy_mgr_two_connection_mode index;
@@ -1691,7 +1706,7 @@ static enum policy_mgr_two_connection_mode
return index; return index;
index = index =
policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc( policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc(psoc,
PM_P2P_GO_SAP_MCC_24_1x1, PM_P2P_GO_SAP_MCC_24_1x1,
PM_P2P_GO_SAP_MCC_24_2x2, PM_P2P_GO_SAP_MCC_24_2x2,
PM_P2P_GO_SAP_MCC_5_1x1, PM_P2P_GO_SAP_MCC_5_1x1,
@@ -1703,7 +1718,7 @@ static enum policy_mgr_two_connection_mode
return index; return index;
index = index =
policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs( policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs(psoc,
PM_P2P_GO_SAP_SBS_5_1x1, PM_P2P_GO_SAP_SBS_5_1x1,
PM_P2P_GO_SAP_SBS_5_2x2, PM_P2P_GO_SAP_SBS_5_2x2,
PM_P2P_GO_SAP_DBS_1x1, PM_P2P_GO_SAP_DBS_1x1,
@@ -1713,7 +1728,8 @@ static enum policy_mgr_two_connection_mode
} }
static enum policy_mgr_two_connection_mode static enum policy_mgr_two_connection_mode
policy_mgr_get_third_connection_pcl_table_index_sta_sta(void) policy_mgr_get_third_connection_pcl_table_index_sta_sta(
struct wlan_objmgr_psoc *psoc)
{ {
enum policy_mgr_two_connection_mode index; enum policy_mgr_two_connection_mode index;
@@ -1727,7 +1743,7 @@ static enum policy_mgr_two_connection_mode
return index; return index;
index = index =
policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc( policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc(psoc,
PM_STA_STA_MCC_24_1x1, PM_STA_STA_MCC_24_1x1,
PM_STA_STA_MCC_24_2x2, PM_STA_STA_MCC_24_2x2,
PM_STA_STA_MCC_5_1x1, PM_STA_STA_MCC_5_1x1,
@@ -1739,7 +1755,7 @@ static enum policy_mgr_two_connection_mode
return index; return index;
index = index =
policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs( policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs(psoc,
PM_STA_STA_SBS_5_1x1, PM_STA_STA_SBS_5_1x1,
PM_STA_STA_SBS_5_2x2, PM_STA_STA_SBS_5_2x2,
PM_STA_STA_DBS_1x1, PM_STA_STA_DBS_1x1,
@@ -1749,7 +1765,8 @@ static enum policy_mgr_two_connection_mode
} }
static enum policy_mgr_two_connection_mode static enum policy_mgr_two_connection_mode
policy_mgr_get_third_connection_pcl_table_index_cli_cli(void) policy_mgr_get_third_connection_pcl_table_index_cli_cli(
struct wlan_objmgr_psoc *psoc)
{ {
enum policy_mgr_two_connection_mode index; enum policy_mgr_two_connection_mode index;
@@ -1763,7 +1780,7 @@ static enum policy_mgr_two_connection_mode
return index; return index;
index = index =
policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc( policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc(psoc,
PM_P2P_CLI_P2P_CLI_MCC_24_1x1, PM_P2P_CLI_P2P_CLI_MCC_24_1x1,
PM_P2P_CLI_P2P_CLI_MCC_24_2x2, PM_P2P_CLI_P2P_CLI_MCC_24_2x2,
PM_P2P_CLI_P2P_CLI_MCC_5_1x1, PM_P2P_CLI_P2P_CLI_MCC_5_1x1,
@@ -1775,7 +1792,7 @@ static enum policy_mgr_two_connection_mode
return index; return index;
index = index =
policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs( policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs(psoc,
PM_P2P_CLI_P2P_CLI_SBS_5_1x1, PM_P2P_CLI_P2P_CLI_SBS_5_1x1,
PM_P2P_CLI_P2P_CLI_SBS_5_2x2, PM_P2P_CLI_P2P_CLI_SBS_5_2x2,
PM_P2P_CLI_P2P_CLI_DBS_1x1, PM_P2P_CLI_P2P_CLI_DBS_1x1,
@@ -1785,7 +1802,8 @@ static enum policy_mgr_two_connection_mode
} }
static enum policy_mgr_two_connection_mode static enum policy_mgr_two_connection_mode
policy_mgr_get_third_connection_pcl_table_index_go_go(void) policy_mgr_get_third_connection_pcl_table_index_go_go(
struct wlan_objmgr_psoc *psoc)
{ {
enum policy_mgr_two_connection_mode index; enum policy_mgr_two_connection_mode index;
@@ -1799,7 +1817,7 @@ static enum policy_mgr_two_connection_mode
return index; return index;
index = index =
policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc( policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc(psoc,
PM_P2P_GO_P2P_GO_MCC_24_1x1, PM_P2P_GO_P2P_GO_MCC_24_1x1,
PM_P2P_GO_P2P_GO_MCC_24_2x2, PM_P2P_GO_P2P_GO_MCC_24_2x2,
PM_P2P_GO_P2P_GO_MCC_5_1x1, PM_P2P_GO_P2P_GO_MCC_5_1x1,
@@ -1810,7 +1828,7 @@ static enum policy_mgr_two_connection_mode
return index; return index;
index = index =
policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs( policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs(psoc,
PM_P2P_GO_P2P_GO_SBS_5_1x1, PM_P2P_GO_P2P_GO_SBS_5_1x1,
PM_P2P_GO_P2P_GO_SBS_5_2x2, PM_P2P_GO_P2P_GO_SBS_5_2x2,
PM_P2P_GO_P2P_GO_DBS_1x1, PM_P2P_GO_P2P_GO_DBS_1x1,
@@ -1819,7 +1837,8 @@ static enum policy_mgr_two_connection_mode
} }
static enum policy_mgr_two_connection_mode static enum policy_mgr_two_connection_mode
policy_mgr_get_third_connection_pcl_table_index_nan_ndi(void) policy_mgr_get_third_connection_pcl_table_index_nan_ndi(
struct wlan_objmgr_psoc *psoc)
{ {
enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE; enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE;
/* SCC */ /* SCC */
@@ -1831,16 +1850,16 @@ static enum policy_mgr_two_connection_mode
else else
index = PM_NAN_DISC_NDI_SCC_24_2x2; index = PM_NAN_DISC_NDI_SCC_24_2x2;
/* MCC */ /* MCC */
} else if (pm_conc_connection_list[0].mac == } else if (policy_mgr_are_2_freq_on_same_mac(psoc,
pm_conc_connection_list[1].mac) { pm_conc_connection_list[0].freq,
pm_conc_connection_list[1].freq)) {
/* Policy mgr only considers NAN Disc ch in 2.4GHz */ /* Policy mgr only considers NAN Disc ch in 2.4GHz */
if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask) if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask)
index = PM_NAN_DISC_NDI_MCC_24_1x1; index = PM_NAN_DISC_NDI_MCC_24_1x1;
else else
index = PM_NAN_DISC_NDI_MCC_24_2x2; index = PM_NAN_DISC_NDI_MCC_24_2x2;
/* DBS */ /* DBS */
} else if (pm_conc_connection_list[0].mac != } else {
pm_conc_connection_list[1].mac) {
if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask) if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask)
index = PM_NAN_DISC_NDI_DBS_1x1; index = PM_NAN_DISC_NDI_DBS_1x1;
else else
@@ -1850,7 +1869,8 @@ static enum policy_mgr_two_connection_mode
} }
static enum policy_mgr_two_connection_mode static enum policy_mgr_two_connection_mode
policy_mgr_get_third_connection_pcl_table_index_sta_nan(void) policy_mgr_get_third_connection_pcl_table_index_sta_nan(
struct wlan_objmgr_psoc *psoc)
{ {
enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE; enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE;
/* SCC */ /* SCC */
@@ -1862,16 +1882,16 @@ static enum policy_mgr_two_connection_mode
else else
index = PM_STA_NAN_DISC_SCC_24_2x2; index = PM_STA_NAN_DISC_SCC_24_2x2;
/* MCC */ /* MCC */
} else if (pm_conc_connection_list[0].mac == } else if (policy_mgr_are_2_freq_on_same_mac(psoc,
pm_conc_connection_list[1].mac) { pm_conc_connection_list[0].freq,
pm_conc_connection_list[1].freq)) {
/* Policy mgr only considers NAN Disc ch in 2.4 GHz */ /* Policy mgr only considers NAN Disc ch in 2.4 GHz */
if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask) if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask)
index = PM_STA_NAN_DISC_MCC_24_1x1; index = PM_STA_NAN_DISC_MCC_24_1x1;
else else
index = PM_STA_NAN_DISC_MCC_24_2x2; index = PM_STA_NAN_DISC_MCC_24_2x2;
/* DBS */ /* DBS */
} else if (pm_conc_connection_list[0].mac != } else {
pm_conc_connection_list[1].mac) {
if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask) if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask)
index = PM_STA_NAN_DISC_DBS_1x1; index = PM_STA_NAN_DISC_DBS_1x1;
else else
@@ -1881,7 +1901,8 @@ static enum policy_mgr_two_connection_mode
} }
static enum policy_mgr_two_connection_mode static enum policy_mgr_two_connection_mode
policy_mgr_get_third_connection_pcl_table_index_sap_nan(void) policy_mgr_get_third_connection_pcl_table_index_sap_nan(
struct wlan_objmgr_psoc *psoc)
{ {
enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE; enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE;
/* SCC */ /* SCC */
@@ -1893,16 +1914,16 @@ static enum policy_mgr_two_connection_mode
else else
index = PM_SAP_NAN_DISC_SCC_24_2x2; index = PM_SAP_NAN_DISC_SCC_24_2x2;
/* MCC */ /* MCC */
} else if (pm_conc_connection_list[0].mac == } else if (policy_mgr_are_2_freq_on_same_mac(psoc,
pm_conc_connection_list[1].mac) { pm_conc_connection_list[0].freq,
pm_conc_connection_list[1].freq)) {
/* Policy mgr only considers NAN Disc ch in 2.4GHz */ /* Policy mgr only considers NAN Disc ch in 2.4GHz */
if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask) if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask)
index = PM_SAP_NAN_DISC_MCC_24_1x1; index = PM_SAP_NAN_DISC_MCC_24_1x1;
else else
index = PM_SAP_NAN_DISC_MCC_24_2x2; index = PM_SAP_NAN_DISC_MCC_24_2x2;
/* DBS */ /* DBS */
} else if (pm_conc_connection_list[0].mac != } else {
pm_conc_connection_list[1].mac) {
if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask) if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask)
index = PM_SAP_NAN_DISC_DBS_1x1; index = PM_SAP_NAN_DISC_DBS_1x1;
else else
@@ -1912,7 +1933,7 @@ static enum policy_mgr_two_connection_mode
} }
enum policy_mgr_two_connection_mode enum policy_mgr_two_connection_mode
policy_mgr_get_third_connection_pcl_table_index( policy_mgr_get_third_connection_pcl_table_index(
struct wlan_objmgr_psoc *psoc) struct wlan_objmgr_psoc *psoc)
{ {
enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE; enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE;
@@ -1930,74 +1951,74 @@ enum policy_mgr_two_connection_mode
((PM_SAP_MODE == pm_conc_connection_list[0].mode) && ((PM_SAP_MODE == pm_conc_connection_list[0].mode) &&
(PM_P2P_CLIENT_MODE == pm_conc_connection_list[1].mode))) (PM_P2P_CLIENT_MODE == pm_conc_connection_list[1].mode)))
index = index =
policy_mgr_get_third_connection_pcl_table_index_cli_sap(); policy_mgr_get_third_connection_pcl_table_index_cli_sap(psoc);
else if (((PM_STA_MODE == pm_conc_connection_list[0].mode) && else if (((PM_STA_MODE == pm_conc_connection_list[0].mode) &&
(PM_SAP_MODE == pm_conc_connection_list[1].mode)) || (PM_SAP_MODE == pm_conc_connection_list[1].mode)) ||
((PM_SAP_MODE == pm_conc_connection_list[0].mode) && ((PM_SAP_MODE == pm_conc_connection_list[0].mode) &&
(PM_STA_MODE == pm_conc_connection_list[1].mode))) (PM_STA_MODE == pm_conc_connection_list[1].mode)))
index = index =
policy_mgr_get_third_connection_pcl_table_index_sta_sap(); policy_mgr_get_third_connection_pcl_table_index_sta_sap(psoc);
else if ((PM_SAP_MODE == pm_conc_connection_list[0].mode) && else if ((PM_SAP_MODE == pm_conc_connection_list[0].mode) &&
(PM_SAP_MODE == pm_conc_connection_list[1].mode)) (PM_SAP_MODE == pm_conc_connection_list[1].mode))
index = index =
policy_mgr_get_third_connection_pcl_table_index_sap_sap(); policy_mgr_get_third_connection_pcl_table_index_sap_sap(psoc);
else if (((PM_STA_MODE == pm_conc_connection_list[0].mode) && else if (((PM_STA_MODE == pm_conc_connection_list[0].mode) &&
(PM_P2P_GO_MODE == pm_conc_connection_list[1].mode)) || (PM_P2P_GO_MODE == pm_conc_connection_list[1].mode)) ||
((PM_P2P_GO_MODE == pm_conc_connection_list[0].mode) && ((PM_P2P_GO_MODE == pm_conc_connection_list[0].mode) &&
(PM_STA_MODE == pm_conc_connection_list[1].mode))) (PM_STA_MODE == pm_conc_connection_list[1].mode)))
index = index =
policy_mgr_get_third_connection_pcl_table_index_sta_go(); policy_mgr_get_third_connection_pcl_table_index_sta_go(psoc);
else if (((PM_STA_MODE == pm_conc_connection_list[0].mode) && else if (((PM_STA_MODE == pm_conc_connection_list[0].mode) &&
(PM_P2P_CLIENT_MODE == pm_conc_connection_list[1].mode)) || (PM_P2P_CLIENT_MODE == pm_conc_connection_list[1].mode)) ||
((PM_P2P_CLIENT_MODE == pm_conc_connection_list[0].mode) && ((PM_P2P_CLIENT_MODE == pm_conc_connection_list[0].mode) &&
(PM_STA_MODE == pm_conc_connection_list[1].mode))) (PM_STA_MODE == pm_conc_connection_list[1].mode)))
index = index =
policy_mgr_get_third_connection_pcl_table_index_sta_cli(); policy_mgr_get_third_connection_pcl_table_index_sta_cli(psoc);
else if (((PM_P2P_GO_MODE == pm_conc_connection_list[0].mode) && else if (((PM_P2P_GO_MODE == pm_conc_connection_list[0].mode) &&
(PM_P2P_CLIENT_MODE == pm_conc_connection_list[1].mode)) || (PM_P2P_CLIENT_MODE == pm_conc_connection_list[1].mode)) ||
((PM_P2P_CLIENT_MODE == pm_conc_connection_list[0].mode) && ((PM_P2P_CLIENT_MODE == pm_conc_connection_list[0].mode) &&
(PM_P2P_GO_MODE == pm_conc_connection_list[1].mode))) (PM_P2P_GO_MODE == pm_conc_connection_list[1].mode)))
index = index =
policy_mgr_get_third_connection_pcl_table_index_go_cli(); policy_mgr_get_third_connection_pcl_table_index_go_cli(psoc);
else if (((PM_SAP_MODE == pm_conc_connection_list[0].mode) && else if (((PM_SAP_MODE == pm_conc_connection_list[0].mode) &&
(PM_P2P_GO_MODE == pm_conc_connection_list[1].mode)) || (PM_P2P_GO_MODE == pm_conc_connection_list[1].mode)) ||
((PM_P2P_GO_MODE == pm_conc_connection_list[0].mode) && ((PM_P2P_GO_MODE == pm_conc_connection_list[0].mode) &&
(PM_SAP_MODE == pm_conc_connection_list[1].mode))) (PM_SAP_MODE == pm_conc_connection_list[1].mode)))
index = index =
policy_mgr_get_third_connection_pcl_table_index_go_sap(); policy_mgr_get_third_connection_pcl_table_index_go_sap(psoc);
else if (((PM_STA_MODE == pm_conc_connection_list[0].mode) && else if (((PM_STA_MODE == pm_conc_connection_list[0].mode) &&
(PM_STA_MODE == pm_conc_connection_list[1].mode)) || (PM_STA_MODE == pm_conc_connection_list[1].mode)) ||
((PM_STA_MODE == pm_conc_connection_list[0].mode) && ((PM_STA_MODE == pm_conc_connection_list[0].mode) &&
(PM_STA_MODE == pm_conc_connection_list[1].mode))) (PM_STA_MODE == pm_conc_connection_list[1].mode)))
index = index =
policy_mgr_get_third_connection_pcl_table_index_sta_sta(); policy_mgr_get_third_connection_pcl_table_index_sta_sta(psoc);
else if (((PM_NAN_DISC_MODE == pm_conc_connection_list[0].mode) && else if (((PM_NAN_DISC_MODE == pm_conc_connection_list[0].mode) &&
(PM_STA_MODE == pm_conc_connection_list[1].mode)) || (PM_STA_MODE == pm_conc_connection_list[1].mode)) ||
((PM_STA_MODE == pm_conc_connection_list[0].mode) && ((PM_STA_MODE == pm_conc_connection_list[0].mode) &&
(PM_NAN_DISC_MODE == pm_conc_connection_list[1].mode))) (PM_NAN_DISC_MODE == pm_conc_connection_list[1].mode)))
index = index =
policy_mgr_get_third_connection_pcl_table_index_sta_nan(); policy_mgr_get_third_connection_pcl_table_index_sta_nan(psoc);
else if (((PM_NAN_DISC_MODE == pm_conc_connection_list[0].mode) && else if (((PM_NAN_DISC_MODE == pm_conc_connection_list[0].mode) &&
(PM_NDI_MODE == pm_conc_connection_list[1].mode)) || (PM_NDI_MODE == pm_conc_connection_list[1].mode)) ||
((PM_NDI_MODE == pm_conc_connection_list[0].mode) && ((PM_NDI_MODE == pm_conc_connection_list[0].mode) &&
(PM_NAN_DISC_MODE == pm_conc_connection_list[1].mode))) (PM_NAN_DISC_MODE == pm_conc_connection_list[1].mode)))
index = index =
policy_mgr_get_third_connection_pcl_table_index_nan_ndi(); policy_mgr_get_third_connection_pcl_table_index_nan_ndi(psoc);
else if (((PM_SAP_MODE == pm_conc_connection_list[0].mode) && else if (((PM_SAP_MODE == pm_conc_connection_list[0].mode) &&
(PM_NAN_DISC_MODE == pm_conc_connection_list[1].mode)) || (PM_NAN_DISC_MODE == pm_conc_connection_list[1].mode)) ||
((PM_NAN_DISC_MODE == pm_conc_connection_list[0].mode) && ((PM_NAN_DISC_MODE == pm_conc_connection_list[0].mode) &&
(PM_SAP_MODE == pm_conc_connection_list[1].mode))) (PM_SAP_MODE == pm_conc_connection_list[1].mode)))
index = index =
policy_mgr_get_third_connection_pcl_table_index_sap_nan(); policy_mgr_get_third_connection_pcl_table_index_sap_nan(psoc);
else if ((pm_conc_connection_list[0].mode == PM_P2P_GO_MODE) && else if ((pm_conc_connection_list[0].mode == PM_P2P_GO_MODE) &&
(pm_conc_connection_list[1].mode == PM_P2P_GO_MODE)) (pm_conc_connection_list[1].mode == PM_P2P_GO_MODE))
index = index =
policy_mgr_get_third_connection_pcl_table_index_go_go(); policy_mgr_get_third_connection_pcl_table_index_go_go(psoc);
else if ((pm_conc_connection_list[0].mode == PM_P2P_CLIENT_MODE) && else if ((pm_conc_connection_list[0].mode == PM_P2P_CLIENT_MODE) &&
(pm_conc_connection_list[1].mode == PM_P2P_CLIENT_MODE)) (pm_conc_connection_list[1].mode == PM_P2P_CLIENT_MODE))
index = index =
policy_mgr_get_third_connection_pcl_table_index_cli_cli(); policy_mgr_get_third_connection_pcl_table_index_cli_cli(psoc);
policy_mgr_debug("mode0:%d mode1:%d freq0:%d freq1:%d chain:%d index:%d", policy_mgr_debug("mode0:%d mode1:%d freq0:%d freq1:%d chain:%d index:%d",
pm_conc_connection_list[0].mode, pm_conc_connection_list[0].mode,

View File

@@ -2127,8 +2127,9 @@ int wlan_hdd_cfg80211_start_acs(struct hdd_adapter *adapter)
uint32_t i; uint32_t i;
conc_connection_info = policy_mgr_get_conn_info(&i); conc_connection_info = policy_mgr_get_conn_info(&i);
if (conc_connection_info[0].mac == if (policy_mgr_are_2_freq_on_same_mac(hdd_ctx->psoc,
conc_connection_info[1].mac) { conc_connection_info[0].freq,
conc_connection_info[1].freq)) {
if (!WLAN_REG_IS_24GHZ_CH_FREQ( if (!WLAN_REG_IS_24GHZ_CH_FREQ(
sap_config->acs_cfg.pcl_chan_freq[0])) { sap_config->acs_cfg.pcl_chan_freq[0])) {
sap_config->acs_cfg.band = sap_config->acs_cfg.band =
@@ -2665,9 +2666,9 @@ int hdd_cfg80211_update_acs_config(struct hdd_adapter *adapter,
struct policy_mgr_conc_connection_info *conc_connection_info; struct policy_mgr_conc_connection_info *conc_connection_info;
conc_connection_info = policy_mgr_get_conn_info(&i); conc_connection_info = policy_mgr_get_conn_info(&i);
if (conc_connection_info[0].mac == if (policy_mgr_are_2_freq_on_same_mac(hdd_ctx->psoc,
conc_connection_info[1].mac) { conc_connection_info[0].freq,
conc_connection_info[1].freq)) {
if (!WLAN_REG_IS_24GHZ_CH_FREQ( if (!WLAN_REG_IS_24GHZ_CH_FREQ(
sap_config->acs_cfg.pcl_chan_freq[0])) { sap_config->acs_cfg.pcl_chan_freq[0])) {
sap_config->acs_cfg.band = sap_config->acs_cfg.band =