diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/802.11.h | 29 | ||||
-rw-r--r-- | include/bcmerror.h | 66 | ||||
-rw-r--r-- | include/bcmmsgbuf.h | 1 | ||||
-rw-r--r-- | include/bcmutils.h | 12 | ||||
-rw-r--r-- | include/epivers.h | 14 | ||||
-rw-r--r-- | include/ethernet.h | 8 | ||||
-rw-r--r-- | include/event_log_tag.h | 7 | ||||
-rw-r--r-- | include/linux_osl.h | 13 | ||||
-rw-r--r-- | include/wlioctl.h | 145 | ||||
-rw-r--r-- | include/wlioctl_defs.h | 10 |
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 |