qcacld-3.0: Modify the session he caps according to sesseion nss
Currently the driver populates the he caps value from the mlme cfg which is the max MCS set that the driver supports in 11ax , i.e for 2x2 mode, but dont consider the session nss, i.e the intersection of AP, and the self capability, hence the assoc req is sent with 2x2 MCS rates in HE caps. Fix is to change the MCS set according to the nss value of the session. Change-Id: I0ca4778eeafc3469611109b420e4dd58cc8e8ae8 CRs-Fixed: 2410721
Dieser Commit ist enthalten in:

committet von
nshrivas

Ursprung
fc94fa0b18
Commit
76d2e0aa81
@@ -14770,6 +14770,39 @@ static bool csr_enable_twt(struct mac_context *mac_ctx, tDot11fBeaconIEs *ie)
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifdef WLAN_FEATURE_11AX
|
||||
static void
|
||||
csr_update_he_caps_mcs(struct wlan_mlme_cfg *mlme_cfg,
|
||||
struct csr_roam_session *csr_session)
|
||||
{
|
||||
uint32_t tx_mcs_map = 0;
|
||||
uint32_t rx_mcs_map = 0;
|
||||
uint32_t mcs_map = 0;
|
||||
|
||||
rx_mcs_map = mlme_cfg->he_caps.dot11_he_cap.rx_he_mcs_map_lt_80;
|
||||
tx_mcs_map = mlme_cfg->he_caps.dot11_he_cap.tx_he_mcs_map_lt_80;
|
||||
mcs_map = rx_mcs_map & 0x3;
|
||||
|
||||
if (csr_session->nss == 1) {
|
||||
tx_mcs_map = HE_SET_MCS_4_NSS(tx_mcs_map, HE_MCS_DISABLE, 2);
|
||||
rx_mcs_map = HE_SET_MCS_4_NSS(rx_mcs_map, HE_MCS_DISABLE, 2);
|
||||
} else {
|
||||
tx_mcs_map = HE_SET_MCS_4_NSS(tx_mcs_map, mcs_map, 2);
|
||||
rx_mcs_map = HE_SET_MCS_4_NSS(rx_mcs_map, mcs_map, 2);
|
||||
}
|
||||
sme_info("new HE Nss MCS MAP: Rx 0x%0X, Tx: 0x%0X",
|
||||
rx_mcs_map, tx_mcs_map);
|
||||
csr_session->he_config.tx_he_mcs_map_lt_80 = tx_mcs_map;
|
||||
csr_session->he_config.rx_he_mcs_map_lt_80 = rx_mcs_map;
|
||||
}
|
||||
#else
|
||||
static void
|
||||
csr_update_he_caps_mcs(struct wlan_mlme_cfg *mlme_cfg,
|
||||
struct csr_roam_session *csr_session)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* The communication between HDD and LIM is thru mailbox (MB).
|
||||
* Both sides will access the data structure "struct join_req".
|
||||
@@ -14996,6 +15029,7 @@ QDF_STATUS csr_send_join_req_msg(struct mac_context *mac, uint32_t sessionId,
|
||||
sme_debug("For special ap, NSS: %d", pSession->nss);
|
||||
}
|
||||
|
||||
csr_update_he_caps_mcs(mac->mlme_cfg, pSession);
|
||||
/*
|
||||
* If CCK WAR is set for current AP, update to firmware via
|
||||
* WMI_VDEV_PARAM_ABG_MODE_TX_CHAIN_NUM
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren