summaryrefslogtreecommitdiff
path: root/umac
diff options
context:
space:
mode:
authorYeshwanth Sriram Guntuka <ysriramg@codeaurora.org>2018-02-12 12:24:06 +0530
committersnandini <snandini@codeaurora.org>2018-02-26 06:34:53 -0800
commit4a2dfa987f8c5a431fd81b1e3074b7ff5a4d7e38 (patch)
treeb5ee8fbd6a1a54b7a5410753864aad36ed1f2d60 /umac
parent68a824774cc730fcfe99ed9e0aeebac1cb614980 (diff)
downloadqca-wfi-host-cmn-4a2dfa987f8c5a431fd81b1e3074b7ff5a4d7e38.tar.gz
qcacmn: Add ini support for channel selection logic
Add ini to select DBS or inter-band MCC channel selection logic for STA+STA and STA+P2P connections. Change-Id: I7cfde9592ec210b0a8c812171d2bc6f005e17fb2 CRs-Fixed: 2189845
Diffstat (limited to 'umac')
-rw-r--r--umac/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h16
-rw-r--r--umac/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c9
2 files changed, 23 insertions, 2 deletions
diff --git a/umac/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h b/umac/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h
index a9886edbc..9399e1416 100644
--- a/umac/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h
+++ b/umac/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h
@@ -60,6 +60,19 @@ typedef const enum policy_mgr_conc_next_action
policy_mgr_next_action_three_connection_table_type
[PM_MAX_TWO_CONNECTION_MODE][POLICY_MGR_MAX_BAND];
+#define PM_FW_MODE_STA_STA_BIT_POS 0
+#define PM_FW_MODE_STA_P2P_BIT_POS 1
+
+#define PM_FW_MODE_STA_STA_BIT_MASK (0x1 << PM_FW_MODE_STA_STA_BIT_POS)
+#define PM_FW_MODE_STA_P2P_BIT_MASK (0x1 << PM_FW_MODE_STA_P2P_BIT_POS)
+
+#define PM_CHANNEL_SELECT_LOGIC_STA_STA_GET(channel_select_logic_conc) \
+ ((channel_select_logic_conc & PM_FW_MODE_STA_STA_BIT_MASK) >> \
+ PM_FW_MODE_STA_STA_BIT_POS)
+#define PM_CHANNEL_SELECT_LOGIC_STA_P2P_GET(channel_select_logic_conc) \
+ ((channel_select_logic_conc & PM_FW_MODE_STA_P2P_BIT_MASK) >> \
+ PM_FW_MODE_STA_P2P_BIT_POS)
+
/**
* policy_mgr_set_concurrency_mode() - To set concurrency mode
* @psoc: PSOC object data
@@ -2025,7 +2038,8 @@ bool policy_mgr_is_dnsc_set(struct wlan_objmgr_vdev *vdev);
*/
QDF_STATUS policy_mgr_get_updated_scan_and_fw_mode_config(
struct wlan_objmgr_psoc *psoc, uint32_t *scan_config,
- uint32_t *fw_mode_config, uint32_t dual_mac_disable_ini);
+ uint32_t *fw_mode_config, uint32_t dual_mac_disable_ini,
+ uint32_t channel_select_logic_conc);
/**
* policy_mgr_is_safe_channel - Check if the channel is in LTE
diff --git a/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c b/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c
index 653bed941..f164df372 100644
--- a/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c
+++ b/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c
@@ -2722,7 +2722,8 @@ uint8_t policy_mgr_get_cur_conc_system_pref(struct wlan_objmgr_psoc *psoc)
QDF_STATUS policy_mgr_get_updated_scan_and_fw_mode_config(
struct wlan_objmgr_psoc *psoc, uint32_t *scan_config,
- uint32_t *fw_mode_config, uint32_t dual_mac_disable_ini)
+ uint32_t *fw_mode_config, uint32_t dual_mac_disable_ini,
+ uint32_t channel_select_logic_conc)
{
struct policy_mgr_psoc_priv_obj *pm_ctx;
@@ -2754,6 +2755,12 @@ QDF_STATUS policy_mgr_get_updated_scan_and_fw_mode_config(
default:
break;
}
+
+ WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_STA_SET(*fw_mode_config,
+ PM_CHANNEL_SELECT_LOGIC_STA_STA_GET(channel_select_logic_conc));
+ WMI_DBS_FW_MODE_CFG_DBS_FOR_STA_PLUS_P2P_SET(*fw_mode_config,
+ PM_CHANNEL_SELECT_LOGIC_STA_P2P_GET(channel_select_logic_conc));
+
policy_mgr_debug("*scan_config:%x ", *scan_config);
policy_mgr_debug("*fw_mode_config:%x ", *fw_mode_config);