qcacld-3.0: Add API to restore or clear user set link num

Add API to restore or clear user set link num when SSR or
interface down happens.

Change-Id: I955937817481740dc3dd75b51d669ed36b5f74d2
CRs-Fixed: 3531260
此提交包含在:
Paul Zhang
2023-06-14 20:08:51 -07:00
提交者 Rahul Choudhary
父節點 3d79f440d1
當前提交 7f78965c87
共有 4 個檔案被更改,包括 95 行新增1 行删除

查看文件

@@ -3992,6 +3992,32 @@ uint8_t wlan_mlme_get_sta_mlo_conn_max_num(struct wlan_objmgr_psoc *psoc);
QDF_STATUS wlan_mlme_set_sta_mlo_conn_max_num(struct wlan_objmgr_psoc *psoc,
uint8_t value);
/**
* wlan_mlme_set_user_set_link_num() - set number of links that config by user
* @psoc: pointer to psoc object
* @value: value to set
*
* Return: QDF Status
*/
QDF_STATUS wlan_mlme_set_user_set_link_num(struct wlan_objmgr_psoc *psoc,
uint8_t value);
/**
* wlan_mlme_restore_user_set_link_num() - restore link num when SSR happens
* @psoc: pointer to psoc object
*
* Return: void
*/
void wlan_mlme_restore_user_set_link_num(struct wlan_objmgr_psoc *psoc);
/**
* wlan_mlme_clear_user_set_link_num() - clear user set link num
* @psoc: pointer to psoc object
*
* Return: void
*/
void wlan_mlme_clear_user_set_link_num(struct wlan_objmgr_psoc *psoc);
/**
* wlan_mlme_get_sta_mlo_conn_band_bmp() - get band bitmap that sta mlo
* connection can support
@@ -4031,6 +4057,23 @@ uint8_t wlan_mlme_get_sta_mlo_simultaneous_links(struct wlan_objmgr_psoc *psoc);
QDF_STATUS wlan_mlme_set_sta_mlo_conn_band_bmp(struct wlan_objmgr_psoc *psoc,
uint8_t value);
#else
static inline QDF_STATUS
wlan_mlme_set_user_set_link_num(struct wlan_objmgr_psoc *psoc,
uint8_t value)
{
return QDF_STATUS_SUCCESS;
}
static inline
void wlan_mlme_restore_user_set_link_num(struct wlan_objmgr_psoc *psoc)
{
}
static inline
void wlan_mlme_clear_user_set_link_num(struct wlan_objmgr_psoc *psoc)
{
}
static inline QDF_STATUS
wlan_mlme_set_sta_mlo_conn_max_num(struct wlan_objmgr_psoc *psoc,
uint8_t value)

查看文件

@@ -1723,6 +1723,7 @@ enum station_prefer_bw {
* @usr_scan_probe_unicast_ra: User config unicast probe req in scan
* @event_payload: Diagnostic event payload
* @max_li_modulated_dtim_time_ms: Max modulated DTIM time in ms.
* @user_set_link_num: save link num set by vendor command
* @mlo_support_link_num: max number of links that sta mlo supports
* @mlo_support_link_band: band bitmap that sta mlo supports
* @mlo_max_simultaneous_links: number of simultaneous links
@@ -1757,6 +1758,7 @@ struct wlan_mlme_sta_cfg {
#endif
uint16_t max_li_modulated_dtim_time_ms;
#ifdef WLAN_FEATURE_11BE_MLO
uint8_t user_set_link_num;
uint8_t mlo_support_link_num;
uint8_t mlo_support_link_band;
uint8_t mlo_max_simultaneous_links;

查看文件

@@ -1358,12 +1358,60 @@ QDF_STATUS wlan_mlme_set_sta_mlo_conn_max_num(struct wlan_objmgr_psoc *psoc,
if (!mlme_obj)
return QDF_STATUS_E_FAILURE;
mlme_obj->cfg.sta.mlo_support_link_num = value;
if (!value)
mlme_obj->cfg.sta.mlo_support_link_num =
cfg_default(CFG_MLO_SUPPORT_LINK_NUM);
else
mlme_obj->cfg.sta.mlo_support_link_num = value;
mlme_legacy_debug("mlo_support_link_num %d", value);
return QDF_STATUS_SUCCESS;
}
QDF_STATUS wlan_mlme_set_user_set_link_num(struct wlan_objmgr_psoc *psoc,
uint8_t 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.user_set_link_num = value;
mlme_legacy_debug("user_set_link_num %d", value);
return QDF_STATUS_SUCCESS;
}
void wlan_mlme_restore_user_set_link_num(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;
if (!mlme_obj->cfg.sta.user_set_link_num)
return;
mlme_obj->cfg.sta.mlo_support_link_num =
mlme_obj->cfg.sta.user_set_link_num;
mlme_legacy_debug("restore mlo_support_link_num %d",
mlme_obj->cfg.sta.user_set_link_num);
}
void wlan_mlme_clear_user_set_link_num(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;
mlme_obj->cfg.sta.user_set_link_num = 0;
}
uint8_t wlan_mlme_get_sta_mlo_conn_band_bmp(struct wlan_objmgr_psoc *psoc)
{
struct wlan_mlme_psoc_ext_obj *mlme_obj;