qcacmn: Don't allow MLO SCC link

When MLO partner link and assoc link are on same frequency, F/W will
assert.

To fix it, don't allow partner link is on same frequency of assoc link.

Change-Id: I01338dbbc0845e6f6284e4a374f5ad0a5cada334
CRs-Fixed: 3706613
This commit is contained in:
Jianmin Zhu
2024-01-19 16:39:53 +08:00
committed by Ravindra Konda
szülő 0b4d82980c
commit 9bc183ab64

Fájl megtekintése

@@ -1824,14 +1824,7 @@ static bool is_freq_dbs_or_sbs(struct wlan_objmgr_psoc *psoc,
qdf_freq_t freq_1,
qdf_freq_t freq_2)
{
if ((policy_mgr_is_hw_sbs_capable(psoc) &&
policy_mgr_are_sbs_chan(psoc, freq_1, freq_2)) ||
(policy_mgr_is_hw_dbs_capable(psoc) &&
!wlan_reg_is_same_band_freqs(freq_1, freq_2))) {
return true;
}
return false;
return !policy_mgr_2_freq_always_on_same_mac(psoc, freq_1, freq_2);
}
#else
@@ -1879,7 +1872,6 @@ enum MLO_TYPE cm_bss_mlo_type(struct wlan_objmgr_psoc *psoc,
for (i = 0; i < entry->ml_info.num_links; i++) {
if (!entry->ml_info.link_info[i].is_valid_link)
continue;
multi_link = true;
freq_entry = entry->channel.chan_freq;
freq[i] = entry->ml_info.link_info[i].freq;
entry_partner[i] =
@@ -1887,8 +1879,17 @@ enum MLO_TYPE cm_bss_mlo_type(struct wlan_objmgr_psoc *psoc,
&entry->ml_info.link_info[i].link_addr);
if (entry_partner[i])
freq[i] = entry_partner[i]->channel.chan_freq;
if (is_freq_dbs_or_sbs(psoc, freq[i], freq_entry))
if (is_freq_dbs_or_sbs(psoc, freq[i], freq_entry)) {
return MLMR;
} else if (freq[i] == freq_entry) {
mlme_debug("Partner " QDF_MAC_ADDR_FMT
" freq %d same as assoc freq, invalid it",
QDF_MAC_ADDR_REF(entry->ml_info.link_info[i].link_addr.bytes),
freq[i]);
entry->ml_info.link_info[i].is_valid_link = false;
} else {
multi_link = true;
}
}
if (multi_link)