qcacld-3.0: Add cfg to configure mlo single link connection for sta

Add API to get mlo single link connection configuration for sta.

Change-Id: Ie3b6c270c5c7358321a176c744083175a81d0180
CRs-Fixed: 3171955
This commit is contained in:
Bing Sun
2022-04-12 10:06:14 +08:00
committed by Madan Koyyalamudi
parent 1cebf7f4ac
commit ff3734010c
6 changed files with 102 additions and 1 deletions

View File

@@ -512,6 +512,34 @@
CFG_VALUE_OR_DEFAULT, \
"Max modulated dtim")
#ifdef WLAN_FEATURE_11BE_MLO
/*
* <cfg>
* single_link_mlo_conn - Set single link mlo connection for sta
* @Min: 0
* @Max: 1
* @Default: 0
*
* This cfg is used to enable single link mlo connection
*
* Related: None
*
* Supported Feature: STA
*
* Usage: Internal
*
* </cfg>
*/
#define CFG_SINGLE_LINK_MLO_CONN CFG_BOOL( \
"single_link_mlo_conn", \
0, \
"Enable single link mlo connection")
#define CFG_SINGLE_LINK_MLO_CONN_CFG CFG(CFG_SINGLE_LINK_MLO_CONN)
#else
#define CFG_SINGLE_LINK_MLO_CONN_CFG
#endif
#define CFG_STA_ALL \
CFG(CFG_INFRA_STA_KEEP_ALIVE_PERIOD) \
CFG(CFG_STA_BSS_MAX_IDLE_PERIOD) \
@@ -531,6 +559,7 @@
CFG(CFG_STA_KEEPALIVE_METHOD) \
CFG(CFG_WT_CNF_TIMEOUT) \
CFG(CFG_CURRENT_RSSI) \
CFG(CFG_TX_POWER_CTRL)
CFG(CFG_TX_POWER_CTRL) \
CFG_SINGLE_LINK_MLO_CONN_CFG
#endif /* CFG_MLME_STA_H__ */

View File

@@ -3339,6 +3339,27 @@ wlan_mlme_is_data_stall_recovery_fw_supported(struct wlan_objmgr_psoc *psoc);
QDF_STATUS mlme_cfg_get_eht_caps(struct wlan_objmgr_psoc *psoc,
tDot11fIEeht_cap *eht_cap);
#ifdef WLAN_FEATURE_11BE_MLO
/**
* wlan_mlme_is_sta_single_mlo_conn() - Is single mlo connection for sta
* set or not
* @psoc: pointer to psoc object
*
* Return: True if single mlo connection for sta is set
*/
bool wlan_mlme_is_sta_single_mlo_conn(struct wlan_objmgr_psoc *psoc);
/**
* wlan_mlme_set_sta_single_mlo_conn() - Set single mlo connection for sta
* @psoc: pointer to psoc object
* @value: value to set
*
* Return: QDF Status
*/
QDF_STATUS wlan_mlme_set_sta_single_mlo_conn(struct wlan_objmgr_psoc *psoc,
bool value);
#endif
/**
* wlan_mlme_set_ba_2k_jump_iot_ap() - Set a flag if ba 2k jump IOT AP is found
* @vdev: vdev pointer

View File

@@ -1639,6 +1639,7 @@ enum station_prefer_bw {
* @allow_tpc_from_ap: Support for AP power constraint
* @usr_disabled_roaming: User config for roaming disable
* @usr_scan_probe_unicast_ra: User config unicast probe req in scan
* @single_link_mlo_conn: Single link mlo connection is configured
*/
struct wlan_mlme_sta_cfg {
uint32_t sta_keep_alive_period;
@@ -1665,6 +1666,9 @@ struct wlan_mlme_sta_cfg {
#ifdef FEATURE_WLAN_DIAG_SUPPORT_CSR
host_event_wlan_status_payload_type event_payload;
#endif
#ifdef WLAN_FEATURE_11BE_MLO
bool single_link_mlo_conn;
#endif
};
/**

View File

@@ -1036,6 +1036,33 @@ QDF_STATUS mlme_update_tgt_eht_caps_in_cfg(struct wlan_objmgr_psoc *psoc,
}
#endif
#ifdef WLAN_FEATURE_11BE_MLO
bool wlan_mlme_is_sta_single_mlo_conn(struct wlan_objmgr_psoc *psoc)
{
struct wlan_mlme_psoc_ext_obj *mlme_obj;
mlme_obj = mlme_get_psoc_ext_obj(psoc);
if (!mlme_obj)
return false;
return mlme_obj->cfg.sta.single_link_mlo_conn;
}
QDF_STATUS wlan_mlme_set_sta_single_mlo_conn(struct wlan_objmgr_psoc *psoc,
bool value)
{
struct wlan_mlme_psoc_ext_obj *mlme_obj;
mlme_obj = mlme_get_psoc_ext_obj(psoc);
if (!mlme_obj)
return QDF_STATUS_E_FAILURE;
mlme_obj->cfg.sta.single_link_mlo_conn = value;
return QDF_STATUS_SUCCESS;
}
#endif
QDF_STATUS wlan_mlme_get_num_11b_tx_chains(struct wlan_objmgr_psoc *psoc,
uint16_t *value)
{