From 333ee0fc2baacc5c023113b19a337d37841f64ed Mon Sep 17 00:00:00 2001 From: Gyanranjan Hazarika Date: Mon, 27 Apr 2020 20:22:27 -0700 Subject: [PATCH] qcacmn: Add UMAC changes for EMA AP Enhanced Multi-BSSID Advertisement is an enhancement to the existing Multi-BSSID feature in terms of advertising non-transmitted bssid profile using the transmitted bssid beacon. Mandatory inclusion of RNR IE in lower-band AP beacon to support Out-of-Band Advertisement of colocated 6Ghz AP may impose limitation in the beacon size. EMA AP provides a standardized way of overcoming such a limitation Relevant UMAC changes are: 1. Add fw_caps_ext support bit WLAN_SOC_CEXT_EMA_AP 2. Add vdev_control_flag WLAN_VDEV_MLME_FLAGS_EMA_MODE 3. Support of 32-bit ema_params in beacon_tmpl_params. The 4 octets in this param field will respectively indicate ema_beacon_profile_periodicity, ema_beacon_tmpl_idx, ema_first_tmpl and ema_last_tmpl in the order of low to high CRs-fixed: 2677701 Change-Id: I3d96fd3becd7609abb2529f977362bfa5401d600 --- umac/cmn_services/obj_mgr/inc/wlan_objmgr_pdev_obj.h | 5 +++-- umac/cmn_services/obj_mgr/inc/wlan_objmgr_psoc_obj.h | 2 ++ umac/mlme/include/wlan_vdev_mlme.h | 1 + .../vdev_mgr/dispatcher/inc/wlan_vdev_mgr_tgt_if_tx_defs.h | 5 +++++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/umac/cmn_services/obj_mgr/inc/wlan_objmgr_pdev_obj.h b/umac/cmn_services/obj_mgr/inc/wlan_objmgr_pdev_obj.h index 5640f4874345..a03068192d48 100644 --- a/umac/cmn_services/obj_mgr/inc/wlan_objmgr_pdev_obj.h +++ b/umac/cmn_services/obj_mgr/inc/wlan_objmgr_pdev_obj.h @@ -94,8 +94,9 @@ /* PDEV ext flags */ /* CFR support enabled */ -#define WLAN_PDEV_FEXT_CFR_EN 0x00000001 - +#define WLAN_PDEV_FEXT_CFR_EN 0x00000001 +/* EMA AP support enable */ +#define WLAN_PDEV_FEXT_EMA_AP_ENABLE 0x00000002 /* PDEV op flags */ /* Enable htrate for wep and tkip */ diff --git a/umac/cmn_services/obj_mgr/inc/wlan_objmgr_psoc_obj.h b/umac/cmn_services/obj_mgr/inc/wlan_objmgr_psoc_obj.h index 5d1d3f3934e1..59f6d4de7114 100644 --- a/umac/cmn_services/obj_mgr/inc/wlan_objmgr_psoc_obj.h +++ b/umac/cmn_services/obj_mgr/inc/wlan_objmgr_psoc_obj.h @@ -138,6 +138,8 @@ #define WLAN_SOC_RESTRICTED_80P80_SUPPORT 0x00100000 /* Indicates Firmware supports sending NSS ratio info to host */ #define WLAN_SOC_NSS_RATIO_TO_HOST_SUPPORT 0x00200000 + /* EMA AP Support */ +#define WLAN_SOC_CEXT_EMA_AP 0x00400000 /* feature_flags */ /* CONF: ATH FF enabled */ diff --git a/umac/mlme/include/wlan_vdev_mlme.h b/umac/mlme/include/wlan_vdev_mlme.h index 5bf922d9c99e..257df1dfbd6e 100644 --- a/umac/mlme/include/wlan_vdev_mlme.h +++ b/umac/mlme/include/wlan_vdev_mlme.h @@ -54,6 +54,7 @@ struct vdev_mlme_obj; #define WLAN_VDEV_MLME_FLAGS_NON_MBSSID_AP 0x00000001 #define WLAN_VDEV_MLME_FLAGS_TRANSMIT_AP 0x00000002 #define WLAN_VDEV_MLME_FLAGS_NON_TRANSMIT_AP 0x00000004 +#define WLAN_VDEV_MLME_FLAGS_EMA_MODE 0x00000008 /** * struct vdev_mlme_proto_generic - generic mlme proto structure diff --git a/umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_tgt_if_tx_defs.h b/umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_tgt_if_tx_defs.h index 170830fb85e2..baefb2b4eebf 100644 --- a/umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_tgt_if_tx_defs.h +++ b/umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_tgt_if_tx_defs.h @@ -204,6 +204,10 @@ struct tbttoffset_params { * @ext_csa_switch_count_offset: ECSA switch count offset in beacon frame * @esp_ie_offset: ESP IE offset in beacon frame * @mu_edca_ie_offset: Mu EDCA IE offset in beacon frame + * @ema_params: The 4 octets in this field respectively indicate + * ema_beacon_profile_periodicity, ema_beacon_tmpl_idx, + * ema_first_tmpl and ema_last_tmpl in the order of low + * to high * @enable_bigtk: enable bigtk or not * @frm: beacon template parameter */ @@ -217,6 +221,7 @@ struct beacon_tmpl_params { uint32_t ext_csa_switch_count_offset; uint32_t esp_ie_offset; uint32_t mu_edca_ie_offset; + uint32_t ema_params; bool enable_bigtk; uint8_t *frm; };