qcacld-3.0: Fix force SCC logic to consider 1 inactive link
A MLO with 1 link not active will lead to HW mode as SMM instead of SBS, so check and see if SBS MLO is present and take decision as per it. Change-Id: Ide487d56d6375892b91ab615b9ad314dba2c9991 CRs-Fixed: 3102349
This commit is contained in:

committed by
Madan Koyyalamudi

parent
24b0cc154c
commit
7af2c5d1e7
@@ -332,8 +332,8 @@ if_mgr_handle_sap_plus_sta_mlo_connect(struct wlan_objmgr_psoc *psoc,
|
||||
|
||||
if (!wlan_reg_is_24ghz_ch_freq(sap_freq_list[0]))
|
||||
return;
|
||||
is_mlo_sbs = policy_mgr_is_mlo_sta_sbs_link(psoc, mlo_vdev_lst,
|
||||
&num_mlo);
|
||||
is_mlo_sbs = policy_mgr_is_mlo_in_mode_sbs(psoc, PM_STA_MODE,
|
||||
mlo_vdev_lst, &num_mlo);
|
||||
if (num_mlo < 2)
|
||||
return;
|
||||
|
||||
|
@@ -4070,20 +4070,21 @@ policy_mgr_get_conc_ext_flags(struct wlan_objmgr_vdev *vdev, bool force_mlo);
|
||||
bool policy_mgr_is_mlo_sta_present(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* policy_mgr_is_mlo_sta_sbs_link() - Check whether MLO STA is present with both
|
||||
* links on 5 or 6 ghz band (SBS link)
|
||||
*
|
||||
* policy_mgr_is_mlo_in_mode_sbs() - Check whether MLO present is SBS (with both
|
||||
* links on 5/6 ghz band)
|
||||
* @psoc: PSOC object information
|
||||
* @mode: mlo mode to check
|
||||
* @mlo_vdev_lst: Pointer to mlo vdev list, this function wil fill this with
|
||||
* list of mlo vdev
|
||||
* @num_mlo: Pointer to number of mlo link, this function will fill this with
|
||||
* number of mlo links
|
||||
*
|
||||
* Return: True if MLO STA is present with both links on 5 and 6ghz band
|
||||
* Return: True if MLO is present with both links on 5 and 6ghz band
|
||||
*/
|
||||
bool policy_mgr_is_mlo_sta_sbs_link(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t *mlo_vdev_lst,
|
||||
uint8_t *num_mlo);
|
||||
bool policy_mgr_is_mlo_in_mode_sbs(struct wlan_objmgr_psoc *psoc,
|
||||
enum policy_mgr_con_mode mode,
|
||||
uint8_t *mlo_vdev_lst, uint8_t *num_mlo);
|
||||
|
||||
#else
|
||||
|
||||
static inline bool policy_mgr_is_mlo_sap_concurrency_allowed(
|
||||
@@ -4103,6 +4104,14 @@ static inline bool policy_mgr_is_mlo_sta_present(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline
|
||||
bool policy_mgr_is_mlo_in_mode_sbs(struct wlan_objmgr_psoc *psoc,
|
||||
enum policy_mgr_con_mode mode,
|
||||
uint8_t *mlo_vdev_lst, uint8_t *num_mlo)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@@ -3486,6 +3486,174 @@ policy_mgr_get_same_band_iface_frq(struct wlan_objmgr_psoc *psoc,
|
||||
policy_mgr_get_iface_5g_freq(psoc));
|
||||
}
|
||||
|
||||
static void
|
||||
policy_mgr_check_force_scc_two_connection(struct wlan_objmgr_psoc *psoc,
|
||||
qdf_freq_t *intf_ch_freq,
|
||||
qdf_freq_t sap_ch_freq,
|
||||
uint8_t cc_mode,
|
||||
bool same_band_present,
|
||||
uint32_t acs_band)
|
||||
{
|
||||
bool sbs_mlo_present = false;
|
||||
|
||||
/*
|
||||
* 1st: 2nd: 3rd(SAP): Action:
|
||||
* -------------------------------------------------
|
||||
* 2Ghz 2Ghz(SMM/DBS) 5Ghz Start on 5Ghz
|
||||
* 2Ghz 5Ghz(DBS) 5Ghz Force SCC to 5Ghz
|
||||
* 2Ghz 5Ghz(DBS) 2Ghz Force SCC to 5Ghz
|
||||
* 5Ghz 5Ghz(SBS) 2Ghz If acs is ALL band force SCC
|
||||
* else start on 2.4Ghz
|
||||
* 5Ghz 5Ghz(SBS) 5Ghz Force SCC to one of 5Ghz
|
||||
* 5Ghz 5Ghz(SMM) 2Ghz Start on 2.4Ghz
|
||||
* 5Ghz 5Ghz(SMM) 5Ghz Allow SAP on sap_ch_freq if all
|
||||
* 3, 5Ghz freq does't end up
|
||||
* on same mac, ie 2 of them lead
|
||||
* to SBS. Else force SCC on
|
||||
* one of the freq (3 home channel
|
||||
* will not be allowed)
|
||||
* 2Ghz 2Ghz(SMM/DBS) 2Ghz force SCC on one of the freq
|
||||
* (3 home channel
|
||||
* will not be allowed)
|
||||
*/
|
||||
|
||||
/* Check if STA or SAP SBS MLO is present */
|
||||
if (policy_mgr_is_hw_sbs_capable(psoc) &&
|
||||
(policy_mgr_is_mlo_in_mode_sbs(psoc, PM_STA_MODE,
|
||||
NULL, NULL) ||
|
||||
policy_mgr_is_mlo_in_mode_sbs(psoc, PM_SAP_MODE,
|
||||
NULL, NULL)))
|
||||
sbs_mlo_present = true;
|
||||
|
||||
/*
|
||||
* Check for SBS mlo present as if 1 link is inactive the
|
||||
* HW mode will be SMM and not SBS.
|
||||
*/
|
||||
if (policy_mgr_is_current_hwmode_sbs(psoc) || sbs_mlo_present) {
|
||||
/*
|
||||
* 1st: 2nd: 3rd(SAP): Action:
|
||||
* -------------------------------------------------
|
||||
* 5Ghz 5Ghz(SBS) 2Ghz If acs is ALL band force SCC
|
||||
* else start on 2.4Ghz
|
||||
* 5Ghz 5Ghz(SBS) 5Ghz Force SCC to one of 5Ghz
|
||||
*/
|
||||
if (acs_band == QCA_ACS_MODE_IEEE80211ANY ||
|
||||
!WLAN_REG_IS_24GHZ_CH_FREQ(sap_ch_freq))
|
||||
*intf_ch_freq =
|
||||
policy_mgr_get_iface_5g_freq(psoc);
|
||||
else
|
||||
*intf_ch_freq =
|
||||
policy_mgr_get_same_band_iface_frq(psoc,
|
||||
sap_ch_freq);
|
||||
return;
|
||||
}
|
||||
if (policy_mgr_is_current_hwmode_dbs(psoc)) {
|
||||
/*
|
||||
* 1st: 2nd: 3rd(SAP): Action:
|
||||
* -------------------------------------------------
|
||||
* 2Ghz 2Ghz(DBS) 5Ghz Start on 5Ghz
|
||||
* 2Ghz 5Ghz(DBS) 5Ghz Force SCC to 5Ghz
|
||||
* 2Ghz 5Ghz(DBS) 2Ghz Force SCC to 5Ghz
|
||||
* 2Ghz 2Ghz(DBS) 2Ghz force SCC on one of
|
||||
* the freq (3 home
|
||||
* channel will not be
|
||||
* allowed)
|
||||
*/
|
||||
*intf_ch_freq =
|
||||
policy_mgr_get_same_band_iface_frq(psoc,
|
||||
sap_ch_freq);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!same_band_present) {
|
||||
/*
|
||||
* 1st: 2nd: 3rd(SAP): Action:
|
||||
* -------------------------------------------------
|
||||
* 2Ghz 2Ghz(SMM) 5Ghz Start on 5Ghz(DBS)
|
||||
* 5Ghz 5Ghz(SMM) 2Ghz Start on 2.4Ghz(DBS)
|
||||
*/
|
||||
if (policy_mgr_is_hw_dbs_capable(psoc))
|
||||
*intf_ch_freq = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!policy_mgr_are_3_freq_on_same_mac(psoc, sap_ch_freq,
|
||||
pm_conc_connection_list[0].freq,
|
||||
pm_conc_connection_list[1].freq)) {
|
||||
/*
|
||||
* 1st: 2nd: 3rd(SAP): Action:
|
||||
* -------------------------------------------------
|
||||
* 5Ghz 5Ghz(SMM) 5Ghz Allow SAP on sap_ch_freq
|
||||
* if all 3, 5Ghz freq
|
||||
* does't end up, on same
|
||||
* mac, ie 2 of them lead
|
||||
* to SBS, ie at least one
|
||||
* of them is high 5Ghz and
|
||||
* one low 5Ghz.
|
||||
*/
|
||||
*intf_ch_freq = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* 1st: 2nd: 3rd(SAP): Action:
|
||||
* -------------------------------------------------
|
||||
* 5Ghz 5Ghz(SMM) 5Ghz force SCC on one of the freq
|
||||
* (3 home channel will not be
|
||||
* allowed)
|
||||
* 2Ghz 2Ghz(SMM) 2Ghz force SCC on one of the freq
|
||||
* (3 home channel will not be
|
||||
* allowed)
|
||||
*/
|
||||
policy_mgr_debug("%d Can lead to 3 home channel on same MAC",
|
||||
sap_ch_freq);
|
||||
}
|
||||
|
||||
static void
|
||||
policy_mgr_check_force_scc_one_connection(struct wlan_objmgr_psoc *psoc,
|
||||
qdf_freq_t *intf_ch_freq,
|
||||
qdf_freq_t sap_ch_freq,
|
||||
bool same_band_present,
|
||||
uint8_t cc_mode)
|
||||
{
|
||||
/*
|
||||
* 1st: 2nd(SAP): Action:
|
||||
* ------------------------------------
|
||||
* 2Ghz 2Ghz Force SCC on 2Ghz
|
||||
* 5Ghz 5Ghz Force SCC on 5Ghz for non SBS, for SBS freq
|
||||
* allow sap freq
|
||||
* 2Ghz 5Ghz Start on 5Ghz (DBS)
|
||||
* 5Ghz 2Ghz Start on 2.4Ghz(DBS)
|
||||
*/
|
||||
|
||||
if (same_band_present) {
|
||||
/*
|
||||
* 1st: 2nd(SAP): Action:
|
||||
* ------------------------------------
|
||||
* 2Ghz 2Ghz Force SCC on 2Ghz
|
||||
* 5Ghz 5Ghz Force SCC on 5Ghz for non SBS,
|
||||
* for SBS freq allow sap freq
|
||||
*/
|
||||
if (policy_mgr_are_sbs_chan(psoc, sap_ch_freq, *intf_ch_freq)) {
|
||||
policy_mgr_debug("Do not overwrite as sap_ch_freq %d intf_ch_freq %d are SBS freq",
|
||||
sap_ch_freq, *intf_ch_freq);
|
||||
*intf_ch_freq = 0;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (policy_mgr_is_hw_dbs_capable(psoc) ||
|
||||
cc_mode == QDF_MCC_TO_SCC_WITH_PREFERRED_BAND) {
|
||||
/*
|
||||
* 1st: 2nd(SAP): Action:
|
||||
* ------------------------------------
|
||||
* 2Ghz 5Ghz Start on 5Ghz (DBS)
|
||||
* 5Ghz 2Ghz Start on 2.4Ghz(DBS)
|
||||
*/
|
||||
/* Different bands can do DBS so dont overwrite */
|
||||
*intf_ch_freq = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void policy_mgr_check_scc_sbs_channel(struct wlan_objmgr_psoc *psoc,
|
||||
qdf_freq_t *intf_ch_freq,
|
||||
qdf_freq_t sap_ch_freq,
|
||||
@@ -3497,6 +3665,8 @@ void policy_mgr_check_scc_sbs_channel(struct wlan_objmgr_psoc *psoc,
|
||||
struct policy_mgr_conc_connection_info
|
||||
info[MAX_NUMBER_OF_CONC_CONNECTIONS] = { {0} };
|
||||
uint8_t num_cxn_del = 0;
|
||||
bool same_band_present = false;
|
||||
bool sbs_mlo_present = false;
|
||||
|
||||
pm_ctx = policy_mgr_get_context(psoc);
|
||||
if (!pm_ctx) {
|
||||
@@ -3504,25 +3674,58 @@ void policy_mgr_check_scc_sbs_channel(struct wlan_objmgr_psoc *psoc,
|
||||
return;
|
||||
}
|
||||
|
||||
if (pm_ctx->hdd_cbacks.wlan_get_sap_acs_band) {
|
||||
status = pm_ctx->hdd_cbacks.wlan_get_sap_acs_band(psoc,
|
||||
vdev_id,
|
||||
&acs_band);
|
||||
if (QDF_IS_STATUS_SUCCESS(status))
|
||||
policy_mgr_debug("acs_band: %d", acs_band);
|
||||
}
|
||||
|
||||
/* Always do force SCC on non-DBS platforms */
|
||||
if (!policy_mgr_is_hw_dbs_capable(psoc) &&
|
||||
cc_mode != QDF_MCC_TO_SCC_WITH_PREFERRED_BAND)
|
||||
return;
|
||||
/*
|
||||
* Different band, this also means that there is only one interface
|
||||
* which is not on same band as csr_check_concurrent_channel_overlap
|
||||
* try to find same band vdev if available
|
||||
* If same band interface is present, as
|
||||
* csr_check_concurrent_channel_overlap try to find same band vdev
|
||||
* if available
|
||||
*/
|
||||
if ((WLAN_REG_IS_24GHZ_CH_FREQ(sap_ch_freq) &&
|
||||
!WLAN_REG_IS_24GHZ_CH_FREQ(*intf_ch_freq)) ||
|
||||
(WLAN_REG_IS_24GHZ_CH_FREQ(*intf_ch_freq) &&
|
||||
!WLAN_REG_IS_24GHZ_CH_FREQ(sap_ch_freq))) {
|
||||
if (policy_mgr_is_current_hwmode_sbs(psoc))
|
||||
WLAN_REG_IS_24GHZ_CH_FREQ(*intf_ch_freq)) ||
|
||||
(!WLAN_REG_IS_24GHZ_CH_FREQ(*intf_ch_freq) &&
|
||||
!WLAN_REG_IS_24GHZ_CH_FREQ(sap_ch_freq)))
|
||||
same_band_present = true;
|
||||
|
||||
/* Check if STA or SAP SBS MLO is present */
|
||||
if (policy_mgr_is_hw_sbs_capable(psoc) &&
|
||||
(policy_mgr_is_mlo_in_mode_sbs(psoc, PM_STA_MODE,
|
||||
NULL, NULL) ||
|
||||
policy_mgr_is_mlo_in_mode_sbs(psoc, PM_SAP_MODE,
|
||||
NULL, NULL)))
|
||||
sbs_mlo_present = true;
|
||||
|
||||
/*
|
||||
* Different band, this also mean that there is no other interface on
|
||||
* on same band as csr_check_concurrent_channel_overlap
|
||||
* try to find same band vdev if available.
|
||||
* this mean for DBS HW we can use the other available band and thus
|
||||
* set *intf_ch_freq = 0, to bring sap on sap_ch_freq.
|
||||
*/
|
||||
if (!same_band_present) {
|
||||
if (policy_mgr_is_current_hwmode_sbs(psoc) || sbs_mlo_present)
|
||||
goto sbs_check;
|
||||
/*
|
||||
* #1 port:
|
||||
* 1st: 2nd(SAP): Action:
|
||||
* ------------------------------------
|
||||
* 2Ghz 5Ghz Start on 5Ghz(DBS)
|
||||
* 5Ghz 2Ghz Start on 2.4Ghz(DBS)
|
||||
*
|
||||
* #2 port:
|
||||
* 1st: 2nd: 3rd(SAP): Action:
|
||||
* -------------------------------------------------
|
||||
* 2Ghz 2Ghz(SMM/DBS) 5Ghz Start on 5Ghz(DBS)
|
||||
* 5Ghz 5Ghz(SMM) 2Ghz Start on 2.4Ghz(DBS)
|
||||
*
|
||||
* #3 port:
|
||||
* 1st: 2nd: 3rd: 4th(SAP) Action:
|
||||
* -------------------------------------------------
|
||||
* 2Ghz 2Ghz 2Ghz 5Ghz Start on 5Ghz(DBS)
|
||||
* 5Ghz 5Ghz 5Ghz 2Ghz Start on 2.4Ghz(DBS)
|
||||
*/
|
||||
if (policy_mgr_is_hw_dbs_capable(psoc) ||
|
||||
cc_mode == QDF_MCC_TO_SCC_WITH_PREFERRED_BAND) {
|
||||
*intf_ch_freq = 0;
|
||||
@@ -3541,6 +3744,15 @@ void policy_mgr_check_scc_sbs_channel(struct wlan_objmgr_psoc *psoc,
|
||||
policy_mgr_debug("no mandatory channels (%d, %d)", sap_ch_freq,
|
||||
*intf_ch_freq);
|
||||
}
|
||||
|
||||
if (pm_ctx->hdd_cbacks.wlan_get_sap_acs_band) {
|
||||
status = pm_ctx->hdd_cbacks.wlan_get_sap_acs_band(psoc,
|
||||
vdev_id,
|
||||
&acs_band);
|
||||
if (QDF_IS_STATUS_SUCCESS(status))
|
||||
policy_mgr_debug("acs_band: %d", acs_band);
|
||||
}
|
||||
|
||||
sbs_check:
|
||||
qdf_mutex_acquire(&pm_ctx->qdf_conc_list_lock);
|
||||
/*
|
||||
@@ -3549,9 +3761,10 @@ sbs_check:
|
||||
*/
|
||||
policy_mgr_store_and_del_conn_info_by_vdev_id(psoc, vdev_id, info,
|
||||
&num_cxn_del);
|
||||
|
||||
/*
|
||||
* If at least one interface is in same band as the required freq, try
|
||||
* and set SBS/SCC.
|
||||
* If at least one interface is in same band OR HW mode is SBS OR
|
||||
* SBS MLO is present, try set SBS/DBS/SCC.
|
||||
*/
|
||||
num_connections = policy_mgr_get_connection_count(psoc);
|
||||
policy_mgr_dump_sbs_freq_range(pm_ctx);
|
||||
@@ -3561,38 +3774,23 @@ sbs_check:
|
||||
*intf_ch_freq = 0;
|
||||
break;
|
||||
case 1:
|
||||
/* Do not overwrite if the channel can create SBS */
|
||||
if (policy_mgr_are_sbs_chan(psoc, sap_ch_freq,
|
||||
*intf_ch_freq)) {
|
||||
policy_mgr_debug("Do not overwrite as sap_ch_freq %d intf_ch_freq %d are SBS freq",
|
||||
sap_ch_freq, *intf_ch_freq);
|
||||
*intf_ch_freq = 0;
|
||||
}
|
||||
policy_mgr_check_force_scc_one_connection(psoc, intf_ch_freq,
|
||||
sap_ch_freq,
|
||||
same_band_present,
|
||||
cc_mode);
|
||||
break;
|
||||
case 2:
|
||||
if (policy_mgr_is_current_hwmode_sbs(psoc)) {
|
||||
if (WLAN_REG_IS_24GHZ_CH_FREQ(sap_ch_freq)) {
|
||||
if (acs_band == QCA_ACS_MODE_IEEE80211ANY)
|
||||
*intf_ch_freq =
|
||||
policy_mgr_get_iface_5g_freq(psoc);
|
||||
else
|
||||
/* keep the sap req unchanged, MCC on MAC 0 */
|
||||
*intf_ch_freq = 0;
|
||||
} else {
|
||||
*intf_ch_freq =
|
||||
policy_mgr_get_iface_5g_freq(psoc);
|
||||
}
|
||||
} else if (policy_mgr_is_current_hwmode_dbs(psoc)) {
|
||||
*intf_ch_freq =
|
||||
policy_mgr_get_same_band_iface_frq(psoc,
|
||||
sap_ch_freq);
|
||||
}
|
||||
/* This mean Force SCC on *intf_ch_freq */
|
||||
policy_mgr_check_force_scc_two_connection(psoc, intf_ch_freq,
|
||||
sap_ch_freq,
|
||||
cc_mode,
|
||||
same_band_present,
|
||||
acs_band);
|
||||
break;
|
||||
default:
|
||||
policy_mgr_debug("invalid num_connections: %d",
|
||||
num_connections);
|
||||
break;
|
||||
}
|
||||
|
||||
/* Restore the connection entry */
|
||||
if (num_cxn_del > 0)
|
||||
policy_mgr_restore_deleted_conn_info(psoc, info, num_cxn_del);
|
||||
|
@@ -3703,47 +3703,56 @@ bool policy_mgr_is_mlo_sta_present(struct wlan_objmgr_psoc *psoc)
|
||||
return mlo_sta_present;
|
||||
}
|
||||
|
||||
bool policy_mgr_is_mlo_sta_sbs_link(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t *mlo_vdev_lst,
|
||||
uint8_t *num_mlo)
|
||||
bool policy_mgr_is_mlo_in_mode_sbs(struct wlan_objmgr_psoc *psoc,
|
||||
enum policy_mgr_con_mode mode,
|
||||
uint8_t *mlo_vdev_lst, uint8_t *num_mlo)
|
||||
{
|
||||
uint32_t sta_num = 0;
|
||||
uint32_t mode_num = 0;
|
||||
uint8_t i, mlo_idx = 0;
|
||||
struct wlan_objmgr_vdev *temp_vdev;
|
||||
qdf_freq_t mlo_freq_list[MAX_NUMBER_OF_CONC_CONNECTIONS] = {0};
|
||||
uint8_t vdev_id_list[MAX_NUMBER_OF_CONC_CONNECTIONS] = {0};
|
||||
bool is_sbs_link = true;
|
||||
|
||||
sta_num = policy_mgr_get_mode_specific_conn_info(psoc, NULL,
|
||||
vdev_id_list,
|
||||
PM_STA_MODE);
|
||||
if (!sta_num)
|
||||
mode_num = policy_mgr_get_mode_specific_conn_info(psoc, NULL,
|
||||
vdev_id_list, mode);
|
||||
if (!mode_num || mode_num < 2)
|
||||
return false;
|
||||
|
||||
for (i = 0; i < sta_num; i++) {
|
||||
for (i = 0; i < mode_num; i++) {
|
||||
temp_vdev = wlan_objmgr_get_vdev_by_id_from_psoc(psoc,
|
||||
vdev_id_list[i],
|
||||
WLAN_POLICY_MGR_ID);
|
||||
if (!temp_vdev) {
|
||||
sme_err("invalid vdev for id %d", vdev_id_list[i]);
|
||||
policy_mgr_err("invalid vdev for id %d",
|
||||
vdev_id_list[i]);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (wlan_vdev_mlme_is_mlo_vdev(temp_vdev)) {
|
||||
mlo_vdev_lst[mlo_idx] = vdev_id_list[i];
|
||||
if (mlo_vdev_lst)
|
||||
mlo_vdev_lst[mlo_idx] = vdev_id_list[i];
|
||||
mlo_freq_list[mlo_idx] =
|
||||
wlan_get_operation_chan_freq(temp_vdev);
|
||||
if (wlan_reg_is_24ghz_ch_freq(mlo_freq_list[mlo_idx]))
|
||||
is_sbs_link = false;
|
||||
|
||||
mlo_idx++;
|
||||
}
|
||||
wlan_objmgr_vdev_release_ref(temp_vdev, WLAN_POLICY_MGR_ID);
|
||||
}
|
||||
|
||||
*num_mlo = mlo_idx;
|
||||
if (num_mlo)
|
||||
*num_mlo = mlo_idx;
|
||||
if (mlo_idx < 2)
|
||||
is_sbs_link = false;
|
||||
if (is_sbs_link &&
|
||||
!policy_mgr_are_sbs_chan(psoc, mlo_freq_list[0],
|
||||
mlo_freq_list[1])) {
|
||||
policy_mgr_debug("Freq %d and %d are not SBS, set SBS false",
|
||||
mlo_freq_list[0],
|
||||
mlo_freq_list[1]);
|
||||
is_sbs_link = false;
|
||||
}
|
||||
|
||||
return is_sbs_link;
|
||||
}
|
||||
|
@@ -1464,8 +1464,8 @@ void csr_handle_sap_mlo_sta_concurrency(struct wlan_objmgr_vdev *vdev,
|
||||
if (!mac_ctx)
|
||||
return;
|
||||
|
||||
is_mlo_sbs = policy_mgr_is_mlo_sta_sbs_link(mac_ctx->psoc, mlo_vdev_lst,
|
||||
&num_mlo);
|
||||
is_mlo_sbs = policy_mgr_is_mlo_in_mode_sbs(mac_ctx->psoc, PM_STA_MODE,
|
||||
mlo_vdev_lst, &num_mlo);
|
||||
|
||||
if (num_mlo < 2) {
|
||||
sme_debug("vdev %d AP_state %d MLO Sta links %d",
|
||||
|
Reference in New Issue
Block a user