mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 21:54:34 -04:00
qcacld-3.0: Don't fallback to 11ac if peer doesn't support MCS 10&11
In 2.4 Ghz, if peer is advertising MCS10/11 in 11ax and doesn't support LDPC coding then STA downgrades to 11ac but if AP doesn't advetise MCS 10&11 and LDPC bit is not supported, then STA treats LDPC as optional in 11ax and would not downgrade to 11ac from 11ax. Change-Id: I80b4c6615469c21020ed8d671c2d9ec94bd600b4 CRs-Fixed: 2810347
This commit is contained in:
parent
cf1755edb9
commit
dc10400717
3 changed files with 17 additions and 1 deletions
|
|
@ -346,9 +346,14 @@ static inline bool lim_extract_adaptive_11r_cap(uint8_t *ie, uint16_t ie_len)
|
|||
static void lim_check_peer_ldpc_and_update(struct pe_session *session,
|
||||
tSirProbeRespBeacon *beacon_struct)
|
||||
{
|
||||
/*
|
||||
* In 2.4G if AP supports HE till MCS 0-9 we can associate
|
||||
* with HE mode instead downgrading to 11ac
|
||||
*/
|
||||
if (session->he_capable &&
|
||||
WLAN_REG_IS_24GHZ_CH_FREQ(session->curr_op_freq) &&
|
||||
beacon_struct->he_cap.present &&
|
||||
lim_check_he_80_mcs11_supp(session, &beacon_struct->he_cap) &&
|
||||
!beacon_struct->he_cap.ldpc_coding) {
|
||||
session->he_capable = false;
|
||||
pe_err("LDPC check failed for HE operation");
|
||||
|
|
|
|||
|
|
@ -6759,11 +6759,12 @@ static bool lim_check_is_bss_greater_than_4_nss_supp(struct pe_session *session,
|
|||
return false;
|
||||
}
|
||||
|
||||
static bool lim_check_he_80_mcs11_supp(struct pe_session *session,
|
||||
bool lim_check_he_80_mcs11_supp(struct pe_session *session,
|
||||
tDot11fIEhe_cap *he_cap)
|
||||
{
|
||||
uint16_t rx_mcs_map;
|
||||
uint16_t tx_mcs_map;
|
||||
|
||||
rx_mcs_map = he_cap->rx_he_mcs_map_lt_80;
|
||||
tx_mcs_map = he_cap->tx_he_mcs_map_lt_80;
|
||||
if ((session->nss == NSS_1x1_MODE) &&
|
||||
|
|
|
|||
|
|
@ -1197,6 +1197,16 @@ void lim_log_he_bss_color(struct mac_context *mac,
|
|||
*/
|
||||
void lim_log_he_cap(struct mac_context *mac, tDot11fIEhe_cap *he_cap);
|
||||
|
||||
/**
|
||||
* lim_check_he_80_mcs11_supp() - Check whether MCS 0-11 rates are supported
|
||||
* @session: pointer to PE session
|
||||
* @he_cap: pointer to HE capabilities
|
||||
*
|
||||
* Return: true if MCS 0-11 rates are supported
|
||||
*/
|
||||
bool lim_check_he_80_mcs11_supp(struct pe_session *session,
|
||||
tDot11fIEhe_cap *he_cap);
|
||||
|
||||
/**
|
||||
* lim_update_stads_he_caps() - Copy HE capability into STA DPH hash table entry
|
||||
* @mac_ctx: pointer to mac context
|
||||
|
|
|
|||
Loading…
Reference in a new issue