| /* |
| * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved. |
| * |
| * Permission to use, copy, modify, and/or distribute this software for |
| * any purpose with or without fee is hereby granted, provided that the |
| * above copyright notice and this permission notice appear in all |
| * copies. |
| * |
| * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL |
| * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED |
| * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE |
| * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL |
| * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR |
| * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER |
| * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR |
| * PERFORMANCE OF THIS SOFTWARE. |
| */ |
| |
| #ifndef WLAN_POLICY_MGR_I_H |
| #define WLAN_POLICY_MGR_I_H |
| |
| #include "wlan_policy_mgr_api.h" |
| #include "qdf_event.h" |
| #include "qdf_mc_timer.h" |
| #include "qdf_lock.h" |
| #include "qdf_defer.h" |
| #include "wlan_reg_services_api.h" |
| |
| #define DBS_OPPORTUNISTIC_TIME 10 |
| #ifdef QCA_WIFI_3_0_EMU |
| #define CONNECTION_UPDATE_TIMEOUT 3000 |
| #else |
| #define CONNECTION_UPDATE_TIMEOUT 1000 |
| #endif |
| |
| #define PM_24_GHZ_CHANNEL_6 (6) |
| #define PM_5_GHZ_CHANNEL_36 (36) |
| #define CHANNEL_SWITCH_COMPLETE_TIMEOUT (2000) |
| |
| /** |
| * Policy Mgr hardware mode list bit-mask definitions. |
| * Bits 4:0, 31:29 are unused. |
| * |
| * The below definitions are added corresponding to WMI DBS HW mode |
| * list to make it independent of firmware changes for WMI definitions. |
| * Currently these definitions have dependency with BIT positions of |
| * the existing WMI macros. Thus, if the BIT positions are changed for |
| * WMI macros, then these macros' BIT definitions are also need to be |
| * changed. |
| */ |
| #define POLICY_MGR_HW_MODE_MAC0_TX_STREAMS_BITPOS (28) |
| #define POLICY_MGR_HW_MODE_MAC0_RX_STREAMS_BITPOS (24) |
| #define POLICY_MGR_HW_MODE_MAC1_TX_STREAMS_BITPOS (20) |
| #define POLICY_MGR_HW_MODE_MAC1_RX_STREAMS_BITPOS (16) |
| #define POLICY_MGR_HW_MODE_MAC0_BANDWIDTH_BITPOS (12) |
| #define POLICY_MGR_HW_MODE_MAC1_BANDWIDTH_BITPOS (8) |
| #define POLICY_MGR_HW_MODE_DBS_MODE_BITPOS (7) |
| #define POLICY_MGR_HW_MODE_AGILE_DFS_MODE_BITPOS (6) |
| #define POLICY_MGR_HW_MODE_SBS_MODE_BITPOS (5) |
| #define POLICY_MGR_HW_MODE_MAC0_BAND_BITPOS (3) |
| #define POLICY_MGR_HW_MODE_ID_BITPOS (0) |
| |
| #define POLICY_MGR_HW_MODE_MAC0_TX_STREAMS_MASK \ |
| (0xf << POLICY_MGR_HW_MODE_MAC0_TX_STREAMS_BITPOS) |
| #define POLICY_MGR_HW_MODE_MAC0_RX_STREAMS_MASK \ |
| (0xf << POLICY_MGR_HW_MODE_MAC0_RX_STREAMS_BITPOS) |
| #define POLICY_MGR_HW_MODE_MAC1_TX_STREAMS_MASK \ |
| (0xf << POLICY_MGR_HW_MODE_MAC1_TX_STREAMS_BITPOS) |
| #define POLICY_MGR_HW_MODE_MAC1_RX_STREAMS_MASK \ |
| (0xf << POLICY_MGR_HW_MODE_MAC1_RX_STREAMS_BITPOS) |
| #define POLICY_MGR_HW_MODE_MAC0_BANDWIDTH_MASK \ |
| (0xf << POLICY_MGR_HW_MODE_MAC0_BANDWIDTH_BITPOS) |
| #define POLICY_MGR_HW_MODE_MAC1_BANDWIDTH_MASK \ |
| (0xf << POLICY_MGR_HW_MODE_MAC1_BANDWIDTH_BITPOS) |
| #define POLICY_MGR_HW_MODE_DBS_MODE_MASK \ |
| (0x1 << POLICY_MGR_HW_MODE_DBS_MODE_BITPOS) |
| #define POLICY_MGR_HW_MODE_AGILE_DFS_MODE_MASK \ |
| (0x1 << POLICY_MGR_HW_MODE_AGILE_DFS_MODE_BITPOS) |
| #define POLICY_MGR_HW_MODE_SBS_MODE_MASK \ |
| (0x1 << POLICY_MGR_HW_MODE_SBS_MODE_BITPOS) |
| #define POLICY_MGR_HW_MODE_MAC0_BAND_MASK \ |
| (0x3 << POLICY_MGR_HW_MODE_MAC0_BAND_BITPOS) |
| #define POLICY_MGR_HW_MODE_ID_MASK \ |
| (0x7 << POLICY_MGR_HW_MODE_ID_BITPOS) |
| |
| #define POLICY_MGR_HW_MODE_MAC0_TX_STREAMS_SET(hw_mode, value) \ |
| WMI_SET_BITS(hw_mode, POLICY_MGR_HW_MODE_MAC0_TX_STREAMS_BITPOS,\ |
| 4, value) |
| #define POLICY_MGR_HW_MODE_MAC0_RX_STREAMS_SET(hw_mode, value) \ |
| WMI_SET_BITS(hw_mode, POLICY_MGR_HW_MODE_MAC0_RX_STREAMS_BITPOS,\ |
| 4, value) |
| #define POLICY_MGR_HW_MODE_MAC1_TX_STREAMS_SET(hw_mode, value) \ |
| WMI_SET_BITS(hw_mode, POLICY_MGR_HW_MODE_MAC1_TX_STREAMS_BITPOS,\ |
| 4, value) |
| #define POLICY_MGR_HW_MODE_MAC1_RX_STREAMS_SET(hw_mode, value) \ |
| WMI_SET_BITS(hw_mode, POLICY_MGR_HW_MODE_MAC1_RX_STREAMS_BITPOS,\ |
| 4, value) |
| #define POLICY_MGR_HW_MODE_MAC0_BANDWIDTH_SET(hw_mode, value) \ |
| WMI_SET_BITS(hw_mode, POLICY_MGR_HW_MODE_MAC0_BANDWIDTH_BITPOS,\ |
| 4, value) |
| #define POLICY_MGR_HW_MODE_MAC1_BANDWIDTH_SET(hw_mode, value) \ |
| WMI_SET_BITS(hw_mode, POLICY_MGR_HW_MODE_MAC1_BANDWIDTH_BITPOS,\ |
| 4, value) |
| #define POLICY_MGR_HW_MODE_DBS_MODE_SET(hw_mode, value) \ |
| WMI_SET_BITS(hw_mode, POLICY_MGR_HW_MODE_DBS_MODE_BITPOS,\ |
| 1, value) |
| #define POLICY_MGR_HW_MODE_AGILE_DFS_SET(hw_mode, value) \ |
| WMI_SET_BITS(hw_mode, POLICY_MGR_HW_MODE_AGILE_DFS_MODE_BITPOS,\ |
| 1, value) |
| #define POLICY_MGR_HW_MODE_SBS_MODE_SET(hw_mode, value) \ |
| WMI_SET_BITS(hw_mode, POLICY_MGR_HW_MODE_SBS_MODE_BITPOS,\ |
| 1, value) |
| #define POLICY_MGR_HW_MODE_MAC0_BAND_SET(hw_mode, value) \ |
| WMI_SET_BITS(hw_mode, POLICY_MGR_HW_MODE_MAC0_BAND_BITPOS,\ |
| 2, value) |
| #define POLICY_MGR_HW_MODE_ID_SET(hw_mode, value) \ |
| WMI_SET_BITS(hw_mode, POLICY_MGR_HW_MODE_ID_BITPOS,\ |
| 3, value) |
| |
| #define POLICY_MGR_HW_MODE_MAC0_TX_STREAMS_GET(hw_mode) \ |
| (((hw_mode) & POLICY_MGR_HW_MODE_MAC0_TX_STREAMS_MASK) >> \ |
| POLICY_MGR_HW_MODE_MAC0_TX_STREAMS_BITPOS) |
| #define POLICY_MGR_HW_MODE_MAC0_RX_STREAMS_GET(hw_mode) \ |
| (((hw_mode) & POLICY_MGR_HW_MODE_MAC0_RX_STREAMS_MASK) >> \ |
| POLICY_MGR_HW_MODE_MAC0_RX_STREAMS_BITPOS) |
| #define POLICY_MGR_HW_MODE_MAC1_TX_STREAMS_GET(hw_mode) \ |
| (((hw_mode) & POLICY_MGR_HW_MODE_MAC1_TX_STREAMS_MASK) >> \ |
| POLICY_MGR_HW_MODE_MAC1_TX_STREAMS_BITPOS) |
| #define POLICY_MGR_HW_MODE_MAC1_RX_STREAMS_GET(hw_mode) \ |
| (((hw_mode) & POLICY_MGR_HW_MODE_MAC1_RX_STREAMS_MASK) >> \ |
| POLICY_MGR_HW_MODE_MAC1_RX_STREAMS_BITPOS) |
| #define POLICY_MGR_HW_MODE_MAC0_BANDWIDTH_GET(hw_mode) \ |
| (((hw_mode) & POLICY_MGR_HW_MODE_MAC0_BANDWIDTH_MASK) >> \ |
| POLICY_MGR_HW_MODE_MAC0_BANDWIDTH_BITPOS) |
| #define POLICY_MGR_HW_MODE_MAC1_BANDWIDTH_GET(hw_mode) \ |
| (((hw_mode) & POLICY_MGR_HW_MODE_MAC1_BANDWIDTH_MASK) >> \ |
| POLICY_MGR_HW_MODE_MAC1_BANDWIDTH_BITPOS) |
| #define POLICY_MGR_HW_MODE_DBS_MODE_GET(hw_mode) \ |
| (((hw_mode) & POLICY_MGR_HW_MODE_DBS_MODE_MASK) >> \ |
| POLICY_MGR_HW_MODE_DBS_MODE_BITPOS) |
| #define POLICY_MGR_HW_MODE_AGILE_DFS_GET(hw_mode) \ |
| (((hw_mode) & POLICY_MGR_HW_MODE_AGILE_DFS_MODE_MASK) >> \ |
| POLICY_MGR_HW_MODE_AGILE_DFS_MODE_BITPOS) |
| #define POLICY_MGR_HW_MODE_SBS_MODE_GET(hw_mode) \ |
| (((hw_mode) & POLICY_MGR_HW_MODE_SBS_MODE_MASK) >> \ |
| POLICY_MGR_HW_MODE_SBS_MODE_BITPOS) |
| #define POLICY_MGR_HW_MODE_MAC0_BAND_GET(hw_mode) \ |
| (((hw_mode) & POLICY_MGR_HW_MODE_MAC0_BAND_MASK) >> \ |
| POLICY_MGR_HW_MODE_MAC0_BAND_BITPOS) |
| #define POLICY_MGR_HW_MODE_ID_GET(hw_mode) \ |
| (((hw_mode) & POLICY_MGR_HW_MODE_ID_MASK) >> \ |
| POLICY_MGR_HW_MODE_ID_BITPOS) |
| |
| #define POLICY_MGR_DEFAULT_HW_MODE_INDEX 0xFFFF |
| |
| #define policy_mgr_log(level, args...) \ |
| QDF_TRACE(QDF_MODULE_ID_POLICY_MGR, level, ## args) |
| #define policy_mgr_logfl(level, format, args...) \ |
| policy_mgr_log(level, FL(format), ## args) |
| |
| #define policy_mgr_alert(format, args...) \ |
| policy_mgr_logfl(QDF_TRACE_LEVEL_FATAL, format, ## args) |
| #define policy_mgr_err(format, args...) \ |
| policy_mgr_logfl(QDF_TRACE_LEVEL_ERROR, format, ## args) |
| #define policy_mgr_warn(format, args...) \ |
| policy_mgr_logfl(QDF_TRACE_LEVEL_WARN, format, ## args) |
| #define policy_mgr_notice(format, args...) \ |
| policy_mgr_logfl(QDF_TRACE_LEVEL_INFO, format, ## args) |
| #define policy_mgr_info(format, args...) \ |
| policy_mgr_logfl(QDF_TRACE_LEVEL_INFO_HIGH, format, ## args) |
| #define policy_mgr_debug(format, args...) \ |
| policy_mgr_logfl(QDF_TRACE_LEVEL_DEBUG, format, ## args) |
| |
| #define PM_CONC_CONNECTION_LIST_VALID_INDEX(index) \ |
| ((MAX_NUMBER_OF_CONC_CONNECTIONS > index) && \ |
| (pm_conc_connection_list[index].in_use)) |
| |
| extern struct policy_mgr_conc_connection_info |
| pm_conc_connection_list[MAX_NUMBER_OF_CONC_CONNECTIONS]; |
| |
| extern const enum policy_mgr_pcl_type |
| first_connection_pcl_table[PM_MAX_NUM_OF_MODE] |
| [PM_MAX_CONC_PRIORITY_MODE]; |
| extern pm_dbs_pcl_second_connection_table_type |
| *second_connection_pcl_dbs_table; |
| extern pm_dbs_pcl_third_connection_table_type |
| *third_connection_pcl_dbs_table; |
| extern policy_mgr_next_action_two_connection_table_type |
| *next_action_two_connection_table; |
| extern policy_mgr_next_action_three_connection_table_type |
| *next_action_three_connection_table; |
| extern enum policy_mgr_conc_next_action |
| (*policy_mgr_get_current_pref_hw_mode_ptr) |
| (struct wlan_objmgr_psoc *psoc); |
| |
| /** |
| * struct sta_ap_intf_check_work_ctx - sta_ap_intf_check_work |
| * related info |
| * @psoc: pointer to PSOC object information |
| */ |
| struct sta_ap_intf_check_work_ctx { |
| struct wlan_objmgr_psoc *psoc; |
| }; |
| |
| /** |
| * struct policy_mgr_psoc_priv_obj - Policy manager private data |
| * @psoc: pointer to PSOC object information |
| * @pdev: pointer to PDEV object information |
| * @connection_update_done_evt: qdf event to synchronize |
| * connection activities |
| * @qdf_conc_list_lock: To protect connection table |
| * @dbs_opportunistic_timer: Timer to drop down to Single Mac |
| * Mode opportunistically |
| * @sap_restart_chan_switch_cb: Callback for channel switch |
| * notification for SAP |
| * @sme_cbacks: callbacks to be registered by SME for |
| * interaction with Policy Manager |
| * @wma_cbacks: callbacks to be registered by SME for |
| * interaction with Policy Manager |
| * @tdls_cbacks: callbacks to be registered by SME for |
| * interaction with Policy Manager |
| * @cdp_cbacks: callbacks to be registered by SME for |
| * interaction with Policy Manager |
| * @sap_mandatory_channels: The user preferred master list on |
| * which SAP can be brought up. This |
| * mandatory channel list would be as per |
| * OEMs preference & conforming to the |
| * regulatory/other considerations |
| * @sap_mandatory_channels_len: Length of the SAP mandatory |
| * channel list |
| * @do_hw_mode_change: Flag to check if HW mode change is needed |
| * after vdev is up. Especially used after |
| * channel switch related vdev restart |
| * @concurrency_mode: active concurrency combination |
| * @no_of_open_sessions: Number of active vdevs |
| * @no_of_active_sessions: Number of active connections |
| * @sta_ap_intf_check_work: delayed sap restart work |
| * @num_dbs_hw_modes: Number of different HW modes supported |
| * @hw_mode: List of HW modes supported |
| * @old_hw_mode_index: Old HW mode from hw_mode table |
| * @new_hw_mode_index: New HW mode from hw_mode table |
| * @dual_mac_cfg: DBS configuration currenctly used by FW for |
| * scan & connections |
| * @hw_mode_change_in_progress: This is to track if HW mode |
| * change is in progress |
| * @enable_mcc_adaptive_scheduler: Enable MCC adaptive scheduler |
| * value from INI |
| * @unsafe_channel_list: LTE coex channel avoidance list |
| * @unsafe_channel_count: LTE coex channel avoidance list count |
| * @sta_ap_intf_check_work_info: Info related to sta_ap_intf_check_work |
| * @opportunistic_update_done_evt: qdf event to synchronize host |
| * & FW HW mode |
| */ |
| struct policy_mgr_psoc_priv_obj { |
| struct wlan_objmgr_psoc *psoc; |
| struct wlan_objmgr_pdev *pdev; |
| qdf_event_t connection_update_done_evt; |
| qdf_mutex_t qdf_conc_list_lock; |
| qdf_mc_timer_t dbs_opportunistic_timer; |
| struct policy_mgr_hdd_cbacks hdd_cbacks; |
| struct policy_mgr_sme_cbacks sme_cbacks; |
| struct policy_mgr_wma_cbacks wma_cbacks; |
| struct policy_mgr_tdls_cbacks tdls_cbacks; |
| struct policy_mgr_cdp_cbacks cdp_cbacks; |
| struct policy_mgr_dp_cbacks dp_cbacks; |
| bool enable_sap_mandatory_chan_list; |
| uint8_t sap_mandatory_channels[QDF_MAX_NUM_CHAN]; |
| uint32_t sap_mandatory_channels_len; |
| bool do_hw_mode_change; |
| uint32_t concurrency_mode; |
| uint8_t no_of_open_sessions[QDF_MAX_NO_OF_MODE]; |
| uint8_t no_of_active_sessions[QDF_MAX_NO_OF_MODE]; |
| qdf_work_t sta_ap_intf_check_work; |
| uint32_t num_dbs_hw_modes; |
| struct dbs_hw_mode_info hw_mode; |
| uint32_t old_hw_mode_index; |
| uint32_t new_hw_mode_index; |
| struct dual_mac_config dual_mac_cfg; |
| uint32_t hw_mode_change_in_progress; |
| struct policy_mgr_user_cfg user_cfg; |
| uint16_t unsafe_channel_list[QDF_MAX_NUM_CHAN]; |
| uint16_t unsafe_channel_count; |
| struct sta_ap_intf_check_work_ctx *sta_ap_intf_check_work_info; |
| uint8_t cur_conc_system_pref; |
| uint8_t sta_sap_scc_on_dfs_chan_allowed; |
| qdf_event_t opportunistic_update_done_evt; |
| qdf_event_t channel_switch_complete_evt; |
| send_mode_change_event_cb mode_change_cb; |
| uint32_t user_config_sap_channel; |
| }; |
| |
| /** |
| * struct policy_mgr_mac_ss_bw_info - hw_mode_list PHY/MAC params for each MAC |
| * @mac_tx_stream: Max TX stream number supported on MAC |
| * @mac_rx_stream: Max RX stream number supported on MAC |
| * @mac_bw: Max bandwidth(wmi_channel_width enum type) |
| * @mac_band_cap: supported Band bit map(WLAN_2G_CAPABILITY = 0x1, |
| * WLAN_5G_CAPABILITY = 0x2) |
| */ |
| struct policy_mgr_mac_ss_bw_info { |
| uint32_t mac_tx_stream; |
| uint32_t mac_rx_stream; |
| uint32_t mac_bw; |
| uint32_t mac_band_cap; |
| }; |
| |
| struct policy_mgr_psoc_priv_obj *policy_mgr_get_context( |
| struct wlan_objmgr_psoc *psoc); |
| QDF_STATUS policy_mgr_get_updated_scan_config( |
| struct wlan_objmgr_psoc *psoc, |
| uint32_t *scan_config, |
| bool dbs_scan, |
| bool dbs_plus_agile_scan, |
| bool single_mac_scan_with_dfs); |
| QDF_STATUS policy_mgr_get_updated_fw_mode_config( |
| struct wlan_objmgr_psoc *psoc, |
| uint32_t *fw_mode_config, |
| bool dbs, |
| bool agile_dfs); |
| bool policy_mgr_is_dual_mac_disabled_in_ini( |
| struct wlan_objmgr_psoc *psoc); |
| |
| /** |
| * policy_mgr_mcc_to_scc_switch_mode_in_user_cfg() - MCC to SCC |
| * switch mode value in the user config |
| * @psoc: PSOC object information |
| * |
| * MCC to SCC switch mode value in user config |
| * |
| * Return: MCC to SCC switch mode value |
| */ |
| uint32_t policy_mgr_mcc_to_scc_switch_mode_in_user_cfg( |
| struct wlan_objmgr_psoc *psoc); |
| bool policy_mgr_get_dbs_config(struct wlan_objmgr_psoc *psoc); |
| bool policy_mgr_get_agile_dfs_config(struct wlan_objmgr_psoc *psoc); |
| bool policy_mgr_get_dbs_scan_config(struct wlan_objmgr_psoc *psoc); |
| void policy_mgr_get_tx_rx_ss_from_config(enum hw_mode_ss_config mac_ss, |
| uint32_t *tx_ss, uint32_t *rx_ss); |
| int8_t policy_mgr_get_matching_hw_mode_index( |
| struct wlan_objmgr_psoc *psoc, |
| uint32_t mac0_tx_ss, uint32_t mac0_rx_ss, |
| enum hw_mode_bandwidth mac0_bw, |
| uint32_t mac1_tx_ss, uint32_t mac1_rx_ss, |
| enum hw_mode_bandwidth mac1_bw, |
| enum hw_mode_mac_band_cap mac0_band_cap, |
| enum hw_mode_dbs_capab dbs, |
| enum hw_mode_agile_dfs_capab dfs, |
| enum hw_mode_sbs_capab sbs); |
| int8_t policy_mgr_get_hw_mode_idx_from_dbs_hw_list( |
| struct wlan_objmgr_psoc *psoc, |
| enum hw_mode_ss_config mac0_ss, |
| enum hw_mode_bandwidth mac0_bw, |
| enum hw_mode_ss_config mac1_ss, |
| enum hw_mode_bandwidth mac1_bw, |
| enum hw_mode_mac_band_cap mac0_band_cap, |
| enum hw_mode_dbs_capab dbs, |
| enum hw_mode_agile_dfs_capab dfs, |
| enum hw_mode_sbs_capab sbs); |
| QDF_STATUS policy_mgr_get_old_and_new_hw_index( |
| struct wlan_objmgr_psoc *psoc, |
| uint32_t *old_hw_mode_index, |
| uint32_t *new_hw_mode_index); |
| void policy_mgr_update_conc_list(struct wlan_objmgr_psoc *psoc, |
| uint32_t conn_index, |
| enum policy_mgr_con_mode mode, |
| uint8_t chan, |
| enum hw_mode_bandwidth bw, |
| uint8_t mac, |
| enum policy_mgr_chain_mode chain_mask, |
| uint32_t original_nss, |
| uint32_t vdev_id, |
| bool in_use, |
| bool update_conn); |
| void policy_mgr_store_and_del_conn_info(struct wlan_objmgr_psoc *psoc, |
| enum policy_mgr_con_mode mode, |
| bool all_matching_cxn_to_del, |
| struct policy_mgr_conc_connection_info *info, |
| uint8_t *num_cxn_del); |
| void policy_mgr_restore_deleted_conn_info(struct wlan_objmgr_psoc *psoc, |
| struct policy_mgr_conc_connection_info *info, |
| uint8_t num_cxn_del); |
| void policy_mgr_update_hw_mode_conn_info(struct wlan_objmgr_psoc *psoc, |
| uint32_t num_vdev_mac_entries, |
| struct policy_mgr_vdev_mac_map *vdev_mac_map, |
| struct policy_mgr_hw_mode_params hw_mode); |
| void policy_mgr_pdev_set_hw_mode_cb(uint32_t status, |
| uint32_t cfgd_hw_mode_index, |
| uint32_t num_vdev_mac_entries, |
| struct policy_mgr_vdev_mac_map *vdev_mac_map, |
| uint8_t next_action, |
| enum policy_mgr_conn_update_reason reason, |
| uint32_t session_id, void *context); |
| void policy_mgr_dump_current_concurrency(struct wlan_objmgr_psoc *psoc); |
| void policy_mgr_pdev_set_pcl(struct wlan_objmgr_psoc *psoc, |
| enum QDF_OPMODE mode); |
| void policy_mgr_set_pcl_for_existing_combo( |
| struct wlan_objmgr_psoc *psoc, enum policy_mgr_con_mode mode); |
| void pm_dbs_opportunistic_timer_handler(void *data); |
| enum policy_mgr_con_mode policy_mgr_get_mode(uint8_t type, |
| uint8_t subtype); |
| enum hw_mode_bandwidth policy_mgr_get_bw(enum phy_ch_width chan_width); |
| QDF_STATUS policy_mgr_get_channel_list(struct wlan_objmgr_psoc *psoc, |
| enum policy_mgr_pcl_type pcl, |
| uint8_t *pcl_channels, uint32_t *len, |
| enum policy_mgr_con_mode mode, |
| uint8_t *pcl_weights, uint32_t weight_len); |
| bool policy_mgr_allow_new_home_channel(struct wlan_objmgr_psoc *psoc, |
| uint8_t channel, uint32_t num_connections); |
| bool policy_mgr_is_5g_channel_allowed(struct wlan_objmgr_psoc *psoc, |
| uint8_t channel, uint32_t *list, |
| enum policy_mgr_con_mode mode); |
| QDF_STATUS policy_mgr_complete_action(struct wlan_objmgr_psoc *psoc, |
| uint8_t new_nss, uint8_t next_action, |
| enum policy_mgr_conn_update_reason reason, |
| uint32_t session_id); |
| enum policy_mgr_con_mode policy_mgr_get_mode_by_vdev_id( |
| struct wlan_objmgr_psoc *psoc, |
| uint8_t vdev_id); |
| QDF_STATUS policy_mgr_init_connection_update( |
| struct policy_mgr_psoc_priv_obj *pm_ctx); |
| enum policy_mgr_conc_next_action |
| policy_mgr_get_current_pref_hw_mode_dbs_2x2( |
| struct wlan_objmgr_psoc *psoc); |
| enum policy_mgr_conc_next_action |
| policy_mgr_get_current_pref_hw_mode_dbs_1x1( |
| struct wlan_objmgr_psoc *psoc); |
| QDF_STATUS policy_mgr_reset_sap_mandatory_channels( |
| struct policy_mgr_psoc_priv_obj *pm_ctx); |
| |
| /** |
| * policy_mgr_get_mode_specific_conn_info() - Get active mode specific |
| * channel and vdev id |
| * @psoc: PSOC object information |
| * @channel: Mode specific channel (list) |
| * @vdev_id: Mode specific vdev id (list) |
| * @mode: Connection Mode |
| * |
| * Get active mode specific channel and vdev id |
| * |
| * Return: number of connection found as per given mode |
| */ |
| uint32_t policy_mgr_get_mode_specific_conn_info(struct wlan_objmgr_psoc *psoc, |
| uint8_t *channel, uint8_t *vdev_id, |
| enum policy_mgr_con_mode mode); |
| |
| /** |
| * policy_mgr_reg_chan_change_callback() - Callback to be |
| * invoked by regulatory module when valid channel list changes |
| * @psoc: PSOC object information |
| * @pdev: PDEV object information |
| * @chan_list: New channel list |
| * @avoid_freq_ind: LTE coex avoid channel list |
| * @arg: Information passed at registration |
| * |
| * Get updated channel list from regulatory module |
| * |
| * Return: None |
| */ |
| void policy_mgr_reg_chan_change_callback(struct wlan_objmgr_psoc *psoc, |
| struct wlan_objmgr_pdev *pdev, |
| struct regulatory_channel *chan_list, |
| struct avoid_freq_ind_data *avoid_freq_ind, |
| void *arg); |
| |
| QDF_STATUS policy_mgr_nss_update(struct wlan_objmgr_psoc *psoc, |
| uint8_t new_nss, uint8_t next_action, |
| enum policy_mgr_conn_update_reason reason); |
| #endif |