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:

committed by
Ravindra Konda

parent
0b4d82980c
commit
9bc183ab64
@@ -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_1,
|
||||||
qdf_freq_t freq_2)
|
qdf_freq_t freq_2)
|
||||||
{
|
{
|
||||||
if ((policy_mgr_is_hw_sbs_capable(psoc) &&
|
return !policy_mgr_2_freq_always_on_same_mac(psoc, freq_1, freq_2);
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#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++) {
|
for (i = 0; i < entry->ml_info.num_links; i++) {
|
||||||
if (!entry->ml_info.link_info[i].is_valid_link)
|
if (!entry->ml_info.link_info[i].is_valid_link)
|
||||||
continue;
|
continue;
|
||||||
multi_link = true;
|
|
||||||
freq_entry = entry->channel.chan_freq;
|
freq_entry = entry->channel.chan_freq;
|
||||||
freq[i] = entry->ml_info.link_info[i].freq;
|
freq[i] = entry->ml_info.link_info[i].freq;
|
||||||
entry_partner[i] =
|
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);
|
&entry->ml_info.link_info[i].link_addr);
|
||||||
if (entry_partner[i])
|
if (entry_partner[i])
|
||||||
freq[i] = entry_partner[i]->channel.chan_freq;
|
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;
|
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)
|
if (multi_link)
|
||||||
|
Reference in New Issue
Block a user