summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/802.11.h29
-rw-r--r--include/bcmerror.h66
-rw-r--r--include/bcmmsgbuf.h1
-rw-r--r--include/bcmutils.h12
-rw-r--r--include/epivers.h14
-rw-r--r--include/ethernet.h8
-rw-r--r--include/event_log_tag.h7
-rw-r--r--include/linux_osl.h13
-rw-r--r--include/wlioctl.h145
-rw-r--r--include/wlioctl_defs.h10
10 files changed, 288 insertions, 17 deletions
diff --git a/include/802.11.h b/include/802.11.h
index 7e9b0db..3449540 100644
--- a/include/802.11.h
+++ b/include/802.11.h
@@ -216,6 +216,7 @@ typedef struct dot11_action_vs_frmhdr dot11_action_vs_frmhdr_t;
#define DOT11_BA_CTL_MTID 0x0002 /* multi tid BA */
#define DOT11_BA_CTL_COMPRESSED 0x0004 /* compressed bitmap */
+#define DOT11_BA_CTL_GCR 0x0008 /* GCR BAR */
#define DOT11_BA_CTL_NUMMSDU_MASK 0x0FC0 /* num msdu in bitmap mask */
#define DOT11_BA_CTL_NUMMSDU_SHIFT 6 /* num msdu in bitmap shift */
@@ -239,6 +240,14 @@ BWL_PRE_PACKED_STRUCT struct dot11_bar {
} BWL_POST_PACKED_STRUCT;
#define DOT11_BAR_LEN 4 /* BAR frame payload length */
+/** GCR BAR frame payload */
+BWL_PRE_PACKED_STRUCT struct dot11_gcr_bar {
+ uint16 bar_control; /* BAR Control */
+ uint16 seqnum; /* Starting Sequence control */
+ struct ether_addr gcr; /* GCR address */
+} BWL_POST_PACKED_STRUCT;
+#define DOT11_GCR_BAR_LEN 10u /* GCR BAR frame payload length */
+
#define DOT11_BA_BITMAP_LEN 128 /* bitmap length */
#define DOT11_BA_CMP_BITMAP_LEN 8 /* compressed bitmap length */
/** BA frame payload */
@@ -3993,7 +4002,9 @@ typedef struct dot11_mprep dot11_mprep_t;
/* HT-SIG1 */
#define HT_SIG1_MCS_MASK 0x00007F
#define HT_SIG1_CBW 0x000080
+#define HT_SIG1_CBW_SHIFT 7u
#define HT_SIG1_HT_LENGTH 0xFFFF00
+#define HT_SIG1_HT_LENGTH_SHIFT 8u
/* HT-SIG2 */
#define HT_SIG2_SMOOTHING 0x000001
@@ -5219,6 +5230,7 @@ typedef struct dot11_ftm_ranging_ndpa dot11_ftm_ranging_ndpa_t;
#define DOT11_NDPA_TYPE_VHT 0x00
#define DOT11_NDPA_TYPE_RANGING 0x01
#define DOT11_NDPA_TYPE_HE 0x02
+#define DOT11_NPDA_TOKEN_SHIFT 2u
#define DOT11_FTM_ERR_NOT_CONT_OFFSET 1
#define DOT11_FTM_ERR_NOT_CONT_MASK 0x80
@@ -5890,11 +5902,18 @@ BWL_PRE_PACKED_STRUCT struct supp_op_classes_ie {
} BWL_POST_PACKED_STRUCT;
typedef struct supp_op_classes_ie supp_op_classes_ie_t;
-/* Transition mode (bit number) */
-#define TRANSISION_MODE_WPA3_PSK 0u
-#define TRANSITION_MODE_SAE_PK 1u
-#define TRANSITION_MODE_WPA3_ENTERPRISE 2u
-#define TRANSITION_MODE_ENHANCED_OPEN 3u
+/* WPA3 Transition Mode bits */
+#define TRANSISION_MODE_WPA3_PSK BCM_BIT(0)
+#define TRANSITION_MODE_WPA3_PSK BCM_BIT(0)
+#define TRANSITION_MODE_SAE_PK BCM_BIT(1)
+#define TRANSITION_MODE_WPA3_ENTERPRISE BCM_BIT(2)
+#define TRANSITION_MODE_ENHANCED_OPEN BCM_BIT(3)
+
+#define TRANSITION_MODE_SUPPORTED_MASK (\
+ TRANSITION_MODE_WPA3_PSK | \
+ TRANSITION_MODE_SAE_PK | \
+ TRANSITION_MODE_WPA3_ENTERPRISE | \
+ TRANSITION_MODE_ENHANCED_OPEN)
/* This marks the end of a packed structure section. */
#include <packed_section_end.h>
diff --git a/include/bcmerror.h b/include/bcmerror.h
index 0d6a4e6..85798c7 100644
--- a/include/bcmerror.h
+++ b/include/bcmerror.h
@@ -515,6 +515,72 @@ enum {
/* signature package is invalid */
BCM_FWSIGN_E_PACKAGE_INVALID = -4121,
+ /* chip info mismatch */
+ BCM_FWSIGN_E_CHIP_INFO_MISMATCH = -4122,
+
+ /* key use is not valid */
+ BCM_FWSIGN_E_KEY_USE_NOT_VALID = -4123,
+
+ /* fw tag type invalid */
+ BCM_FWSIGN_E_TAG_TYPE_INVALID = -4124,
+
+ /* fwenc header invalid */
+ BCM_FWSIGN_E_FWENC_HDR_INVALID = -4125,
+
+ /* firmware encryption header version mismatch */
+ BCM_FWSIGN_E_FWENC_HDR_VERSION = -4126,
+
+ /* firmware encryption cipher type not supported */
+ BCM_FWSIGN_E_FWENC_CIPHER_TYPE_UNSUPPORTED = -4127,
+
+ /* firmware encryption tlv type not supported */
+ BCM_FWSIGN_E_FWENC_TLV_TYPE_UNSUPPORTED = -4128,
+
+ /* firmware encryption invalid kdf info */
+ BCM_FWSIGN_E_FWENC_INVALID_KDFINFO = -4129,
+
+ /* firmware encryption invalid ec group type length */
+ BCM_FWSIGN_E_FWENC_INVALID_ECG_TYPE_LEN = -4130,
+
+ /* firmware encryption invalid epub */
+ BCM_FWSIGN_E_FWENC_INVALID_EPUB = -4131,
+
+ /* firmware encryption invalid iv */
+ BCM_FWSIGN_E_FWENC_INVALID_IV = -4132,
+
+ /* firmware encryption invalid aad */
+ BCM_FWSIGN_E_FWENC_INVALID_AAD = -4133,
+
+ /* firmware encryption invalid ROM key */
+ BCM_FWSIGN_E_FWENC_INVALID_ROMKEY = -4134,
+
+ /* firmware encryption invalid sysmem key */
+ BCM_FWSIGN_E_FWENC_INVALID_SYSMEMKEY = -4135,
+
+ /* firmware encryption invalid OTP key */
+ BCM_FWSIGN_E_FWENC_INVALID_OTPKEY = -4136,
+
+ /* firmware encryption key unwrap fail */
+ BCM_FWSIGN_E_FWENC_KEY_UNWRAP_FAIL = -4137,
+
+ /* firmware encryption generate share secret fail */
+ BCM_FWSIGN_E_FWENC_GEN_SECRET_FAIL = -4138,
+
+ /* firmware encryption symmetric key derivation fail */
+ BCM_FWSIGN_E_FWENC_KEY_DERIVATION_FAIL = -4139,
+
+ /* firmware encryption RNG read fail */
+ BCM_FWSIGN_E_FWENC_RNG_FAIL = -4140,
+
+ /* firmware encryption MAC tampered during decryption */
+ BCM_FWSIGN_E_FWENC_MAC_TAMPERED = -4141,
+
+ /* firmware encryption decryption failed */
+ BCM_FWSIGN_E_FWENC_DECRYPT_FAIL = -4142,
+
+ /* firmware encryption decryption in progress */
+ BCM_FWSIGN_E_FWENC_DECRYPT_IN_PROGRESS = -4143,
+
/* last error */
BCM_FWSIGN_E_LAST = -5119
};
diff --git a/include/bcmmsgbuf.h b/include/bcmmsgbuf.h
index d9177d7..eef8028 100644
--- a/include/bcmmsgbuf.h
+++ b/include/bcmmsgbuf.h
@@ -502,6 +502,7 @@ typedef struct pcie_dma_xfer_params {
#define BCMPCIE_FLOW_RING_INTF_HP2P 0x01u /* bit0 */
#define BCMPCIE_FLOW_RING_OPT_EXT_TXSTATUS 0x02u /* bit1 */
#define BCMPCIE_FLOW_RING_INTF_MESH 0x04u /* bit2, identifies the mesh flow ring */
+#define BCMPCIE_FLOW_RING_INTF_LLW 0x08u /* bit3, identifies the llw flow ring */
/** Complete msgbuf hdr for flow ring update from host to dongle */
typedef struct tx_flowring_create_request {
diff --git a/include/bcmutils.h b/include/bcmutils.h
index 0a44f47..715d246 100644
--- a/include/bcmutils.h
+++ b/include/bcmutils.h
@@ -209,10 +209,14 @@ extern uint pkttotlen_no_sfhtoe_hdr(osl_t *osh, void *p, uint toe_hdr_len);
#define PKTPRIO_DSCP 0x800u /* DSCP prio found */
/* DSCP type definitions (RFC4594) */
+/* DF: Standard (RFC2474) */
+#define DSCP_DF 0x00u
/* AF1x: High-Throughput Data (RFC2597) */
#define DSCP_AF11 0x0Au
#define DSCP_AF12 0x0Cu
#define DSCP_AF13 0x0Eu
+/* CS1: Low-Priority Data (RFC3662) */
+#define DSCP_CS1 0x08u
/* AF2x: Low-Latency Data (RFC2597) */
#define DSCP_AF21 0x12u
#define DSCP_AF22 0x14u
@@ -225,6 +229,14 @@ extern uint pkttotlen_no_sfhtoe_hdr(osl_t *osh, void *p, uint toe_hdr_len);
#define DSCP_AF33 0x1Eu
/* CS3: Broadcast Video (RFC2474) */
#define DSCP_CS3 0x18u
+/* AF4x: Multimedia Conferencing (RFC2597) */
+#define DSCP_AF41 0x22u
+#define DSCP_AF42 0x24u
+#define DSCP_AF43 0x26u
+/* CS4: Real-Time Interactive (RFC2474) */
+#define DSCP_CS4 0x20u
+/* CS5: Signaling (RFC2474) */
+#define DSCP_CS5 0x28u
/* VA: VOCIE-ADMIT (RFC5865) */
#define DSCP_VA 0x2Cu
/* EF: Telephony (RFC3246) */
diff --git a/include/epivers.h b/include/epivers.h
index a10686f..8180db7 100644
--- a/include/epivers.h
+++ b/include/epivers.h
@@ -27,25 +27,25 @@
#define EPI_MINOR_VERSION 10
-#define EPI_RC_NUMBER 370
+#define EPI_RC_NUMBER 384
#define EPI_INCREMENTAL_NUMBER 0
#define EPI_BUILD_NUMBER 0
-#define EPI_VERSION 101, 10, 370, 0
+#define EPI_VERSION 101, 10, 384, 0
-#define EPI_VERSION_NUM 0x650a1720
+#define EPI_VERSION_NUM 0x650a1800
-#define EPI_VERSION_DEV 101.10.370
+#define EPI_VERSION_DEV 101.10.384
/* Driver Version String, ASCII, 32 chars max */
#if defined (WLTEST)
-#define EPI_VERSION_STR "101.10.370 (wlan=r894296 WLTEST)"
+#define EPI_VERSION_STR "101.10.384 (wlan=r896154 WLTEST)"
#elif (defined (BCMDBG_ASSERT) && !defined (BCMDBG_ASSERT_DISABLED))
-#define EPI_VERSION_STR "101.10.370 (wlan=r894296 ASSRT)"
+#define EPI_VERSION_STR "101.10.384 (wlan=r896154 ASSRT)"
#else
-#define EPI_VERSION_STR "101.10.370 (wlan=r894296)"
+#define EPI_VERSION_STR "101.10.384 (wlan=r896154)"
#endif /* BCMINTERNAL */
#endif /* _epivers_h_ */
diff --git a/include/ethernet.h b/include/ethernet.h
index 302f1a5..5f9a8c1 100644
--- a/include/ethernet.h
+++ b/include/ethernet.h
@@ -174,6 +174,14 @@ BWL_PRE_PACKED_STRUCT struct ether_addr {
(((const uint16 *)(a))[6] ^ ((const uint16 *)(b))[6]))
#endif /* DONGLEBUILD && __ARM_ARCH_7A__ */
+#define eacmp_nogrp(a, b) \
+ (((((const uint8 *)(a))[0] & 0x0e) ^ (((const uint8 *)(b))[0] & 0x0e)) | \
+ (((const uint8 *)(a))[1] ^ ((const uint8 *)(b))[1]) | \
+ (((const uint8 *)(a))[2] ^ ((const uint8 *)(b))[2]) | \
+ (((const uint8 *)(a))[3] ^ ((const uint8 *)(b))[3]) | \
+ (((const uint8 *)(a))[4] ^ ((const uint8 *)(b))[4]) | \
+ (((const uint8 *)(a))[5] ^ ((const uint8 *)(b))[5]))
+
#define ether_cmp(a, b) eacmp(a, b)
/* copy an ethernet address - assumes the pointers can be referenced as shorts */
diff --git a/include/event_log_tag.h b/include/event_log_tag.h
index a5d735d..ea0700c 100644
--- a/include/event_log_tag.h
+++ b/include/event_log_tag.h
@@ -484,8 +484,13 @@
#define EVENT_LOG_TAG_PKTFLTR_TRACE 390
#define EVENT_LOG_TAG_PKTFLTR_WARN 391
#define EVENT_LOG_TAG_PKTFLTR_ERROR 392
+
+/* LLW */
+#define EVENT_LOG_TAG_LLW_ERR 393
+#define EVENT_LOG_TAG_LLW_INFO 394
+
/* EVENT_LOG_TAG_MAX = Set to the same value of last tag, not last tag + 1 */
-#define EVENT_LOG_TAG_MAX 392
+#define EVENT_LOG_TAG_MAX 394
typedef enum wl_el_set_type_def {
EVENT_LOG_SET_TYPE_DEFAULT = 0, /* flush the log buffer when it is full - Default option */
diff --git a/include/linux_osl.h b/include/linux_osl.h
index e87c0c6..0de0ee5 100644
--- a/include/linux_osl.h
+++ b/include/linux_osl.h
@@ -28,10 +28,21 @@
#define DECLSPEC_ALIGN(x) __attribute__ ((aligned(x)))
/* Linux Kernel: File Operations: start */
+#ifdef DHD_SUPPORT_VFS_CALL
extern void * osl_os_open_image(char * filename);
-extern int osl_os_get_image_block(char * buf, int len, void * image);
extern void osl_os_close_image(void * image);
+extern int osl_os_get_image_block(char * buf, int len, void * image);
extern int osl_os_image_size(void *image);
+#else
+static INLINE void * osl_os_open_image(char * filename)
+ { return NULL; }
+static INLINE void osl_os_close_image(void * image)
+ { return; }
+static INLINE int osl_os_get_image_block(char * buf, int len, void * image)
+ { return 0; }
+static INLINE int osl_os_image_size(void *image)
+ { return 0; }
+#endif /* DHD_SUPPORT_VFS_CALL */
/* Linux Kernel: File Operations: end */
#ifdef BCMDRIVER
diff --git a/include/wlioctl.h b/include/wlioctl.h
index 94ee286..c860ff5 100644
--- a/include/wlioctl.h
+++ b/include/wlioctl.h
@@ -1801,6 +1801,10 @@ typedef enum sup_auth_status {
WLC_SUP_KEYXCHANGE_PREP_G2 /**< Preparing to send handshake msg G2 */
} sup_auth_status_t;
+#define WLC_SUP_TD_POLICY_XTLV_ID 0x1u
+#define WLC_SUP_TD_POLICY_XTLV_ELEM_SIZE 0x4u /* 4B aligned */
+#define WLC_SUP_TD_POLICY_XTLV_SIZE (BCM_XTLV_HDR_SIZE + WLC_SUP_TD_POLICY_XTLV_ELEM_SIZE)
+
typedef struct wl_wsec_key {
uint32 index; /**< key index */
uint32 len; /**< key length */
@@ -3225,6 +3229,7 @@ typedef struct {
#define WL_TXPPR_LENGTH (sizeof(wl_txppr_t))
#define TX_POWER_T_VERSION 45
#define TX_POWER_T_VERSION_V2 46
+#define TX_POWER_T_VERSION_V3 47
/* curpower ppr types */
enum {
@@ -3486,6 +3491,7 @@ typedef struct wl_mws_ocl_override {
#define OCL_DISABLED_IDLE_TSSICAL 0x200
#define OCL_DISABLED_TONE 0x400 /* Disabled if the tone is active */
#define OCL_DISABLED_NOISECAL 0x800 /* Disabled if the noise cal is active */
+#define OCL_DISABLED_INIT 0x1000 /* Disabled during phy init */
/* Bits for hw_status */
#define OCL_HWCFG 0x01 /* State of OCL config bit in phy HW */
@@ -9561,6 +9567,52 @@ typedef BWL_PRE_PACKED_STRUCT struct {
int8 antgain[3]; /**< Ant gain for each band - from SROM */
uint8 pprdata[1]; /**< ppr serialization buffer */
} BWL_POST_PACKED_STRUCT tx_pwr_rpt_v2_t;
+
+#define WL_TPC_MAX_BW_TX_PWR_LEN 8u
+#define WL_TPC_MAX_RU_TX_PWR_LEN 8u
+#define WL_TPE_MAX_TX_PWRS_LEN 16u
+
+typedef BWL_PRE_PACKED_STRUCT struct wl_tpc_bw_txpwr {
+ wl_tx_bw_t bw;
+ int8 txpwr;
+} BWL_POST_PACKED_STRUCT wl_tpc_bw_txpwr_t;
+
+typedef BWL_PRE_PACKED_STRUCT struct wl_tpc_ru_txpwr {
+ int ru; /* RU of wl_he_rate_type_t type */
+ int8 txpwr;
+} BWL_POST_PACKED_STRUCT wl_tpc_ru_txpwr_t;
+
+typedef BWL_PRE_PACKED_STRUCT struct {
+ uint32 flags;
+ chanspec_t chanspec; /**< txpwr report for this channel */
+ chanspec_t local_chanspec; /**< channel on which we are associated */
+ uint8 local_max; /**< local max according to the AP */
+ uint8 local_constraint; /**< local constraint according to the AP */
+ int8 pad[2]; /**< unused */
+ uint8 rf_cores; /**< count of RF Cores being reported */
+ uint8 est_Pout[4]; /**< Latest tx power out estimate per RF chain */
+ uint8 est_Pout_act[4]; /**< Latest tx power out estimate per RF chain w/o adjustment */
+ uint8 est_Pout_cck; /**< Latest CCK tx power out estimate */
+ uint8 tx_power_max[4]; /**< Maximum target power among all rates */
+ uint32 tx_power_max_rate_ind[4]; /**< Index of the rate with the max target power */
+ int8 sar; /**< SAR limit for display by wl executable */
+ int8 channel_bandwidth; /**< 20, 40 or 80 MHz bandwidth? */
+ uint8 version; /**< Version of the data format wlu <--> driver */
+ uint8 display_core; /**< Displayed curpower core */
+ int8 target_offsets[4]; /**< Target power offsets for current rate per core */
+ uint32 last_tx_ratespec; /**< Ratespec for last transmition */
+ uint32 user_target; /**< user limit */
+ uint32 ppr_len; /**< length of each ppr serialization buffer */
+ int8 SARLIMIT[MAX_STREAMS_SUPPORTED];
+ int8 antgain[3]; /**< Ant gain for each band - from SROM */
+ uint8 tpe_txpwrs_len; /**< # max txpwrs rcvd in TPE elem */
+ int8 tpe_txpwrs[WL_TPE_MAX_TX_PWRS_LEN]; /**< TPE parsed max txpwrs */
+ uint8 sb_txpwrs_len; /**< No of TPE sb_txpwrs present */
+ wl_tpc_bw_txpwr_t sb_txpwrs[WL_TPC_MAX_BW_TX_PWR_LEN]; /**< TPE Subband max txpwrs */
+ uint8 ru_txpwrs_len; /**< No of TPE RU txpwrs present */
+ wl_tpc_ru_txpwr_t ru_txpwrs[WL_TPC_MAX_RU_TX_PWR_LEN]; /**< TPE RU max txpwrs */
+ uint8 pprdata[1]; /**< ppr serialization buffer */
+} BWL_POST_PACKED_STRUCT tx_pwr_rpt_v3_t;
#include <packed_section_end.h>
typedef struct tx_pwr_ru_rate_info {
@@ -16135,7 +16187,6 @@ typedef uint64 wl_ftm_session_mask_t;
/* flags relevant to MC sessions */
#define FTM_MC_CONFIG_MASK \
- (FTM_COMMON_CONFIG_MASK) | \
(WL_FTM_SESSION_FLAG_AUTO_VHTACK \
| WL_FTM_SESSION_FLAG_MBURST_NODELAY \
| WL_FTM_SESSION_FLAG_ASAP_CAPABLE \
@@ -16151,13 +16202,12 @@ typedef uint64 wl_ftm_session_mask_t;
/* flags relevant to NTB sessions */
#define FTM_NTB_CONFIG_MASK \
- (FTM_COMMON_CONFIG_MASK) | \
(WL_FTM_SESSION_FLAG_R2I_TOA_PHASE_SHIFT \
| WL_FTM_SESSION_FLAG_I2R_TOA_PHASE_SHIFT \
| WL_FTM_SESSION_FLAG_I2R_IMMEDIATE_RPT \
| WL_FTM_SESSION_FLAG_R2I_IMMEDIATE_RPT)
-/* flages relevant to TB sessions. To be expanded */
+/* flags relevant to TB sessions. To be expanded */
#define FTM_TB_CONFIG_MASK (FTM_NTB_CONFIG_MASK)
/** time units - mc supports up to 0.1ns resolution */
@@ -21011,6 +21061,7 @@ enum wl_otp_xtlv_id {
WL_OTP_XTLV_SBOOT_WAFER_Y = 25u, /* Chip wafer Y 9 bits */
WL_OTP_XTLV_SBOOT_UNLOCK_HASH_VAL = 26u, /* Unlock Hash Val 128 bits */
WL_OTP_XTLV_SBOOT_PRODUCTION_CHIP = 27u, /* Production chip bit */
+ WL_OTP_XTLV_SBOOT_ENCRYPTION_KEY = 28u, /* AES wrapped fw encryption key 320 bits */
};
#define WL_LEAKY_AP_STATS_GT_TYPE 0
@@ -23410,6 +23461,19 @@ typedef struct wl_ulmu_disable_stats {
uint16 avg_latency; /* Avg latency by AP to re-act for UL OFDMA disable request (ms) */
} wl_ulmu_disable_stats_v1_t;
+#define WL_TPE_TXPWR_CONFIG_VERSION_1 1u
+#define WL_TPE_TXPWR_MAX_LEN 8u
+
+typedef struct wl_tpe_txpwr_config {
+ uint16 version;
+ uint16 len;
+ uint8 idx; /* Index of profile */
+ uint8 cat; /* Transmit Power Info category */
+ uint8 intr; /* Transmit Power Info Interpretation */
+ uint8 cnt; /* Transmit Power Info count */
+ int8 txpwr[WL_TPE_TXPWR_MAX_LEN]; /* Maximum TX power */
+} wl_tpe_txpwr_config_v1_t;
+
/* sub-xtlv IDs within WL_STATS_XTLV_WL_SLICE_TX_HISTOGRAMS */
enum wl_tx_histogram_id {
WL_TX_HIST_TXQ_ID = 1,
@@ -24761,6 +24825,10 @@ enum {
BCM_TRACE_E_MSCH = 2,
BCM_TRACE_E_SC = 3,
BCM_TRACE_E_SCAN = 4,
+ BCM_TRACE_E_ASSOC = 5,
+ BCM_TRACE_E_SCAN_STATE = 6,
+ BCM_TRACE_E_RX_STALL = 7,
+ BCM_TRACE_E_TX_STALL = 8,
BCM_TRACE_E_LAST
};
@@ -24811,4 +24879,75 @@ typedef struct wl_auth_start_evt {
uint32 key_mgmt_suite;
uint8 opt_tlvs[];
} wl_auth_start_evt_t;
+
+/* Additional header pushed to the logged mgmt frame in aml(assoc mgmt frame logger) */
+typedef struct wl_aml_header_v1 {
+ uint16 version; /* Header version, now 1 */
+ uint16 length; /* frame length excluding this header */
+ uint16 flags; /* flag to indicate tx/rx, acked/noack and others */
+ uint8 pad[2]; /* pad bytes for align */
+} wl_aml_header_v1_t;
+
+/* Version for aml header */
+#define WL_AML_HEADER_VERSION 1u
+
+/* Flags for aml header */
+#define WL_AML_F_DIRECTION 0x0001 /* This flag indicates this is Tx mgmt, otherwise Rx */
+#define WL_AML_F_ACKED 0x0002 /* This flag indicates the frame is acked */
+
+/* Version for IOVAR 'aml' */
+#define WL_AML_IOV_MAJOR_VER 1u
+#define WL_AML_IOV_MINOR_VER 0u
+#define WL_AML_IOV_MAJOR_VER_SHIFT 8u
+#define WL_AML_IOV_VERSION \
+ ((WL_AML_IOV_MAJOR_VER << WL_AML_IOV_MAJOR_VER_SHIFT) | WL_AML_IOV_MINOR_VER)
+
+/* Common header for IOVAR 'aml' */
+typedef struct wl_aml_iov_cmnhdr {
+ uint16 ver; /* IOVAR cmd structure version */
+ uint16 len; /* IOVAR cmd structure total len (cmnhdr + following subcmd) */
+ uint16 subcmd; /* IOVAR subcmd */
+ uint8 pad[2];
+} wl_aml_iov_cmnhdr_t;
+
+/* IOVAR 'aml' data structure, cmn header is followed by subcmd structure */
+typedef struct wl_aml_iovar {
+ wl_aml_iov_cmnhdr_t hdr;
+ uint32 data[0];
+} wl_aml_iovar_t;
+
+/* IOVAR 'aml' subcmd list */
+enum wl_aml_subcmd_ids {
+ WL_AML_SUBCMD_ENABLE = 1, /* Enable/disable aml feature */
+ WL_AML_SUBCMD_LAST
+};
+
+/* IOVAR 'aml' subcmd structure for uint32 data
+ * Subcmd 'enable' uses this structure
+ */
+typedef struct wl_aml_iov_uint_data {
+ uint32 val;
+} wl_aml_iov_uint_data_t;
+
+/* IOVAR 'aml enable' subcmd bit numbers
+ * wl_aml_iov_uint_data.val is popluated with following bits
+ */
+enum wl_aml_cmd_enable_bitnums {
+ WL_AML_ASSOC_ENABLE = 0, /* Logging for association */
+ WL_AML_ROAM_ENABLE = 1, /* Logging for roaming */
+ WL_AML_ENABLE_LAST
+};
+
+/* Snapshot of various timestamps */
+#define WL_TIMESTAMP_VERSION_1 1
+typedef struct wl_timestamps_v1 {
+ uint16 version; /**< structure version */
+ uint16 length; /**< length of this struct */
+ uint64 cpu_cycles; /**< CPU Cycle count */
+ uint64 ptm; /**< Local PTM master timestamp in nano seconds */
+ uint64 pmu_timer; /**< Legacy PMU timer in micsoseconds */
+ uint32 tsf_main; /**< Main slice TSF */
+ uint32 tsf_aux; /**< Aux slice TSF */
+ uint32 tsf_scan; /**< Scan core TSF */
+} wl_timestamps_v1_t;
#endif /* _wlioctl_h_ */
diff --git a/include/wlioctl_defs.h b/include/wlioctl_defs.h
index f0e8315..e770da2 100644
--- a/include/wlioctl_defs.h
+++ b/include/wlioctl_defs.h
@@ -1361,6 +1361,8 @@
#define WL_TX_POWER_F_TXCAP 0x200
#define WL_TX_POWER_F_HE 0x400
#define WL_TX_POWER_F_RU_RATE 0x800
+#define WL_TX_POWER_TPE_PSD 0x1000
+#define WL_TX_POWER_TPE_LOC 0x2000
/* Message levels */
#define WL_ERROR_VAL 0x00000001
@@ -1558,11 +1560,19 @@
* It is preserved only for compatibility with older branches that use it
*/
#ifdef WL_BAND6G
+#ifdef WL_BAND5P9G
+#ifdef WL11AC_80P80
+#define WL_NUMCHANSPECS 466
+#else
+#define WL_NUMCHANSPECS 370
+#endif
+#else
#ifdef WL11AC_80P80
#define WL_NUMCHANSPECS 446
#else
#define WL_NUMCHANSPECS 350
#endif
+#endif /* WL_BAND5P9G */
#else
#if defined(WL11AC_80P80)
#define WL_NUMCHANSPECS 206