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
此提交包含在:
@@ -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;
|
||||
|
新增問題並參考
封鎖使用者