|
@@ -1640,7 +1640,6 @@ void policy_mgr_set_concurrency_mode(struct wlan_objmgr_psoc *psoc,
|
|
|
case QDF_P2P_CLIENT_MODE:
|
|
|
case QDF_P2P_GO_MODE:
|
|
|
case QDF_SAP_MODE:
|
|
|
- case QDF_IBSS_MODE:
|
|
|
case QDF_MONITOR_MODE:
|
|
|
pm_ctx->concurrency_mode |= (1 << mode);
|
|
|
pm_ctx->no_of_open_sessions[mode]++;
|
|
@@ -1716,7 +1715,6 @@ void policy_mgr_incr_active_session(struct wlan_objmgr_psoc *psoc,
|
|
|
case QDF_P2P_CLIENT_MODE:
|
|
|
case QDF_P2P_GO_MODE:
|
|
|
case QDF_SAP_MODE:
|
|
|
- case QDF_IBSS_MODE:
|
|
|
case QDF_NAN_DISC_MODE:
|
|
|
case QDF_NDI_MODE:
|
|
|
pm_ctx->no_of_active_sessions[mode]++;
|
|
@@ -1752,7 +1750,7 @@ void policy_mgr_incr_active_session(struct wlan_objmgr_psoc *psoc,
|
|
|
pm_ctx->tdls_cbacks.tdls_notify_increment_session(psoc);
|
|
|
|
|
|
/*
|
|
|
- * Disable LRO/GRO if P2P or IBSS or SAP connection has come up or
|
|
|
+ * Disable LRO/GRO if P2P or SAP connection has come up or
|
|
|
* there are more than one STA connections
|
|
|
*/
|
|
|
if ((policy_mgr_mode_specific_connection_count(psoc, PM_STA_MODE, NULL) > 1) ||
|
|
@@ -1760,9 +1758,6 @@ void policy_mgr_incr_active_session(struct wlan_objmgr_psoc *psoc,
|
|
|
(policy_mgr_mode_specific_connection_count(psoc, PM_P2P_CLIENT_MODE, NULL) >
|
|
|
0) ||
|
|
|
(policy_mgr_mode_specific_connection_count(psoc, PM_P2P_GO_MODE, NULL) > 0) ||
|
|
|
- (policy_mgr_mode_specific_connection_count(psoc,
|
|
|
- PM_IBSS_MODE,
|
|
|
- NULL) > 0) ||
|
|
|
(policy_mgr_mode_specific_connection_count(psoc,
|
|
|
PM_NDI_MODE,
|
|
|
NULL) > 0)) {
|
|
@@ -1817,7 +1812,6 @@ QDF_STATUS policy_mgr_decr_active_session(struct wlan_objmgr_psoc *psoc,
|
|
|
case QDF_P2P_CLIENT_MODE:
|
|
|
case QDF_P2P_GO_MODE:
|
|
|
case QDF_SAP_MODE:
|
|
|
- case QDF_IBSS_MODE:
|
|
|
case QDF_NAN_DISC_MODE:
|
|
|
case QDF_NDI_MODE:
|
|
|
if (pm_ctx->no_of_active_sessions[mode])
|
|
@@ -1859,9 +1853,6 @@ QDF_STATUS policy_mgr_decr_active_session(struct wlan_objmgr_psoc *psoc,
|
|
|
(policy_mgr_mode_specific_connection_count(psoc,
|
|
|
PM_P2P_GO_MODE,
|
|
|
NULL) == 0) &&
|
|
|
- (policy_mgr_mode_specific_connection_count(psoc,
|
|
|
- PM_IBSS_MODE,
|
|
|
- NULL) == 0) &&
|
|
|
(policy_mgr_mode_specific_connection_count(psoc,
|
|
|
PM_NDI_MODE,
|
|
|
NULL) == 0))) {
|
|
@@ -2069,9 +2060,6 @@ bool policy_mgr_map_concurrency_mode(enum QDF_OPMODE *old_mode,
|
|
|
case QDF_P2P_GO_MODE:
|
|
|
*new_mode = PM_P2P_GO_MODE;
|
|
|
break;
|
|
|
- case QDF_IBSS_MODE:
|
|
|
- *new_mode = PM_IBSS_MODE;
|
|
|
- break;
|
|
|
case QDF_NAN_DISC_MODE:
|
|
|
*new_mode = PM_NAN_DISC_MODE;
|
|
|
break;
|
|
@@ -2087,42 +2075,6 @@ bool policy_mgr_map_concurrency_mode(enum QDF_OPMODE *old_mode,
|
|
|
return status;
|
|
|
}
|
|
|
|
|
|
-bool policy_mgr_is_ibss_conn_exist(struct wlan_objmgr_psoc *psoc,
|
|
|
- uint32_t *ibss_ch_freq)
|
|
|
-{
|
|
|
- uint32_t count = 0, index = 0;
|
|
|
- uint32_t list[MAX_NUMBER_OF_CONC_CONNECTIONS];
|
|
|
- bool status = false;
|
|
|
- struct policy_mgr_psoc_priv_obj *pm_ctx;
|
|
|
-
|
|
|
- pm_ctx = policy_mgr_get_context(psoc);
|
|
|
- if (!pm_ctx) {
|
|
|
- policy_mgr_err("Invalid Context");
|
|
|
- return status;
|
|
|
- }
|
|
|
- if (!ibss_ch_freq) {
|
|
|
- policy_mgr_err("Null pointer error");
|
|
|
- return false;
|
|
|
- }
|
|
|
- count = policy_mgr_mode_specific_connection_count(
|
|
|
- psoc, PM_IBSS_MODE, list);
|
|
|
- qdf_mutex_acquire(&pm_ctx->qdf_conc_list_lock);
|
|
|
- if (count == 0) {
|
|
|
- /* No IBSS connection */
|
|
|
- status = false;
|
|
|
- } else if (count == 1) {
|
|
|
- *ibss_ch_freq = pm_conc_connection_list[list[index]].freq;
|
|
|
- status = true;
|
|
|
- } else {
|
|
|
- *ibss_ch_freq = pm_conc_connection_list[list[index]].freq;
|
|
|
- policy_mgr_debug("Multiple IBSS connections, picking first one");
|
|
|
- status = true;
|
|
|
- }
|
|
|
- qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
|
|
|
-
|
|
|
- return status;
|
|
|
-}
|
|
|
-
|
|
|
uint32_t policy_mgr_get_mode_specific_conn_info(
|
|
|
struct wlan_objmgr_psoc *psoc,
|
|
|
uint32_t *ch_freq_list, uint8_t *vdev_id,
|
|
@@ -2484,98 +2436,6 @@ bool policy_mgr_is_concurrency_allowed(struct wlan_objmgr_psoc *psoc,
|
|
|
goto done;
|
|
|
}
|
|
|
|
|
|
- /*
|
|
|
- * Check all IBSS+STA concurrencies
|
|
|
- *
|
|
|
- * don't allow IBSS + STA MCC
|
|
|
- * don't allow IBSS + STA SCC if IBSS is on DFS channel
|
|
|
- */
|
|
|
- if ((PM_IBSS_MODE == mode) &&
|
|
|
- (policy_mgr_mode_specific_connection_count(psoc,
|
|
|
- PM_IBSS_MODE, list)) && count) {
|
|
|
- policy_mgr_rl_debug("No 2nd IBSS, we already have STA + IBSS");
|
|
|
- goto done;
|
|
|
- }
|
|
|
- if ((PM_IBSS_MODE == mode) &&
|
|
|
- (wlan_reg_is_dfs_for_freq(pm_ctx->pdev, ch_freq)) && count) {
|
|
|
- policy_mgr_rl_debug("No IBSS + STA SCC/MCC, IBSS is on DFS channel");
|
|
|
- goto done;
|
|
|
- }
|
|
|
- if (PM_IBSS_MODE == mode) {
|
|
|
- if (policy_mgr_is_hw_dbs_capable(psoc) == true) {
|
|
|
- if (num_connections > 1) {
|
|
|
- policy_mgr_rl_debug("No IBSS, we have concurrent connections already");
|
|
|
- goto done;
|
|
|
- }
|
|
|
- qdf_mutex_acquire(&pm_ctx->qdf_conc_list_lock);
|
|
|
- if (PM_STA_MODE != pm_conc_connection_list[0].mode) {
|
|
|
- policy_mgr_rl_debug("No IBSS, we've a non-STA connection");
|
|
|
- qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
|
|
|
- goto done;
|
|
|
- }
|
|
|
- /*
|
|
|
- * This logic protects STA and IBSS to come up on same
|
|
|
- * band. If requirement changes then this condition
|
|
|
- * needs to be removed
|
|
|
- */
|
|
|
- if (ch_freq &&
|
|
|
- pm_conc_connection_list[0].freq != ch_freq &&
|
|
|
- WLAN_REG_IS_SAME_BAND_FREQS(
|
|
|
- pm_conc_connection_list[0].freq, ch_freq)) {
|
|
|
- qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
|
|
|
- policy_mgr_rl_debug("No IBSS + STA MCC");
|
|
|
- goto done;
|
|
|
- }
|
|
|
- qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
|
|
|
- } else if (num_connections) {
|
|
|
- policy_mgr_rl_debug("No IBSS, we have one connection already");
|
|
|
- goto done;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if ((PM_STA_MODE == mode) &&
|
|
|
- (policy_mgr_mode_specific_connection_count(psoc,
|
|
|
- PM_IBSS_MODE, list)) && count) {
|
|
|
- policy_mgr_rl_debug("No 2nd STA, we already have STA + IBSS");
|
|
|
- goto done;
|
|
|
- }
|
|
|
-
|
|
|
- if ((PM_STA_MODE == mode) &&
|
|
|
- (policy_mgr_mode_specific_connection_count(psoc,
|
|
|
- PM_IBSS_MODE, list))) {
|
|
|
- if (policy_mgr_is_hw_dbs_capable(psoc) == true) {
|
|
|
- if (num_connections > 1) {
|
|
|
- policy_mgr_rl_debug("No 2nd STA, we already have IBSS concurrency");
|
|
|
- goto done;
|
|
|
- }
|
|
|
- qdf_mutex_acquire(&pm_ctx->qdf_conc_list_lock);
|
|
|
- if (ch_freq &&
|
|
|
- (wlan_reg_is_dfs_for_freq(pm_ctx->pdev,
|
|
|
- pm_conc_connection_list[0].freq)) &&
|
|
|
- (WLAN_REG_IS_5GHZ_CH_FREQ(ch_freq))) {
|
|
|
- qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
|
|
|
- policy_mgr_rl_debug("No IBSS + STA SCC/MCC, IBSS is on DFS channel");
|
|
|
- goto done;
|
|
|
- }
|
|
|
- /*
|
|
|
- * This logic protects STA and IBSS to come up on same
|
|
|
- * band. If requirement changes then this condition
|
|
|
- * needs to be removed
|
|
|
- */
|
|
|
- if (pm_conc_connection_list[0].freq != ch_freq &&
|
|
|
- WLAN_REG_IS_SAME_BAND_FREQS(
|
|
|
- pm_conc_connection_list[0].freq, ch_freq)) {
|
|
|
- policy_mgr_rl_debug("No IBSS + STA MCC");
|
|
|
- qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
|
|
|
- goto done;
|
|
|
- }
|
|
|
- qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
|
|
|
- } else {
|
|
|
- policy_mgr_rl_debug("No STA, we have IBSS connection already");
|
|
|
- goto done;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
if (!policy_mgr_allow_sap_go_concurrency(psoc, mode, ch_freq,
|
|
|
WLAN_INVALID_VDEV_ID)) {
|
|
|
policy_mgr_rl_debug("This concurrency combination is not allowed");
|
|
@@ -3036,9 +2896,6 @@ enum policy_mgr_con_mode policy_mgr_convert_device_mode_to_qdf_type(
|
|
|
case QDF_SAP_MODE:
|
|
|
mode = PM_SAP_MODE;
|
|
|
break;
|
|
|
- case QDF_IBSS_MODE:
|
|
|
- mode = PM_IBSS_MODE;
|
|
|
- break;
|
|
|
case QDF_NAN_DISC_MODE:
|
|
|
mode = PM_NAN_DISC_MODE;
|
|
|
break;
|
|
@@ -3071,9 +2928,6 @@ enum QDF_OPMODE policy_mgr_get_qdf_mode_from_pm(
|
|
|
case PM_P2P_GO_MODE:
|
|
|
mode = QDF_P2P_GO_MODE;
|
|
|
break;
|
|
|
- case PM_IBSS_MODE:
|
|
|
- mode = QDF_IBSS_MODE;
|
|
|
- break;
|
|
|
case PM_NAN_DISC_MODE:
|
|
|
mode = QDF_NAN_DISC_MODE;
|
|
|
break;
|
|
@@ -3153,7 +3007,7 @@ bool policy_mgr_concurrent_open_sessions_running(
|
|
|
* for concurrent beaconing entities
|
|
|
* @psoc: PSOC object information
|
|
|
*
|
|
|
- * Checks if multiple beaconing sessions are running i.e., if SAP or GO or IBSS
|
|
|
+ * Checks if multiple beaconing sessions are running i.e., if SAP or GO
|
|
|
* are beaconing together
|
|
|
*
|
|
|
* Return: True if multiple entities are beaconing together, False otherwise
|
|
@@ -3170,8 +3024,8 @@ bool policy_mgr_concurrent_beaconing_sessions_running(
|
|
|
}
|
|
|
|
|
|
return (pm_ctx->no_of_open_sessions[QDF_SAP_MODE] +
|
|
|
- pm_ctx->no_of_open_sessions[QDF_P2P_GO_MODE] +
|
|
|
- pm_ctx->no_of_open_sessions[QDF_IBSS_MODE] > 1) ? true : false;
|
|
|
+ pm_ctx->no_of_open_sessions[QDF_P2P_GO_MODE]
|
|
|
+ > 1) ? true : false;
|
|
|
}
|
|
|
|
|
|
|