qcacmn: Add out of band advertisement in 6Ghz
Add WMI and objmgr support for maintaining RNR buffer cache and receive tbtt events for all vdevs using existing tbtt offset WMI. Change-Id: Idfed63e104e629fbe455d1cf6202cd9b332f5cf9
This commit is contained in:
@@ -1868,6 +1868,8 @@ enum _ol_ath_param_t {
|
||||
OL_ATH_PARAM_MBSS_EN = 426,
|
||||
/* UNII-1 and UNII-2A channel coexistance */
|
||||
OL_ATH_PARAM_CHAN_COEX = 427,
|
||||
/* Out of Band Advertisement feature */
|
||||
OL_ATH_PARAM_OOB_ENABLE = 428,
|
||||
};
|
||||
#endif
|
||||
/* Bitmasks for stats that can block */
|
||||
|
@@ -24,12 +24,28 @@
|
||||
#include <wlan_vdev_mgr_tgt_if_rx_defs.h>
|
||||
#include <qdf_timer.h>
|
||||
|
||||
/* Max RNR size given max vaps are 16 */
|
||||
#define MAX_RNR_SIZE 256
|
||||
|
||||
/**
|
||||
* struct wlan_rnr_global_cache - RNR cache buffer per soc
|
||||
* @rnr_buf: RNR cache buffer
|
||||
* @rnr_cnt: Count of APs in cache
|
||||
* @rnr_size: Size of RNR cache (RNR IE)
|
||||
*/
|
||||
struct wlan_6ghz_rnr_global_cache {
|
||||
char rnr_buf[MAX_RNR_SIZE];
|
||||
int rnr_cnt;
|
||||
uint16_t rnr_size;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct psoc_mlme_obj - PSoC MLME component object
|
||||
* @psoc: PSoC object
|
||||
* @ext_psoc_ptr: PSoC legacy pointer
|
||||
* @psoc_vdev_rt: PSoC Vdev response timer
|
||||
* @psoc_mlme_wakelock: Wakelock to prevent system going to suspend
|
||||
* @rnr_6ghz_cache: Cache of 6Ghz vap in RNR ie format
|
||||
*/
|
||||
struct psoc_mlme_obj {
|
||||
struct wlan_objmgr_psoc *psoc;
|
||||
@@ -38,6 +54,7 @@ struct psoc_mlme_obj {
|
||||
#ifdef FEATURE_VDEV_RSP_WAKELOCK
|
||||
struct psoc_mlme_wakelock psoc_mlme_wakelock;
|
||||
#endif
|
||||
struct wlan_6ghz_rnr_global_cache rnr_6ghz_cache;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -123,10 +123,14 @@ struct sta_ps_params {
|
||||
* struct tbttoffset_params - Tbttoffset event params
|
||||
* @vdev_id: Virtual AP device identifier
|
||||
* @tbttoffset : Tbttoffset for the virtual AP device
|
||||
* @vdev_tbtt_qtime_lo: Tbtt qtime low value
|
||||
* @vdev_tbtt_qtime_hi: Tbtt qtime high value
|
||||
*/
|
||||
struct tbttoffset_params {
|
||||
uint32_t vdev_id;
|
||||
uint32_t tbttoffset;
|
||||
uint32_t vdev_tbtt_qtime_lo;
|
||||
uint32_t vdev_tbtt_qtime_hi;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -317,6 +317,10 @@ static QDF_STATUS extract_tbttoffset_update_params_tlv(
|
||||
return QDF_STATUS_E_INVAL;
|
||||
tbtt_param->tbttoffset =
|
||||
param_buf->tbttoffset_list[tbtt_param->vdev_id];
|
||||
tbtt_param->vdev_tbtt_qtime_lo =
|
||||
param_buf->tbtt_qtime_low_us_list[tbtt_param->vdev_id];
|
||||
tbtt_param->vdev_tbtt_qtime_hi =
|
||||
param_buf->tbtt_qtime_high_us_list[tbtt_param->vdev_id];
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
@@ -338,6 +342,8 @@ static QDF_STATUS extract_ext_tbttoffset_update_params_tlv(
|
||||
|
||||
tbtt_param->vdev_id = tbtt_offset_info->vdev_id;
|
||||
tbtt_param->tbttoffset = tbtt_offset_info->tbttoffset;
|
||||
tbtt_param->vdev_tbtt_qtime_lo = tbtt_offset_info->tbtt_qtime_low_us;
|
||||
tbtt_param->vdev_tbtt_qtime_hi = tbtt_offset_info->tbtt_qtime_high_us;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
Reference in New Issue
Block a user