|
@@ -1242,6 +1242,57 @@ WMI_HOST_WLAN_PHY_MODE wma_host_to_fw_phymode(enum wlan_phymode host_phymode)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+void wma_objmgr_set_peer_mlme_nss(tp_wma_handle wma, uint8_t *mac_addr,
|
|
|
+ uint8_t nss)
|
|
|
+{
|
|
|
+ uint8_t pdev_id;
|
|
|
+ struct wlan_objmgr_peer *peer;
|
|
|
+ struct peer_mlme_priv_obj *peer_priv;
|
|
|
+ struct wlan_objmgr_psoc *psoc = wma->psoc;
|
|
|
+
|
|
|
+ pdev_id = wlan_objmgr_pdev_get_pdev_id(wma->pdev);
|
|
|
+ peer = wlan_objmgr_get_peer(psoc, pdev_id, mac_addr,
|
|
|
+ WLAN_LEGACY_WMA_ID);
|
|
|
+ if (!peer)
|
|
|
+ return;
|
|
|
+
|
|
|
+ peer_priv = wlan_objmgr_peer_get_comp_private_obj(peer,
|
|
|
+ WLAN_UMAC_COMP_MLME);
|
|
|
+ if (!peer_priv) {
|
|
|
+ wlan_objmgr_peer_release_ref(peer, WLAN_LEGACY_WMA_ID);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ peer_priv->nss = nss;
|
|
|
+ wlan_objmgr_peer_release_ref(peer, WLAN_LEGACY_WMA_ID);
|
|
|
+}
|
|
|
+
|
|
|
+uint8_t wma_objmgr_get_peer_mlme_nss(tp_wma_handle wma, uint8_t *mac_addr)
|
|
|
+{
|
|
|
+ uint8_t pdev_id;
|
|
|
+ struct wlan_objmgr_peer *peer;
|
|
|
+ struct peer_mlme_priv_obj *peer_priv;
|
|
|
+ struct wlan_objmgr_psoc *psoc = wma->psoc;
|
|
|
+ uint8_t nss;
|
|
|
+
|
|
|
+ pdev_id = wlan_objmgr_pdev_get_pdev_id(wma->pdev);
|
|
|
+ peer = wlan_objmgr_get_peer(psoc, pdev_id, mac_addr,
|
|
|
+ WLAN_LEGACY_WMA_ID);
|
|
|
+ if (!peer)
|
|
|
+ return 0;
|
|
|
+
|
|
|
+ peer_priv = wlan_objmgr_peer_get_comp_private_obj(peer,
|
|
|
+ WLAN_UMAC_COMP_MLME);
|
|
|
+ if (!peer_priv) {
|
|
|
+ wlan_objmgr_peer_release_ref(peer, WLAN_LEGACY_WMA_ID);
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ nss = peer_priv->nss;
|
|
|
+ wlan_objmgr_peer_release_ref(peer, WLAN_LEGACY_WMA_ID);
|
|
|
+ return nss;
|
|
|
+}
|
|
|
+
|
|
|
void wma_objmgr_set_peer_mlme_phymode(tp_wma_handle wma, uint8_t *mac_addr,
|
|
|
enum wlan_phymode phymode)
|
|
|
{
|
|
@@ -1698,6 +1749,7 @@ QDF_STATUS wma_send_peer_assoc(tp_wma_handle wma,
|
|
|
wma_populate_peer_puncture(cmd, des_chan);
|
|
|
if (!wma_is_vdev_in_ap_mode(wma, params->smesessionId))
|
|
|
intr->nss = cmd->peer_nss;
|
|
|
+ wma_objmgr_set_peer_mlme_nss(wma, cmd->peer_mac, cmd->peer_nss);
|
|
|
|
|
|
/* Till conversion is not done in WMI we need to fill fw phy mode */
|
|
|
cmd->peer_phymode = wma_host_to_fw_phymode(phymode);
|