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
此提交包含在:
Sumedh Baikady
2019-10-11 22:51:44 -07:00
提交者 nshrivas
父節點 cde63cdd01
當前提交 48fdc2ddfb
共有 4 個檔案被更改,包括 29 行新增0 行删除

查看文件

@@ -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;
}