qcacld-3.0: Add support for getting AP capabilities
Add support for sending the AP capabilities to SON module Change-Id: I9308608e321aa21f6e0566958508ceaf78c5635b CRs-Fixed: 3154537
This commit is contained in:

committed by
Madan Koyyalamudi

parent
6034799457
commit
05c26a216a
@@ -317,6 +317,19 @@ int wlan_son_set_cbs_wait_time(struct wlan_objmgr_vdev *vdev,
|
||||
int wlan_son_set_cbs_dwell_split_time(struct wlan_objmgr_vdev *vdev,
|
||||
uint32_t val);
|
||||
|
||||
/**
|
||||
* wlan_son_vdev_get_supported_txrx_streams() - get supported spatial streams
|
||||
* @vdev: pointer to vdev
|
||||
* @num_tx_streams: pointer to number of tx streams
|
||||
* @num_rx_streams: pointer to number of rx streams
|
||||
*
|
||||
* Return: QDF_STATUS_SUCCESS on Success else failure.
|
||||
*/
|
||||
QDF_STATUS
|
||||
wlan_son_vdev_get_supported_txrx_streams(struct wlan_objmgr_vdev *vdev,
|
||||
uint32_t *num_tx_streams,
|
||||
uint32_t *num_rx_streams);
|
||||
|
||||
#ifdef WLAN_FEATURE_SON
|
||||
/**
|
||||
* wlan_son_peer_is_kickout_allow() - Is peer is allowed to kickout
|
||||
|
@@ -203,6 +203,28 @@ QDF_STATUS ucfg_son_get_peer_rrm_info(struct element_info assoc_req_ies,
|
||||
uint8_t *rrmcaps,
|
||||
bool *is_beacon_meas_supported);
|
||||
|
||||
/**
|
||||
* ucfg_son_vdev_get_supported_txrx_streams() - get supported spatial streams
|
||||
* @vdev: pointer to vdev
|
||||
* @num_tx_streams: pointer to number of tx streams
|
||||
* @num_rx_streams: pointer to number of rx streams
|
||||
*
|
||||
* Return: QDF_STATUS_SUCCESS on Success else failure.
|
||||
*/
|
||||
QDF_STATUS
|
||||
ucfg_son_vdev_get_supported_txrx_streams(struct wlan_objmgr_vdev *vdev,
|
||||
uint32_t *num_tx_streams,
|
||||
uint32_t *num_rx_streams);
|
||||
/**
|
||||
* ucfg_son_get_vht_cap() - get the vht capability ie
|
||||
* @psoc: psoc object
|
||||
* @vht_caps: VHT caps bit fields
|
||||
*
|
||||
* Return: QDF_STATUS_SUCCESS on Success else failure.
|
||||
*/
|
||||
QDF_STATUS ucfg_son_get_vht_cap(struct wlan_objmgr_psoc *psoc,
|
||||
int32_t *vht_caps);
|
||||
|
||||
#ifdef WLAN_FEATURE_SON
|
||||
/* ucfg_son_disable_cbs() - son cbs disable
|
||||
* @vdev: vdev pointer
|
||||
|
@@ -1380,3 +1380,36 @@ QDF_STATUS wlan_son_get_peer_rrm_info(struct element_info assoc_req_ies,
|
||||
}
|
||||
return QDF_STATUS_E_RESOURCES;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
wlan_son_vdev_get_supported_txrx_streams(struct wlan_objmgr_vdev *vdev,
|
||||
uint32_t *num_tx_streams,
|
||||
uint32_t *num_rx_streams)
|
||||
{
|
||||
struct wlan_mlme_nss_chains *nss_cfg;
|
||||
enum nss_chains_band_info band = NSS_CHAINS_BAND_MAX;
|
||||
struct wlan_channel *chan;
|
||||
qdf_freq_t chan_freq = 0;
|
||||
|
||||
nss_cfg = mlme_get_dynamic_vdev_config(vdev);
|
||||
if (!nss_cfg)
|
||||
return QDF_STATUS_NOT_INITIALIZED;
|
||||
|
||||
chan = wlan_vdev_get_active_channel(vdev);
|
||||
if (chan)
|
||||
chan_freq = chan->ch_freq;
|
||||
|
||||
if (WLAN_REG_IS_24GHZ_CH_FREQ(chan_freq))
|
||||
band = NSS_CHAINS_BAND_2GHZ;
|
||||
|
||||
if (WLAN_REG_IS_5GHZ_CH_FREQ(chan_freq))
|
||||
band = NSS_CHAINS_BAND_5GHZ;
|
||||
|
||||
if (band == NSS_CHAINS_BAND_MAX)
|
||||
return QDF_STATUS_NOT_INITIALIZED;
|
||||
|
||||
*num_tx_streams = nss_cfg->tx_nss[band];
|
||||
*num_rx_streams = nss_cfg->rx_nss[band];
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
@@ -144,3 +144,25 @@ QDF_STATUS ucfg_son_get_peer_rrm_info(struct element_info assoc_req_ies,
|
||||
return wlan_son_get_peer_rrm_info(assoc_req_ies, rrmcaps,
|
||||
is_beacon_meas_supported);
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
ucfg_son_vdev_get_supported_txrx_streams(struct wlan_objmgr_vdev *vdev,
|
||||
uint32_t *num_tx_streams,
|
||||
uint32_t *num_rx_streams)
|
||||
{
|
||||
return wlan_son_vdev_get_supported_txrx_streams(vdev,
|
||||
num_tx_streams,
|
||||
num_rx_streams);
|
||||
}
|
||||
|
||||
QDF_STATUS ucfg_son_get_vht_cap(struct wlan_objmgr_psoc *psoc,
|
||||
int32_t *vht_caps)
|
||||
{
|
||||
struct wlan_psoc_target_capability_info *target_cap =
|
||||
lmac_get_target_cap(psoc);
|
||||
|
||||
if (!target_cap)
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
*vht_caps = target_cap->vht_cap_info;
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
Reference in New Issue
Block a user