qcacld-3.0: Channel width from peer phymode

Add MLME API to get channel width for STA / P2P-CLI mode
from peer phymode

Change-Id: Iffef01b5fe0ad603ae3b75a659144c3fdcc23a02
CRs-Fixed: 3529931
此提交包含在:
Rachit Kankane
2023-06-14 11:59:49 +05:30
提交者 Rahul Choudhary
父節點 cacceb7f35
當前提交 5e32b65f93
共有 6 個檔案被更改,包括 69 行新增6 行删除

查看文件

@@ -1073,7 +1073,7 @@ QDF_STATUS mlme_update_tgt_he_caps_in_cfg(struct wlan_objmgr_psoc *psoc,
* @channel_width: channel width in VHT operation IE.
* @chan_id: channel id
* @ccfs0: channel center frequency segment 0
* @ccfs0: channel center frequency segment 1
* @ccfs1: channel center frequency segment 1
*
* Return: phy_ch_width
*/
@@ -1089,7 +1089,7 @@ wlan_mlme_convert_vht_op_bw_to_phy_ch_width(uint8_t channel_width,
* @channel_width: channel width in HE operation IE.
* @chan_id: channel id
* @ccfs0: channel center frequency segment 0
* @ccfs0: channel center frequency segment 1
* @ccfs1: channel center frequency segment 1
*
* Return: phy_ch_width
*/
@@ -4355,4 +4355,17 @@ wlan_mlme_get_sap_ps_with_twt(struct wlan_objmgr_psoc *psoc);
*
*/
enum phy_ch_width wlan_mlme_get_max_bw(void);
/**
* wlan_mlme_get_sta_ch_width() - Get current operating
* channel width for STA / P2P-CLI mode
*
* @vdev: STA / P2P-CLI vdev
* @ch_width: Returned channel width
*
* Return: QDF_STATUS_SUCCESS for success otherwise QDF_STATUS_E_INVAL
*
*/
QDF_STATUS wlan_mlme_get_sta_ch_width(struct wlan_objmgr_vdev *vdev,
enum phy_ch_width *ch_width);
#endif /* _WLAN_MLME_API_H_ */

查看文件

@@ -1246,6 +1246,29 @@ enum phy_ch_width wlan_mlme_get_max_bw(void)
}
#endif
QDF_STATUS wlan_mlme_get_sta_ch_width(struct wlan_objmgr_vdev *vdev,
enum phy_ch_width *ch_width)
{
QDF_STATUS status = QDF_STATUS_E_INVAL;
struct wlan_objmgr_peer *peer;
enum wlan_phymode phymode;
enum QDF_OPMODE op_mode;
peer = wlan_vdev_get_bsspeer(vdev);
op_mode = wlan_vdev_mlme_get_opmode(vdev);
if (ch_width && peer &&
(op_mode == QDF_STA_MODE ||
op_mode == QDF_P2P_CLIENT_MODE)) {
wlan_peer_obj_lock(peer);
phymode = wlan_peer_get_phymode(peer);
wlan_peer_obj_unlock(peer);
*ch_width = wlan_mlme_get_ch_width_from_phymode(phymode);
}
return status;
}
#ifdef WLAN_FEATURE_11BE_MLO
uint8_t wlan_mlme_get_sta_mlo_simultaneous_links(struct wlan_objmgr_psoc *psoc)
{