diff --git a/fw/wlan_defs.h b/fw/wlan_defs.h index aaf3825fc280..53a9d2b3850d 100644 --- a/fw/wlan_defs.h +++ b/fw/wlan_defs.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004-2010, 2013-2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2013-2016 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -24,42 +24,47 @@ * under proprietary terms before Copyright ownership was assigned * to the Linux Foundation. */ - #ifndef __WLAN_DEFS_H__ #define __WLAN_DEFS_H__ -/* A_COMPILE_TIME_ASSERT */ -#include +#include /* A_COMPILE_TIME_ASSERT */ /* * This file contains WLAN definitions that may be used across both * Host and Target software. */ + + /* * MAX_SPATIAL_STREAM should be defined in a fwconfig_xxx.h file, * but for now provide a default value here in case it's not defined * in the fwconfig_xxx.h file. */ -#define NUM_SPATIAL_STREAM 2 #ifndef MAX_SPATIAL_STREAM #define MAX_SPATIAL_STREAM 3 #endif -/* - * MAX_SPATIAL_STREAM_ANY - - * what is the largest number of spatial streams that any target supports - */ -#define MAX_SPATIAL_STREAM_ANY 4 - #ifndef CONFIG_160MHZ_SUPPORT -#define CONFIG_160MHZ_SUPPORT 0 +#define CONFIG_160MHZ_SUPPORT 0 /* default: 160 MHz channels not supported */ #endif #ifndef SUPPORT_11AX #define SUPPORT_11AX 0 /* 11ax not supported by default */ #endif -/* defines to set Packet extension values which can be 0 us, 8 us or 16 us */ +/* + * MAX_SPATIAL_STREAM_ANY - + * what is the largest number of spatial streams that any target supports + */ +#define MAX_SPATIAL_STREAM_ANY_V2 4 /* pre-hawkeye */ +#define MAX_SPATIAL_STREAM_ANY_V3 8 /* includes hawkeye */ +/* + * (temporarily) leave the old MAX_SPATIAL_STREAM_ANY name in place as an alias, + * and in case some old code is using it + */ +#define MAX_SPATIAL_STREAM_ANY MAX_SPATIAL_STREAM_ANY_V2 /* DEPRECATED */ + +/* defines to set Packet extension values whic can be 0 us, 8 usec or 16 usec */ /* NOTE: Below values cannot be changed without breaking WMI Compatibility */ #define MAX_HE_NSS 8 #define MAX_HE_MODULATION 8 @@ -70,193 +75,167 @@ #define HE_PET_16_USEC 2 typedef enum { - MODE_11A = 0, /* 11a Mode */ - MODE_11G = 1, /* 11b/g Mode */ - MODE_11B = 2, /* 11b Mode */ - MODE_11GONLY = 3, /* 11g only Mode */ - MODE_11NA_HT20 = 4, /* 11a HT20 mode */ - MODE_11NG_HT20 = 5, /* 11g HT20 mode */ - MODE_11NA_HT40 = 6, /* 11a HT40 mode */ - MODE_11NG_HT40 = 7, /* 11g HT40 mode */ - MODE_11AC_VHT20 = 8, - MODE_11AC_VHT40 = 9, - MODE_11AC_VHT80 = 10, - MODE_11AC_VHT20_2G = 11, - MODE_11AC_VHT40_2G = 12, - MODE_11AC_VHT80_2G = 13, + MODE_11A = 0, /* 11a Mode */ + MODE_11G = 1, /* 11b/g Mode */ + MODE_11B = 2, /* 11b Mode */ + MODE_11GONLY = 3, /* 11g only Mode */ + MODE_11NA_HT20 = 4, /* 11a HT20 mode */ + MODE_11NG_HT20 = 5, /* 11g HT20 mode */ + MODE_11NA_HT40 = 6, /* 11a HT40 mode */ + MODE_11NG_HT40 = 7, /* 11g HT40 mode */ + MODE_11AC_VHT20 = 8, + MODE_11AC_VHT40 = 9, + MODE_11AC_VHT80 = 10, + MODE_11AC_VHT20_2G = 11, + MODE_11AC_VHT40_2G = 12, + MODE_11AC_VHT80_2G = 13, #if CONFIG_160MHZ_SUPPORT - MODE_11AC_VHT80_80 = 14, - MODE_11AC_VHT160 = 15, + MODE_11AC_VHT80_80 = 14, + MODE_11AC_VHT160 = 15, #endif #if SUPPORT_11AX - MODE_11AX_HE20 = 16, - MODE_11AX_HE40 = 17, - MODE_11AX_HE80 = 18, - MODE_11AX_HE80_80 = 19, - MODE_11AX_HE160 = 20, - MODE_11AX_HE20_2G = 21, - MODE_11AX_HE40_2G = 22, - MODE_11AX_HE80_2G = 23, + MODE_11AX_HE20 = 16, + MODE_11AX_HE40 = 17, + MODE_11AX_HE80 = 18, + MODE_11AX_HE80_80 = 19, + MODE_11AX_HE160 = 20, + MODE_11AX_HE20_2G = 21, + MODE_11AX_HE40_2G = 22, + MODE_11AX_HE80_2G = 23, #endif - /* - * MODE_UNKNOWN should not be used within the host / target interface. - * Thus, it is permissible for ODE_UNKNOWN to be conditionally-defined, - * taking different values when compiling for different targets. - */ - - MODE_UNKNOWN, - MODE_UNKNOWN_NO_160MHZ_SUPPORT = 14, /* not needed? */ - /* MODE_UNKNOWN_NO_11AX_SUPPORT = 16,*/ /* not needed? */ - /* MODE_UNKNOWN_11AX_SUPPORT = 24,*/ /* not needed? */ - MODE_UNKNOWN_160MHZ_SUPPORT = MODE_UNKNOWN, /* not needed? */ + /* + * MODE_UNKNOWN should not be used within the host / target interface. + * Thus, it is permissible for ODE_UNKNOWN to be conditionally-defined, + * taking different values when compiling for different targets. + */ + MODE_UNKNOWN, + MODE_UNKNOWN_NO_160MHZ_SUPPORT = 14, /* not needed? */ +#if 0 + MODE_UNKNOWN_NO_11AX_SUPPORT = 16, /* not needed? */ + MODE_UNKNOWN_11AX_SUPPORT = 24, /* not needed? */ +#endif + MODE_UNKNOWN_160MHZ_SUPPORT = MODE_UNKNOWN, /* not needed? */ #ifdef ATHR_WIN_NWF - PHY_MODE_MAX = MODE_UNKNOWN, - PHY_MODE_MAX_NO_160_MHZ_SUPPORT = MODE_UNKNOWN_NO_160MHZ_SUPPORT, - PHY_MODE_MAX_160_MHZ_SUPPORT = MODE_UNKNOWN_160MHZ_SUPPORT, + PHY_MODE_MAX = MODE_UNKNOWN, + PHY_MODE_MAX_NO_160_MHZ_SUPPORT = MODE_UNKNOWN_NO_160MHZ_SUPPORT, + PHY_MODE_MAX_160_MHZ_SUPPORT = MODE_UNKNOWN_160MHZ_SUPPORT, #else - MODE_MAX = MODE_UNKNOWN, - MODE_MAX_NO_160_MHZ_SUPPORT = MODE_UNKNOWN_NO_160MHZ_SUPPORT, - MODE_MAX_160_MHZ_SUPPORT = MODE_UNKNOWN_160MHZ_SUPPORT, + MODE_MAX = MODE_UNKNOWN, + MODE_MAX_NO_160_MHZ_SUPPORT = MODE_UNKNOWN_NO_160MHZ_SUPPORT, + MODE_MAX_160_MHZ_SUPPORT = MODE_UNKNOWN_160MHZ_SUPPORT, #endif } WLAN_PHY_MODE; #if CONFIG_160MHZ_SUPPORT == 0 A_COMPILE_TIME_ASSERT( - mode_unknown_value_consistency_Check, - MODE_UNKNOWN == MODE_UNKNOWN_NO_160MHZ_SUPPORT); + mode_unknown_value_consistency_Check, + MODE_UNKNOWN == MODE_UNKNOWN_NO_160MHZ_SUPPORT); #else A_COMPILE_TIME_ASSERT( - mode_unknown_value_consistency_Check, - MODE_UNKNOWN == MODE_UNKNOWN_160MHZ_SUPPORT); + mode_unknown_value_consistency_Check, + MODE_UNKNOWN == MODE_UNKNOWN_160MHZ_SUPPORT); #endif typedef enum { - VHT_MODE_NONE = 0, /* NON VHT Mode, e.g., HT, DSSS, CCK */ - VHT_MODE_20M = 1, - VHT_MODE_40M = 2, - VHT_MODE_80M = 3, - VHT_MODE_160M = 4 + VHT_MODE_NONE = 0, /* NON VHT Mode, e.g., HT, DSSS, CCK */ + VHT_MODE_20M = 1, + VHT_MODE_40M = 2, + VHT_MODE_80M = 3, + VHT_MODE_160M = 4 } VHT_OPER_MODE; typedef enum { - WLAN_11A_CAPABILITY = 1, - WLAN_11G_CAPABILITY = 2, - WLAN_11AG_CAPABILITY = 3, + WLAN_11A_CAPABILITY = 1, + WLAN_11G_CAPABILITY = 2, + WLAN_11AG_CAPABILITY = 3, } WLAN_CAPABILITY; -#if (NUM_SPATIAL_STREAM > 3) -#define A_RATEMASK A_UINT64 -#else -#define A_RATEMASK A_UINT32 -#endif - -#define A_RATEMASK_NUM_OCTET (sizeof (A_RATEMASK)) -#define A_RATEMASK_NUM_BITS ((sizeof (A_RATEMASK)) << 3) - -#if CONFIG_160MHZ_SUPPORT != 0 +#if CONFIG_160MHZ_SUPPORT #define IS_MODE_VHT(mode) (((mode) == MODE_11AC_VHT20) || \ - ((mode) == MODE_11AC_VHT40) || \ - ((mode) == MODE_11AC_VHT80) || \ - ((mode) == MODE_11AC_VHT80_80) || \ - ((mode) == MODE_11AC_VHT160)) + ((mode) == MODE_11AC_VHT40) || \ + ((mode) == MODE_11AC_VHT80) || \ + ((mode) == MODE_11AC_VHT80_80) || \ + ((mode) == MODE_11AC_VHT160)) #else #define IS_MODE_VHT(mode) (((mode) == MODE_11AC_VHT20) || \ - ((mode) == MODE_11AC_VHT40) || \ - ((mode) == MODE_11AC_VHT80)) + ((mode) == MODE_11AC_VHT40) || \ + ((mode) == MODE_11AC_VHT80)) #endif -#define IS_MODE_HE(mode) (((mode) == MODE_11AX_HE20) || \ - ((mode) == MODE_11AX_HE40) || \ - ((mode) == MODE_11AX_HE80) || \ - ((mode) == MODE_11AX_HE80_80) || \ - ((mode) == MODE_11AX_HE160) || \ - ((mode) == MODE_11AX_HE20_2G) || \ - ((mode) == MODE_11AX_HE40_2G) || \ - ((mode) == MODE_11AX_HE80_2G)) +#define IS_MODE_HE(mode) (((mode) == MODE_11AX_HE20) || \ + ((mode) == MODE_11AX_HE40) || \ + ((mode) == MODE_11AX_HE80) || \ + ((mode) == MODE_11AX_HE80_80) || \ + ((mode) == MODE_11AX_HE160) || \ + ((mode) == MODE_11AX_HE20_2G) || \ + ((mode) == MODE_11AX_HE40_2G) || \ + ((mode) == MODE_11AX_HE80_2G)) +#define IS_MODE_VHT_2G(mode) (((mode) == MODE_11AC_VHT20_2G) || \ + ((mode) == MODE_11AC_VHT40_2G) || \ + ((mode) == MODE_11AC_VHT80_2G)) -#define IS_MODE_VHT_2G(mode) (((mode) == MODE_11AC_VHT20_2G) || \ - ((mode) == MODE_11AC_VHT40_2G) || \ - ((mode) == MODE_11AC_VHT80_2G)) #define IS_MODE_11A(mode) (((mode) == MODE_11A) || \ - ((mode) == MODE_11NA_HT20) || \ - ((mode) == MODE_11NA_HT40) || \ - (IS_MODE_VHT(mode))) + ((mode) == MODE_11NA_HT20) || \ + ((mode) == MODE_11NA_HT40) || \ + (IS_MODE_VHT(mode))) #define IS_MODE_11B(mode) ((mode) == MODE_11B) #define IS_MODE_11G(mode) (((mode) == MODE_11G) || \ - ((mode) == MODE_11GONLY) || \ - ((mode) == MODE_11NG_HT20) || \ - ((mode) == MODE_11NG_HT40) || \ - (IS_MODE_VHT_2G(mode))) + ((mode) == MODE_11GONLY) || \ + ((mode) == MODE_11NG_HT20) || \ + ((mode) == MODE_11NG_HT40) || \ + (IS_MODE_VHT_2G(mode))) #define IS_MODE_11GN(mode) (((mode) == MODE_11NG_HT20) || \ - ((mode) == MODE_11NG_HT40)) + ((mode) == MODE_11NG_HT40)) #define IS_MODE_11GONLY(mode) ((mode) == MODE_11GONLY) + enum { - /* 11a channels */ - REGDMN_MODE_11A = 0x00000001, - /* 11a turbo-only channels */ - REGDMN_MODE_TURBO = 0x00000002, - /* 11b channels */ - REGDMN_MODE_11B = 0x00000004, - /* 11g channels (OFDM only) */ - REGDMN_MODE_PUREG = 0x00000008, - /* XXX historical */ - REGDMN_MODE_11G = 0x00000008, - /* 11g+Turbo channels */ - REGDMN_MODE_108G = 0x00000020, - /* 11a+Turbo channels */ - REGDMN_MODE_108A = 0x00000040, - /* XR channels */ - REGDMN_MODE_XR = 0x00000100, - /* 11A half rate channels */ - REGDMN_MODE_11A_HALF_RATE = 0x00000200, - /* 11A quarter rate channels */ - REGDMN_MODE_11A_QUARTER_RATE = 0x00000400, - /* 11N-G HT20 channels */ - REGDMN_MODE_11NG_HT20 = 0x00000800, - /* 11N-A HT20 channels */ - REGDMN_MODE_11NA_HT20 = 0x00001000, - /* 11N-G HT40 + channels */ - REGDMN_MODE_11NG_HT40PLUS = 0x00002000, - /* 11N-G HT40 - channels */ - REGDMN_MODE_11NG_HT40MINUS = 0x00004000, - /* 11N-A HT40 + channels */ - REGDMN_MODE_11NA_HT40PLUS = 0x00008000, - /* 11N-A HT40 - channels */ - REGDMN_MODE_11NA_HT40MINUS = 0x00010000, - /* 5Ghz, VHT20 */ - REGDMN_MODE_11AC_VHT20 = 0x00020000, - /* 5Ghz, VHT40 + channels */ - REGDMN_MODE_11AC_VHT40PLUS = 0x00040000, - /* 5Ghz VHT40 - channels */ - REGDMN_MODE_11AC_VHT40MINUS = 0x00080000, - /* 5Ghz, VHT80 channels */ - REGDMN_MODE_11AC_VHT80 = 0x000100000, - REGDMN_MODE_11AC_VHT20_2G = 0x000200000, /* 2Ghz, VHT20 */ - REGDMN_MODE_11AC_VHT40_2G = 0x000400000, /* 2Ghz, VHT40 */ - REGDMN_MODE_11AC_VHT80_2G = 0x000800000, /* 2Ghz, VHT80 */ - REGDMN_MODE_11AC_VHT160 = 0x001000000, /* 5Ghz, VHT160 */ - REGDMN_MODE_11AC_VHT40_2GPLUS = 0x002000000, /* 2Ghz, VHT40+ */ - REGDMN_MODE_11AC_VHT40_2GMINUS = 0x004000000, /* 2Ghz, VHT40- */ - REGDMN_MODE_11AC_VHT80_80 = 0x008000000, /* 5GHz, VHT80+80 */ + REGDMN_MODE_11A = 0x00000001, /* 11a channels */ + REGDMN_MODE_TURBO = 0x00000002, /* 11a turbo-only channels */ + REGDMN_MODE_11B = 0x00000004, /* 11b channels */ + REGDMN_MODE_PUREG = 0x00000008, /* 11g channels (OFDM only) */ + REGDMN_MODE_11G = 0x00000008, /* XXX historical */ + REGDMN_MODE_108G = 0x00000020, /* 11g+Turbo channels */ + REGDMN_MODE_108A = 0x00000040, /* 11a+Turbo channels */ + REGDMN_MODE_XR = 0x00000100, /* XR channels */ + REGDMN_MODE_11A_HALF_RATE = 0x00000200, /* 11A half rate channels */ + REGDMN_MODE_11A_QUARTER_RATE = 0x00000400, /* 11A quarter rate channels */ + REGDMN_MODE_11NG_HT20 = 0x00000800, /* 11N-G HT20 channels */ + REGDMN_MODE_11NA_HT20 = 0x00001000, /* 11N-A HT20 channels */ + REGDMN_MODE_11NG_HT40PLUS = 0x00002000, /* 11N-G HT40 + channels */ + REGDMN_MODE_11NG_HT40MINUS = 0x00004000, /* 11N-G HT40 - channels */ + REGDMN_MODE_11NA_HT40PLUS = 0x00008000, /* 11N-A HT40 + channels */ + REGDMN_MODE_11NA_HT40MINUS = 0x00010000, /* 11N-A HT40 - channels */ + REGDMN_MODE_11AC_VHT20 = 0x00020000, /* 5Ghz, VHT20 */ + REGDMN_MODE_11AC_VHT40PLUS = 0x00040000, /* 5Ghz, VHT40 + channels */ + REGDMN_MODE_11AC_VHT40MINUS = 0x00080000, /* 5Ghz VHT40 - channels */ + REGDMN_MODE_11AC_VHT80 = 0x000100000, /* 5Ghz, VHT80 channels */ + REGDMN_MODE_11AC_VHT20_2G = 0x000200000, /* 2Ghz, VHT20 */ + REGDMN_MODE_11AC_VHT40_2G = 0x000400000, /* 2Ghz, VHT40 */ + REGDMN_MODE_11AC_VHT80_2G = 0x000800000, /* 2Ghz, VHT80 */ + REGDMN_MODE_11AC_VHT160 = 0x001000000, /* 5Ghz, VHT160 */ + REGDMN_MODE_11AC_VHT40_2GPLUS = 0x002000000, /* 2Ghz, VHT40+ */ + REGDMN_MODE_11AC_VHT40_2GMINUS = 0x004000000, /* 2Ghz, VHT40- */ + REGDMN_MODE_11AC_VHT80_80 = 0x008000000, /* 5GHz, VHT80+80 */ }; -#define REGDMN_MODE_ALL (0xFFFFFFFF) /* REGDMN_MODE_ALL is defined out of the enum - * to prevent the ARM compile "warning #66: - * enumeration value is out of int range" - * Anyway, this is a BIT-OR of all possible values. - */ +#define REGDMN_MODE_ALL (0xFFFFFFFF) /* REGDMN_MODE_ALL is defined out of the enum + * to prevent the ARM compile "warning #66: + * enumeration value is out of int range" + * Anyway, this is a BIT-OR of all possible values. + */ #define REGDMN_CAP1_CHAN_HALF_RATE 0x00000001 #define REGDMN_CAP1_CHAN_QUARTER_RATE 0x00000002 #define REGDMN_CAP1_CHAN_HAL49GHZ 0x00000004 + /* regulatory capabilities */ #define REGDMN_EEPROM_EEREGCAP_EN_FCC_MIDBAND 0x0040 #define REGDMN_EEPROM_EEREGCAP_EN_KK_U1_EVEN 0x0080 @@ -266,68 +245,98 @@ enum { #define REGDMN_EEPROM_EEREGCAP_EN_KK_NEW_11A 0x0800 typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMI_TLVTAG_STRUC_HAL_REG_CAPABILITIES */ - A_UINT32 eeprom_rd; /* regdomain value specified in EEPROM */ - A_UINT32 eeprom_rd_ext; /* regdomain */ - A_UINT32 regcap1; /* CAP1 capabilities bit map. */ - A_UINT32 regcap2; /* REGDMN EEPROM CAP. */ - A_UINT32 wireless_modes; /* REGDMN MODE */ - A_UINT32 low_2ghz_chan; - A_UINT32 high_2ghz_chan; - A_UINT32 low_5ghz_chan; - A_UINT32 high_5ghz_chan; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMI_TLVTAG_STRUC_HAL_REG_CAPABILITIES */ + A_UINT32 eeprom_rd; /* regdomain value specified in EEPROM */ + A_UINT32 eeprom_rd_ext; /* regdomain */ + A_UINT32 regcap1; /* CAP1 capabilities bit map. */ + A_UINT32 regcap2; /* REGDMN EEPROM CAP. */ + A_UINT32 wireless_modes; /* REGDMN MODE */ + A_UINT32 low_2ghz_chan; + A_UINT32 high_2ghz_chan; + A_UINT32 low_5ghz_chan; + A_UINT32 high_5ghz_chan; } HAL_REG_CAPABILITIES; + +/* + * The rate control definitions below are only used in the target. + * (Host-based rate control is no longer applicable.) + * Maintain the defs in wlanfw_cmn for the sake of existing Rome / Helium + * targets, but for Lithium targets remove them from wlanfw_cmn and define + * them in a target-only location instead. + * SUPPORT_11AX is essentially used as a condition to identify Lithium targets. + * Some host drivers would also have SUPPORT_11AX defined, and thus would lose + * the definition of RATE_CODE, RC_TX_DONE_PARAMS, and related macros, but + * that's okay because the host should have no references to these + * target-only data structures. + */ +#if !((NUM_SPATIAL_STREAM > 4) || SUPPORT_11AX) /* following N/A for Lithium */ + /* * Used to update rate-control logic with the status of the tx-completion. * In host-based implementation of the rate-control feature, this struture is used to * create the payload for HTT message/s from target to host. */ +#if (NUM_SPATIAL_STREAM > 3) + #define A_RATEMASK A_UINT64 +#else + #define A_RATEMASK A_UINT32 +#endif + +typedef A_UINT8 A_RATE; +typedef A_UINT8 A_RATECODE; + +#define A_RATEMASK_NUM_OCTET (sizeof (A_RATEMASK)) +#define A_RATEMASK_NUM_BITS ((sizeof (A_RATEMASK)) << 3) + typedef struct { - A_UINT8 rateCode; - A_UINT8 flags; + A_RATECODE rateCode; + A_UINT8 flags; } RATE_CODE; typedef struct { - RATE_CODE ptx_rc; /* rate code, bw, chain mask sgi */ - A_UINT8 reserved[2]; - A_UINT32 flags; /* Encodes information such as excessive - retransmission, aggregate, some info - from .11 frame control, - STBC, LDPC, (SGI and Tx Chain Mask - are encoded in ptx_rc->flags field), - AMPDU truncation (BT/time based etc.), - RTS/CTS attempt */ - A_UINT32 num_enqued; /* # of MPDUs (for non-AMPDU 1) for this rate */ - A_UINT32 num_retries; /* Total # of transmission attempt for this rate */ - A_UINT32 num_failed; /* # of failed MPDUs in A-MPDU, 0 otherwise */ - A_UINT32 ack_rssi; /* ACK RSSI: b'7..b'0 avg RSSI across all chain */ - A_UINT32 time_stamp; /* ACK timestamp (helps determine age) */ - A_UINT32 is_probe; /* Valid if probing. Else, 0 */ - A_UINT32 ba_win_size; /* b'7..b0, block Ack Window size, b'31..b8 Resvd */ - A_UINT32 failed_ba_bmap_0_31; /* failed BA bitmap 0..31 */ - A_UINT32 failed_ba_bmap_32_63; /* failed BA bitmap 32..63 */ - A_UINT32 bmap_tried_0_31; /* enqued bitmap 0..31 */ - A_UINT32 bmap_tried_32_63; /* enqued bitmap 32..63 */ + RATE_CODE ptx_rc; /* rate code, bw, chain mask sgi */ + A_UINT8 reserved[2]; + A_UINT32 flags; /* Encodes information such as excessive + retransmission, aggregate, some info + from .11 frame control, + STBC, LDPC, (SGI and Tx Chain Mask + are encoded in ptx_rc->flags field), + AMPDU truncation (BT/time based etc.), + RTS/CTS attempt */ + A_UINT32 num_enqued; /* # of MPDUs (for non-AMPDU 1) for this rate */ + A_UINT32 num_retries; /* Total # of transmission attempt for this rate */ + A_UINT32 num_failed; /* # of failed MPDUs in A-MPDU, 0 otherwise */ + A_UINT32 ack_rssi; /* ACK RSSI: b'7..b'0 avg RSSI across all chain */ + A_UINT32 time_stamp ; /* ACK timestamp (helps determine age) */ + A_UINT32 is_probe; /* Valid if probing. Else, 0 */ + A_UINT32 ba_win_size; /* b'7..b0, block Ack Window size, b'31..b8 Resvd */ + A_UINT32 failed_ba_bmap_0_31; /* failed BA bitmap 0..31 */ + A_UINT32 failed_ba_bmap_32_63; /* failed BA bitmap 32..63 */ + A_UINT32 bmap_tried_0_31; /* enqued bitmap 0..31 */ + A_UINT32 bmap_tried_32_63; /* enqued bitmap 32..63 */ } RC_TX_DONE_PARAMS; -#define RC_SET_TX_DONE_INFO(_dst, _rc, _f, _nq, _nr, _nf, _rssi, _ts) \ - do { \ - (_dst).ptx_rc.rateCode = (_rc).rateCode; \ - (_dst).ptx_rc.flags = (_rc).flags; \ - (_dst).flags = (_f); \ - (_dst).num_enqued = (_nq); \ - (_dst).num_retries = (_nr); \ - (_dst).num_failed = (_nf); \ - (_dst).ack_rssi = (_rssi); \ - (_dst).time_stamp = (_ts); \ - } while (0) -#define RC_SET_TXBF_DONE_INFO(_dst, _f) \ - do { \ - (_dst).flags |= (_f); \ - } while (0) +#define RC_SET_TX_DONE_INFO(_dst, _rc, _f, _nq, _nr, _nf, _rssi, _ts) \ + do { \ + (_dst).ptx_rc.rateCode = (_rc).rateCode; \ + (_dst).ptx_rc.flags = (_rc).flags; \ + (_dst).flags = (_f); \ + (_dst).num_enqued = (_nq); \ + (_dst).num_retries = (_nr); \ + (_dst).num_failed = (_nf); \ + (_dst).ack_rssi = (_rssi); \ + (_dst).time_stamp = (_ts); \ + } while (0) + +#define RC_SET_TXBF_DONE_INFO(_dst, _f) \ + do { \ + (_dst).flags |= (_f); \ + } while (0) + +#endif /* !((NUM_SPATIAL_STREAM > 4) || SUPPORT_11AX) */ /* above N/A for Lithium */ /* NOTE: NUM_DYN_BW and NUM_SCHED_ENTRIES cannot be changed without breaking WMI Compatibility */ #define NUM_SCHED_ENTRIES 2 @@ -335,121 +344,131 @@ typedef struct { /* Some products only use 20/40/80; some use 20/40/80/160 */ #ifndef NUM_DYN_BW -/* default: support up through 80 MHz */ -#define NUM_DYN_BW 3 +#define NUM_DYN_BW 3 /* default: support up through 80 MHz */ #endif #define NUM_DYN_BW_MASK 0x3 #define PROD_SCHED_BW_ENTRIES (NUM_SCHED_ENTRIES * NUM_DYN_BW) -typedef A_UINT8 A_RATE; #if NUM_DYN_BW > 4 -/* Extend rate table module first*/ +/* Extend rate table module first */ #error "Extend rate table module first" #endif -#define MAX_PEERS 32 - -#if defined(CONFIG_AR900B_SUPPORT) || defined(AR900B) -typedef struct { - A_UINT32 psdu_len[NUM_DYN_BW * NUM_SCHED_ENTRIES]; - A_UINT16 flags[NUM_SCHED_ENTRIES][NUM_DYN_BW]; - A_RATE rix[NUM_SCHED_ENTRIES][NUM_DYN_BW]; - A_UINT8 tpc[NUM_SCHED_ENTRIES][NUM_DYN_BW]; - A_UINT32 antmask[NUM_SCHED_ENTRIES]; - A_UINT8 num_mpdus[NUM_DYN_BW * NUM_SCHED_ENTRIES]; - A_UINT16 txbf_cv_len; - A_UINT32 txbf_cv_ptr; - A_UINT16 txbf_flags; - A_UINT16 txbf_cv_size; - A_UINT8 txbf_nc_idx; - A_UINT8 tries[NUM_SCHED_ENTRIES]; - A_UINT8 bw_mask[NUM_SCHED_ENTRIES]; - A_UINT8 max_bw[NUM_SCHED_ENTRIES]; - A_UINT8 num_sched_entries; - A_UINT8 paprd_mask; - A_UINT8 rts_rix; - A_UINT8 sh_pream; - A_UINT8 min_spacing_1_4_us; - A_UINT8 fixed_delims; - A_UINT8 bw_in_service; - A_RATE probe_rix; - A_UINT8 num_valid_rates; - A_UINT8 rtscts_tpc; - A_UINT8 dd_profile; -} RC_TX_RATE_SCHEDULE; - -#else -typedef struct { - A_UINT32 psdu_len[NUM_DYN_BW * NUM_SCHED_ENTRIES]; - A_UINT16 flags[NUM_DYN_BW * NUM_SCHED_ENTRIES]; - A_RATE rix[NUM_DYN_BW * NUM_SCHED_ENTRIES]; - A_UINT8 tpc[NUM_DYN_BW * NUM_SCHED_ENTRIES]; - A_UINT8 num_mpdus[NUM_DYN_BW * NUM_SCHED_ENTRIES]; - A_UINT32 antmask[NUM_SCHED_ENTRIES]; - A_UINT32 txbf_cv_ptr; - A_UINT16 txbf_cv_len; - A_UINT8 tries[NUM_SCHED_ENTRIES]; - A_UINT8 num_valid_rates; - A_UINT8 paprd_mask; - A_UINT8 rts_rix; - A_UINT8 sh_pream; - A_UINT8 min_spacing_1_4_us; - A_UINT8 fixed_delims; - A_UINT8 bw_in_service; - A_RATE probe_rix; -} RC_TX_RATE_SCHEDULE; -#endif - -typedef struct { - A_UINT16 flags[NUM_DYN_BW * NUM_SCHED_ENTRIES]; - A_RATE rix[NUM_DYN_BW * NUM_SCHED_ENTRIES]; -#ifdef DYN_TPC_ENABLE - A_UINT8 tpc[NUM_DYN_BW * NUM_SCHED_ENTRIES]; -#endif -#ifdef SECTORED_ANTENNA - A_UINT32 antmask[NUM_SCHED_ENTRIES]; -#endif - A_UINT8 tries[NUM_SCHED_ENTRIES]; - A_UINT8 num_valid_rates; - A_UINT8 rts_rix; - A_UINT8 sh_pream; - A_UINT8 bw_in_service; - A_RATE probe_rix; - A_UINT8 dd_profile; -} RC_TX_RATE_INFO; +#define MAX_IBSS_PEERS 32 /* - * Temporarily continue to provide the WHAL_RC_INIT_RC_MASKS def in wlan_defsh + * RC_TX_RATE_SCHEDULE and RC_TX_RATE_INFO defs are used only in the target. + * (Host-based rate control is no longer applicable.) + * Maintain the defs in wlanfw_cmn for the sake of existing Rome / Helium + * targets, but for Lithium targets remove them from wlanfw_cmn and define + * them in a target-only location instead. + * SUPPORT_11AX is essentially used as a condition to identify Lithium targets. + * Some host drivers would also have SUPPORT_11AX defined, and thus would lose + * the definition of RC_TX_RATE_SCHEDULE and RC_TX_RATE_INFO, but that's okay + * because the host should have no references to these target-only data + * structures. + */ +#if !((NUM_SPATIAL_STREAM > 4) || SUPPORT_11AX) + #if defined(CONFIG_AR900B_SUPPORT) || defined(AR900B) + typedef struct{ + A_UINT32 psdu_len[NUM_DYN_BW * NUM_SCHED_ENTRIES]; + A_UINT16 flags[NUM_SCHED_ENTRIES][NUM_DYN_BW]; + A_RATE rix[NUM_SCHED_ENTRIES][NUM_DYN_BW]; + A_UINT8 tpc[NUM_SCHED_ENTRIES][NUM_DYN_BW]; + A_UINT32 antmask[NUM_SCHED_ENTRIES]; + A_UINT8 num_mpdus[NUM_DYN_BW * NUM_SCHED_ENTRIES]; + A_UINT16 txbf_cv_len; + A_UINT32 txbf_cv_ptr; + A_UINT16 txbf_flags; + A_UINT16 txbf_cv_size; + A_UINT8 txbf_nc_idx; + A_UINT8 tries[NUM_SCHED_ENTRIES]; + A_UINT8 bw_mask[NUM_SCHED_ENTRIES]; + A_UINT8 max_bw[NUM_SCHED_ENTRIES]; + A_UINT8 num_sched_entries; + A_UINT8 paprd_mask; + A_RATE rts_rix; + A_UINT8 sh_pream; + A_UINT8 min_spacing_1_4_us; + A_UINT8 fixed_delims; + A_UINT8 bw_in_service; + A_RATE probe_rix; + A_UINT8 num_valid_rates; + A_UINT8 rtscts_tpc; + A_UINT8 dd_profile; + } RC_TX_RATE_SCHEDULE; + #else + typedef struct{ + A_UINT32 psdu_len[NUM_DYN_BW * NUM_SCHED_ENTRIES]; + A_UINT16 flags[NUM_DYN_BW * NUM_SCHED_ENTRIES]; + A_RATE rix[NUM_DYN_BW * NUM_SCHED_ENTRIES]; + A_UINT8 tpc[NUM_DYN_BW * NUM_SCHED_ENTRIES]; + A_UINT8 num_mpdus[NUM_DYN_BW * NUM_SCHED_ENTRIES]; + A_UINT32 antmask[NUM_SCHED_ENTRIES]; + A_UINT32 txbf_cv_ptr; + A_UINT16 txbf_cv_len; + A_UINT8 tries[NUM_SCHED_ENTRIES]; + A_UINT8 num_valid_rates; + A_UINT8 paprd_mask; + A_RATE rts_rix; + A_UINT8 sh_pream; + A_UINT8 min_spacing_1_4_us; + A_UINT8 fixed_delims; + A_UINT8 bw_in_service; + A_RATE probe_rix; + } RC_TX_RATE_SCHEDULE; + #endif + + typedef struct{ + A_UINT16 flags[NUM_DYN_BW * NUM_SCHED_ENTRIES]; + A_RATE rix[NUM_DYN_BW * NUM_SCHED_ENTRIES]; + #ifdef DYN_TPC_ENABLE + A_UINT8 tpc[NUM_DYN_BW * NUM_SCHED_ENTRIES]; + #endif + #ifdef SECTORED_ANTENNA + A_UINT32 antmask[NUM_SCHED_ENTRIES]; + #endif + A_UINT8 tries[NUM_SCHED_ENTRIES]; + A_UINT8 num_valid_rates; + A_RATE rts_rix; + A_UINT8 sh_pream; + A_UINT8 bw_in_service; + A_RATE probe_rix; + A_UINT8 dd_profile; + } RC_TX_RATE_INFO; +#endif /* !((NUM_SPATIAL_STREAM > 4) || SUPPORT_11AX) */ + +/* + * Temporarily continue to provide the WHAL_RC_INIT_RC_MASKS def in wlan_defs.h * for older targets. * The WHAL_RX_INIT_RC_MASKS macro def needs to be moved into ratectrl_11ac.h * for all targets, but until this is complete, the WHAL_RC_INIT_RC_MASKS def * will be maintained here in its old location. */ #if CONFIG_160MHZ_SUPPORT == 0 - -#define WHAL_RC_INIT_RC_MASKS(_rm) do { \ - _rm[WHAL_RC_MASK_IDX_NON_HT] = A_RATEMASK_OFDM_CCK; \ - _rm[WHAL_RC_MASK_IDX_HT_20] = A_RATEMASK_HT_20; \ - _rm[WHAL_RC_MASK_IDX_HT_40] = A_RATEMASK_HT_40; \ - _rm[WHAL_RC_MASK_IDX_VHT_20] = A_RATEMASK_VHT_20; \ - _rm[WHAL_RC_MASK_IDX_VHT_40] = A_RATEMASK_VHT_40; \ - _rm[WHAL_RC_MASK_IDX_VHT_80] = A_RATEMASK_VHT_80; \ -} while (0) +#define WHAL_RC_INIT_RC_MASKS(_rm) do { \ + _rm[WHAL_RC_MASK_IDX_NON_HT] = A_RATEMASK_OFDM_CCK; \ + _rm[WHAL_RC_MASK_IDX_HT_20] = A_RATEMASK_HT_20; \ + _rm[WHAL_RC_MASK_IDX_HT_40] = A_RATEMASK_HT_40; \ + _rm[WHAL_RC_MASK_IDX_VHT_20] = A_RATEMASK_VHT_20; \ + _rm[WHAL_RC_MASK_IDX_VHT_40] = A_RATEMASK_VHT_40; \ + _rm[WHAL_RC_MASK_IDX_VHT_80] = A_RATEMASK_VHT_80; \ + } while (0) #endif /** * strucutre describing host memory chunk. */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wlan_host_memory_chunk */ - /** id of the request that is passed up in service ready */ - A_UINT32 req_id; - /** the physical address the memory chunk */ - A_UINT32 ptr; - /** size of the chunk */ - A_UINT32 size; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wlan_host_memory_chunk */ + /** id of the request that is passed up in service ready */ + A_UINT32 req_id; + /** the physical address the memory chunk */ + A_UINT32 ptr; + /** size of the chunk */ + A_UINT32 size; } wlan_host_memory_chunk; #define NUM_UNITS_IS_NUM_VDEVS 0x1 @@ -462,33 +481,33 @@ typedef struct { * structure used by FW for requesting host memory */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMI_TLVTAG_STRUC_wlan_host_mem_req */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMI_TLVTAG_STRUC_wlan_host_mem_req */ - /** ID of the request */ - A_UINT32 req_id; - /** size of the of each unit */ - A_UINT32 unit_size; - /** - * flags to indicate that - * the number units is dependent - * on number of resources(num vdevs num peers .. etc) - */ - A_UINT32 num_unit_info; - /* - * actual number of units to allocate . if flags in the num_unit_info - * indicate that number of units is tied to number of a particular - * resource to allocate then num_units filed is set to 0 and host - * will derive the number units from number of the resources it is - * requesting. - */ - A_UINT32 num_units; + /** ID of the request */ + A_UINT32 req_id; + /** size of the of each unit */ + A_UINT32 unit_size; + /** + * flags to indicate that + * the number units is dependent + * on number of resources(num vdevs num peers .. etc) + */ + A_UINT32 num_unit_info; + /* + * actual number of units to allocate . if flags in the num_unit_info + * indicate that number of units is tied to number of a particular + * resource to allocate then num_units filed is set to 0 and host + * will derive the number units from number of the resources it is + * requesting. + */ + A_UINT32 num_units; } wlan_host_mem_req; typedef enum { - IGNORE_DTIM = 0x01, - NORMAL_DTIM = 0x02, - STICK_DTIM = 0x03, - AUTO_DTIM = 0x04, + IGNORE_DTIM = 0x01, + NORMAL_DTIM = 0x02, + STICK_DTIM = 0x03, + AUTO_DTIM = 0x04, } BEACON_DTIM_POLICY; /* During test it is observed that 6 * 400 = 2400 can @@ -517,166 +536,174 @@ typedef enum { * smart antenna = 50 */ #define MEMORY_REQ_FOR_PEER 800 - /* * NB: it is important to keep all the fields in the structure dword long * so that it is easy to handle the statistics in BE host. */ struct wlan_dbg_tx_stats { - /* Num HTT cookies queued to dispatch list */ - A_INT32 comp_queued; - /* Num HTT cookies dispatched */ - A_INT32 comp_delivered; - /* Num MSDU queued to WAL */ - A_INT32 msdu_enqued; - /* Num MPDU queue to WAL */ - A_INT32 mpdu_enqued; - /* Num MSDUs dropped by WMM limit */ - A_INT32 wmm_drop; - /* Num Local frames queued */ - A_INT32 local_enqued; - /* Num Local frames done */ - A_INT32 local_freed; - /* Num queued to HW */ - A_INT32 hw_queued; - /* Num PPDU reaped from HW */ - A_INT32 hw_reaped; - /* Num underruns */ - A_INT32 underrun; + /* Num HTT cookies queued to dispatch list */ + A_INT32 comp_queued; + /* Num HTT cookies dispatched */ + A_INT32 comp_delivered; + /* Num MSDU queued to WAL */ + A_INT32 msdu_enqued; + /* Num MPDU queue to WAL */ + A_INT32 mpdu_enqued; + /* Num MSDUs dropped by WMM limit */ + A_INT32 wmm_drop; + /* Num Local frames queued */ + A_INT32 local_enqued; + /* Num Local frames done */ + A_INT32 local_freed; + /* Num queued to HW */ + A_INT32 hw_queued; + /* Num PPDU reaped from HW */ + A_INT32 hw_reaped; + /* Num underruns */ + A_INT32 underrun; #if defined(AR900B) - /* HW Paused. */ - A_UINT32 hw_paused; + /* HW Paused. */ + A_UINT32 hw_paused; #endif - /* Num PPDUs cleaned up in TX abort */ - A_INT32 tx_abort; - /* Num MPDUs requed by SW */ - A_INT32 mpdus_requed; - /* excessive retries */ - A_UINT32 tx_ko; + /* Num PPDUs cleaned up in TX abort */ + A_INT32 tx_abort; + /* Num MPDUs requed by SW */ + A_INT32 mpdus_requed; + /* excessive retries */ + A_UINT32 tx_ko; #if defined(AR900B) - A_UINT32 tx_xretry; + A_UINT32 tx_xretry; #endif - /* data hw rate code */ - A_UINT32 data_rc; - /* Scheduler self triggers */ - A_UINT32 self_triggers; - /* frames dropped due to excessive sw retries */ - A_UINT32 sw_retry_failure; - /* illegal rate phy errors */ - A_UINT32 illgl_rate_phy_err; - /* wal pdev continous xretry */ - A_UINT32 pdev_cont_xretry; - /* wal pdev continous xretry */ - A_UINT32 pdev_tx_timeout; - /* wal pdev resets */ - A_UINT32 pdev_resets; - /* frames dropped due to non-availability of stateless TIDs */ - A_UINT32 stateless_tid_alloc_failure; - /* PhY/BB underrun */ - A_UINT32 phy_underrun; - /* MPDU is more than txop limit */ - A_UINT32 txop_ovf; + /* data hw rate code */ + A_UINT32 data_rc; + /* Scheduler self triggers */ + A_UINT32 self_triggers; + /* frames dropped due to excessive sw retries */ + A_UINT32 sw_retry_failure; + /* illegal rate phy errors */ + A_UINT32 illgl_rate_phy_err; + /* wal pdev continous xretry */ + A_UINT32 pdev_cont_xretry; + /* wal pdev continous xretry */ + A_UINT32 pdev_tx_timeout; + /* wal pdev resets */ + A_UINT32 pdev_resets; + /* frames dropped due to non-availability of stateless TIDs */ + A_UINT32 stateless_tid_alloc_failure; + /* PhY/BB underrun */ + A_UINT32 phy_underrun; + /* MPDU is more than txop limit */ + A_UINT32 txop_ovf; #if defined(AR900B) - /* Number of Sequences posted */ - A_UINT32 seq_posted; - /* Number of Sequences failed queueing */ - A_UINT32 seq_failed_queueing; - /* Number of Sequences completed */ - A_UINT32 seq_completed; - /* Number of Sequences restarted */ - A_UINT32 seq_restarted; - /* Number of MU Sequences posted */ - A_UINT32 mu_seq_posted; - /* Num MPDUs flushed by SW, HWPAUSED, SW TXABORT (Reset,channel change) */ - A_INT32 mpdus_sw_flush; - /* Num MPDUs filtered by HW, all filter condition (TTL expired) */ - A_INT32 mpdus_hw_filter; - /* Num MPDUs truncated by PDG (TXOP, TBTT, PPDU_duration based on rate, dyn_bw) */ - A_INT32 mpdus_truncated; - /* Num MPDUs that was tried but didn't receive ACK or BA */ - A_INT32 mpdus_ack_failed; - /* Num MPDUs that was dropped du to expiry. */ - A_INT32 mpdus_expired; - /* Num mc drops */ - /* A_UINT32 mc_drop; */ + /* Number of Sequences posted */ + A_UINT32 seq_posted; + /* Number of Sequences failed queueing */ + A_UINT32 seq_failed_queueing; + /* Number of Sequences completed */ + A_UINT32 seq_completed; + /* Number of Sequences restarted */ + A_UINT32 seq_restarted; + /* Number of MU Sequences posted */ + A_UINT32 mu_seq_posted; + /* Num MPDUs flushed by SW, HWPAUSED, SW TXABORT (Reset,channel change) */ + A_INT32 mpdus_sw_flush; + /* Num MPDUs filtered by HW, all filter condition (TTL expired) */ + A_INT32 mpdus_hw_filter; + /* Num MPDUs truncated by PDG (TXOP, TBTT, PPDU_duration based on rate, dyn_bw) */ + A_INT32 mpdus_truncated; + /* Num MPDUs that was tried but didn't receive ACK or BA */ + A_INT32 mpdus_ack_failed; + /* Num MPDUs that was dropped du to expiry. */ + A_INT32 mpdus_expired; #endif }; struct wlan_dbg_rx_stats { - /* Cnts any change in ring routing mid-ppdu */ - A_INT32 mid_ppdu_route_change; - /* Total number of statuses processed */ - A_INT32 status_rcvd; - /* Extra frags on rings 0-3 */ - A_INT32 r0_frags; - A_INT32 r1_frags; - A_INT32 r2_frags; - A_INT32 r3_frags; - /* MSDUs / MPDUs delivered to HTT */ - A_INT32 htt_msdus; - A_INT32 htt_mpdus; - /* MSDUs / MPDUs delivered to local stack */ - A_INT32 loc_msdus; - A_INT32 loc_mpdus; - /* AMSDUs that have more MSDUs than the status ring size */ - A_INT32 oversize_amsdu; - /* Number of PHY errors */ - A_INT32 phy_errs; - /* Number of PHY errors drops */ - A_INT32 phy_err_drop; - /* Number of mpdu errors - FCS, MIC, ENC etc. */ - A_INT32 mpdu_errs; + /* Cnts any change in ring routing mid-ppdu */ + A_INT32 mid_ppdu_route_change; + /* Total number of statuses processed */ + A_INT32 status_rcvd; + /* Extra frags on rings 0-3 */ + A_INT32 r0_frags; + A_INT32 r1_frags; + A_INT32 r2_frags; + A_INT32 r3_frags; + /* MSDUs / MPDUs delivered to HTT */ + A_INT32 htt_msdus; + A_INT32 htt_mpdus; + /* MSDUs / MPDUs delivered to local stack */ + A_INT32 loc_msdus; + A_INT32 loc_mpdus; + /* AMSDUs that have more MSDUs than the status ring size */ + A_INT32 oversize_amsdu; + /* Number of PHY errors */ + A_INT32 phy_errs; + /* Number of PHY errors drops */ + A_INT32 phy_err_drop; + /* Number of mpdu errors - FCS, MIC, ENC etc. */ + A_INT32 mpdu_errs; #if defined(AR900B) - /* Number of rx overflow errors. */ - A_INT32 rx_ovfl_errs; + /* Number of rx overflow errors. */ + A_INT32 rx_ovfl_errs; #endif }; + struct wlan_dbg_mem_stats { - A_UINT32 iram_free_size; - A_UINT32 dram_free_size; + A_UINT32 iram_free_size; + A_UINT32 dram_free_size; }; struct wlan_dbg_peer_stats { - A_INT32 dummy; /* REMOVE THIS ONCE REAL PEER STAT COUNTERS ARE ADDED */ + A_INT32 dummy; /* REMOVE THIS ONCE REAL PEER STAT COUNTERS ARE ADDED */ }; typedef struct { - A_UINT32 mcs[10]; - A_UINT32 sgi[10]; - A_UINT32 nss[4]; - A_UINT32 nsts; - A_UINT32 stbc[10]; - A_UINT32 bw[3]; - A_UINT32 pream[6]; - A_UINT32 ldpc; - A_UINT32 txbf; - A_UINT32 mgmt_rssi; - A_UINT32 data_rssi; - A_UINT32 rssi_chain0; - A_UINT32 rssi_chain1; - A_UINT32 rssi_chain2; + A_UINT32 mcs[10]; + A_UINT32 sgi[10]; + A_UINT32 nss[4]; + A_UINT32 nsts; + A_UINT32 stbc[10]; + A_UINT32 bw[3]; + A_UINT32 pream[6]; + A_UINT32 ldpc; + A_UINT32 txbf; + A_UINT32 mgmt_rssi; + A_UINT32 data_rssi; + A_UINT32 rssi_chain0; + A_UINT32 rssi_chain1; + A_UINT32 rssi_chain2; +/* + * TEMPORARY: leave rssi_chain3 in place for AR900B builds until code using + * rssi_chain3 has been converted to use wlan_dbg_rx_rate_info_v2_t. + * At that time, this rssi_chain3 field will be deleted. + */ #if defined(AR900B) A_UINT32 rssi_chain3; #endif -} wlan_dbg_rx_rate_info_t; +} wlan_dbg_rx_rate_info_t ; typedef struct { - A_UINT32 mcs[10]; - A_UINT32 sgi[10]; + A_UINT32 mcs[10]; + A_UINT32 sgi[10]; +/* + * TEMPORARY: leave nss conditionally defined, until all code that + * requires nss[4] is converted to use wlan_dbg_tx_rate_info_v2_t. + * At that time, this nss array will be made length = 3 unconditionally. + */ #if defined(CONFIG_AR900B_SUPPORT) || defined(AR900B) - A_UINT32 nss[4]; + A_UINT32 nss[4]; #else - A_UINT32 nss[3]; + A_UINT32 nss[3]; #endif - A_UINT32 stbc[10]; - A_UINT32 bw[3]; - A_UINT32 pream[4]; - A_UINT32 ldpc; - A_UINT32 rts_cnt; - A_UINT32 ack_rssi; + A_UINT32 stbc[10]; + A_UINT32 bw[3]; + A_UINT32 pream[4]; + A_UINT32 ldpc; + A_UINT32 rts_cnt; + A_UINT32 ack_rssi; } wlan_dbg_tx_rate_info_t ; #define WLAN_MAX_MCS 10 @@ -684,7 +711,7 @@ typedef struct { typedef struct { A_UINT32 mcs[WLAN_MAX_MCS]; A_UINT32 sgi[WLAN_MAX_MCS]; - A_UINT32 nss[MAX_SPATIAL_STREAM_ANY]; + A_UINT32 nss[MAX_SPATIAL_STREAM_ANY_V2]; A_UINT32 nsts; A_UINT32 stbc[WLAN_MAX_MCS]; A_UINT32 bw[NUM_DYN_BW_MAX]; @@ -698,12 +725,12 @@ typedef struct { A_UINT32 rssi_chain2; A_UINT32 rssi_chain3; A_UINT32 reserved[8]; -} wlan_dbg_rx_rate_info_v2_t ; +} wlan_dbg_rx_rate_info_v2_t; typedef struct { A_UINT32 mcs[WLAN_MAX_MCS]; A_UINT32 sgi[WLAN_MAX_MCS]; - A_UINT32 nss[MAX_SPATIAL_STREAM_ANY]; + A_UINT32 nss[MAX_SPATIAL_STREAM_ANY_V2]; A_UINT32 stbc[WLAN_MAX_MCS]; A_UINT32 bw[NUM_DYN_BW_MAX]; A_UINT32 pream[4]; @@ -711,7 +738,39 @@ typedef struct { A_UINT32 rts_cnt; A_UINT32 ack_rssi; A_UINT32 reserved[8]; -} wlan_dbg_tx_rate_info_v2_t ; +} wlan_dbg_tx_rate_info_v2_t; + +typedef struct { + A_UINT32 mcs[WLAN_MAX_MCS]; + A_UINT32 sgi[WLAN_MAX_MCS]; + A_UINT32 nss[MAX_SPATIAL_STREAM_ANY_V3]; + A_UINT32 nsts; + A_UINT32 stbc[WLAN_MAX_MCS]; + A_UINT32 bw[NUM_DYN_BW_MAX]; + A_UINT32 pream[6]; + A_UINT32 ldpc; + A_UINT32 txbf; + A_UINT32 mgmt_rssi; + A_UINT32 data_rssi; + A_UINT32 rssi_chain0; + A_UINT32 rssi_chain1; + A_UINT32 rssi_chain2; + A_UINT32 rssi_chain3; + A_UINT32 reserved[8]; +} wlan_dbg_rx_rate_info_v3_t; + +typedef struct { + A_UINT32 mcs[WLAN_MAX_MCS]; + A_UINT32 sgi[WLAN_MAX_MCS]; + A_UINT32 nss[MAX_SPATIAL_STREAM_ANY_V3]; + A_UINT32 stbc[WLAN_MAX_MCS]; + A_UINT32 bw[NUM_DYN_BW_MAX]; + A_UINT32 pream[4]; + A_UINT32 ldpc; + A_UINT32 rts_cnt; + A_UINT32 ack_rssi; + A_UINT32 reserved[8]; +} wlan_dbg_tx_rate_info_v3_t; #define WHAL_DBG_PHY_ERR_MAXCNT 18 #define WHAL_DBG_SIFS_STATUS_MAXCNT 8 @@ -721,33 +780,33 @@ typedef struct { #define WHAL_DBG_FLUSH_REASON_MAXCNT 40 typedef enum { - WIFI_URRN_STATS_FIRST_PKT, - WIFI_URRN_STATS_BETWEEN_MPDU, - WIFI_URRN_STATS_WITHIN_MPDU, - WHAL_MAX_URRN_STATS + WIFI_URRN_STATS_FIRST_PKT, + WIFI_URRN_STATS_BETWEEN_MPDU, + WIFI_URRN_STATS_WITHIN_MPDU, + WHAL_MAX_URRN_STATS } wifi_urrn_type_t; typedef struct wlan_dbg_txbf_snd_stats { - A_UINT32 cbf_20[4]; - A_UINT32 cbf_40[4]; - A_UINT32 cbf_80[4]; - A_UINT32 sounding[9]; - A_UINT32 cbf_160[4]; + A_UINT32 cbf_20[4]; + A_UINT32 cbf_40[4]; + A_UINT32 cbf_80[4]; + A_UINT32 sounding[9]; + A_UINT32 cbf_160[4]; } wlan_dbg_txbf_snd_stats_t; typedef struct wlan_dbg_wifi2_error_stats { - A_UINT32 urrn_stats[WHAL_MAX_URRN_STATS]; - A_UINT32 flush_errs[WHAL_DBG_FLUSH_REASON_MAXCNT]; - A_UINT32 schd_stall_errs[WHAL_DBG_CMD_STALL_ERR_MAXCNT]; - A_UINT32 schd_cmd_result[WHAL_DBG_CMD_RESULT_MAXCNT]; - A_UINT32 sifs_status[WHAL_DBG_SIFS_STATUS_MAXCNT]; - A_UINT8 phy_errs[WHAL_DBG_PHY_ERR_MAXCNT]; - A_UINT32 rx_rate_inval; + A_UINT32 urrn_stats[WHAL_MAX_URRN_STATS]; + A_UINT32 flush_errs[WHAL_DBG_FLUSH_REASON_MAXCNT]; + A_UINT32 schd_stall_errs[WHAL_DBG_CMD_STALL_ERR_MAXCNT]; + A_UINT32 schd_cmd_result[WHAL_DBG_CMD_RESULT_MAXCNT]; + A_UINT32 sifs_status[WHAL_DBG_SIFS_STATUS_MAXCNT]; + A_UINT8 phy_errs[WHAL_DBG_PHY_ERR_MAXCNT]; + A_UINT32 rx_rate_inval; } wlan_dbg_wifi2_error_stats_t; typedef struct wlan_dbg_wifi2_error2_stats { - A_UINT32 schd_errs[WHAL_DBG_CMD_STALL_ERR_MAXCNT]; - A_UINT32 sifs_errs[WHAL_DBG_SIFS_ERR_MAXCNT]; + A_UINT32 schd_errs[WHAL_DBG_CMD_STALL_ERR_MAXCNT]; + A_UINT32 sifs_errs[WHAL_DBG_SIFS_ERR_MAXCNT]; } wlan_dbg_wifi2_error2_stats_t; #define WLAN_DBG_STATS_SIZE_TXBF_VHT 10 @@ -756,66 +815,68 @@ typedef struct wlan_dbg_wifi2_error2_stats { #define WLAN_DBG_STATS_SIZE_TXBF_CCK 7 typedef struct wlan_dbg_txbf_data_stats { - A_UINT32 tx_txbf_vht[WLAN_DBG_STATS_SIZE_TXBF_VHT]; - A_UINT32 rx_txbf_vht[WLAN_DBG_STATS_SIZE_TXBF_VHT]; - A_UINT32 tx_txbf_ht[WLAN_DBG_STATS_SIZE_TXBF_HT]; - A_UINT32 tx_txbf_ofdm[WLAN_DBG_STATS_SIZE_TXBF_OFDM]; - A_UINT32 tx_txbf_cck[WLAN_DBG_STATS_SIZE_TXBF_CCK]; + A_UINT32 tx_txbf_vht[WLAN_DBG_STATS_SIZE_TXBF_VHT]; + A_UINT32 rx_txbf_vht[WLAN_DBG_STATS_SIZE_TXBF_VHT]; + A_UINT32 tx_txbf_ht[WLAN_DBG_STATS_SIZE_TXBF_HT]; + A_UINT32 tx_txbf_ofdm[WLAN_DBG_STATS_SIZE_TXBF_OFDM]; + A_UINT32 tx_txbf_cck[WLAN_DBG_STATS_SIZE_TXBF_CCK]; } wlan_dbg_txbf_data_stats_t; struct wlan_dbg_tx_mu_stats { - A_UINT32 mu_sch_nusers_2; - A_UINT32 mu_sch_nusers_3; - A_UINT32 mu_mpdus_queued_usr[4]; - A_UINT32 mu_mpdus_tried_usr[4]; - A_UINT32 mu_mpdus_failed_usr[4]; - A_UINT32 mu_mpdus_requeued_usr[4]; - A_UINT32 mu_err_no_ba_usr[4]; - A_UINT32 mu_mpdu_underrun_usr[4]; - A_UINT32 mu_ampdu_underrun_usr[4]; + A_UINT32 mu_sch_nusers_2; + A_UINT32 mu_sch_nusers_3; + A_UINT32 mu_mpdus_queued_usr[4]; + A_UINT32 mu_mpdus_tried_usr[4]; + A_UINT32 mu_mpdus_failed_usr[4]; + A_UINT32 mu_mpdus_requeued_usr[4]; + A_UINT32 mu_err_no_ba_usr[4]; + A_UINT32 mu_mpdu_underrun_usr[4]; + A_UINT32 mu_ampdu_underrun_usr[4]; }; struct wlan_dbg_tx_selfgen_stats { - A_UINT32 su_ndpa; - A_UINT32 su_ndp; - A_UINT32 mu_ndpa; - A_UINT32 mu_ndp; - A_UINT32 mu_brpoll_1; - A_UINT32 mu_brpoll_2; - A_UINT32 mu_bar_1; - A_UINT32 mu_bar_2; - A_UINT32 cts_burst; - A_UINT32 su_ndp_err; - A_UINT32 su_ndpa_err; - A_UINT32 mu_ndp_err; - A_UINT32 mu_brp1_err; - A_UINT32 mu_brp2_err; + A_UINT32 su_ndpa; + A_UINT32 su_ndp; + A_UINT32 mu_ndpa; + A_UINT32 mu_ndp; + A_UINT32 mu_brpoll_1; + A_UINT32 mu_brpoll_2; + A_UINT32 mu_bar_1; + A_UINT32 mu_bar_2; + A_UINT32 cts_burst; + A_UINT32 su_ndp_err; + A_UINT32 su_ndpa_err; + A_UINT32 mu_ndp_err; + A_UINT32 mu_brp1_err; + A_UINT32 mu_brp2_err; }; typedef struct wlan_dbg_sifs_resp_stats { - A_UINT32 ps_poll_trigger; /* num ps-poll trigger frames */ - A_UINT32 uapsd_trigger; /* num uapsd trigger frames */ - A_UINT32 qb_data_trigger[2]; /* num data trigger frames; idx 0: explicit and idx 1: implicit */ - A_UINT32 qb_bar_trigger[2]; /* num bar trigger frames; idx 0: explicit and idx 1: implicit */ - A_UINT32 sifs_resp_data; /* num ppdus transmitted at SIFS interval */ - A_UINT32 sifs_resp_err; /* num ppdus failed to meet SIFS resp timing */ + A_UINT32 ps_poll_trigger; /* num ps-poll trigger frames */ + A_UINT32 uapsd_trigger; /* num uapsd trigger frames */ + A_UINT32 qb_data_trigger[2]; /* num data trigger frames; idx 0: explicit and idx 1: implicit */ + A_UINT32 qb_bar_trigger[2]; /* num bar trigger frames; idx 0: explicit and idx 1: implicit */ + A_UINT32 sifs_resp_data; /* num ppdus transmitted at SIFS interval */ + A_UINT32 sifs_resp_err; /* num ppdus failed to meet SIFS resp timing */ } wlan_dgb_sifs_resp_stats_t; + + /** wlan_dbg_wifi2_error_stats_t is not grouped with the * following structure as it is allocated differently and only * belongs to whal */ typedef struct wlan_dbg_stats_wifi2 { - wlan_dbg_txbf_snd_stats_t txbf_snd_info; - wlan_dbg_txbf_data_stats_t txbf_data_info; - struct wlan_dbg_tx_selfgen_stats tx_selfgen; - struct wlan_dbg_tx_mu_stats tx_mu; - wlan_dgb_sifs_resp_stats_t sifs_resp_info; + wlan_dbg_txbf_snd_stats_t txbf_snd_info; + wlan_dbg_txbf_data_stats_t txbf_data_info; + struct wlan_dbg_tx_selfgen_stats tx_selfgen; + struct wlan_dbg_tx_mu_stats tx_mu; + wlan_dgb_sifs_resp_stats_t sifs_resp_info; } wlan_dbg_wifi2_stats_t; typedef struct { - wlan_dbg_rx_rate_info_t rx_phy_info; - wlan_dbg_tx_rate_info_t tx_rate_info; + wlan_dbg_rx_rate_info_t rx_phy_info; + wlan_dbg_tx_rate_info_t tx_rate_info; } wlan_dbg_rate_info_t; typedef struct { @@ -824,35 +885,26 @@ typedef struct { } wlan_dbg_rate_info_v2_t; struct wlan_dbg_stats { - struct wlan_dbg_tx_stats tx; - struct wlan_dbg_rx_stats rx; + struct wlan_dbg_tx_stats tx; + struct wlan_dbg_rx_stats rx; #if defined(AR900B) - struct wlan_dbg_mem_stats mem; + struct wlan_dbg_mem_stats mem; #endif - struct wlan_dbg_peer_stats peer; + struct wlan_dbg_peer_stats peer; }; #define DBG_STATS_MAX_HWQ_NUM 10 #define DBG_STATS_MAX_TID_NUM 20 #define DBG_STATS_MAX_CONG_NUM 16 struct wlan_dbg_txq_stats { - A_UINT16 num_pkts_queued[DBG_STATS_MAX_HWQ_NUM]; - A_UINT16 tid_hw_qdepth[DBG_STATS_MAX_TID_NUM]; /* WAL_MAX_TID is 20 */ - A_UINT16 tid_sw_qdepth[DBG_STATS_MAX_TID_NUM]; /* WAL_MAX_TID is 20 */ + A_UINT16 num_pkts_queued[DBG_STATS_MAX_HWQ_NUM]; + A_UINT16 tid_hw_qdepth[DBG_STATS_MAX_TID_NUM]; /* WAL_MAX_TID is 20 */ + A_UINT16 tid_sw_qdepth[DBG_STATS_MAX_TID_NUM]; /* WAL_MAX_TID is 20 */ }; -struct wlan_dbg_tidq_stats { - A_UINT32 wlan_dbg_tid_txq_status; - struct wlan_dbg_txq_stats txq_st; +struct wlan_dbg_tidq_stats{ + A_UINT32 wlan_dbg_tid_txq_status; + struct wlan_dbg_txq_stats txq_st; }; -typedef enum { - WHAL_REG_EXT_FCC_MIDBAND = 0, - WHAL_REG_EXT_JAPAN_MIDBAND = 1, - WHAL_REG_EXT_FCC_DFS_HT40 = 2, - WHAL_REG_EXT_JAPAN_NONDFS_HT40 = 3, - WHAL_REG_EXT_JAPAN_DFS_HT40 = 4, - WHAL_REG_EXT_FCC_CH_144 = 5, -} WHAL_REG_EXT_BITMAP; - #endif /* __WLANDEFS_H__ */ diff --git a/fw/wmi.h b/fw/wmi.h index 6d760c150ff5..b4da94c4ef83 100644 --- a/fw/wmi.h +++ b/fw/wmi.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004-2010, 2013-2014, 2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2010-2016 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -50,6 +50,7 @@ extern "C" { #endif + #define HTC_PROTOCOL_VERSION 0x0002 #define WMI_PROTOCOL_VERSION 0x0002 @@ -57,38 +58,37 @@ extern "C" { #define WMI_MODE_MAX 8 #define WMI_MAX_RATE_MASK 6 + PREPACK struct host_app_area_s { - A_UINT32 wmi_protocol_ver; + A_UINT32 wmi_protocol_ver; } POSTPACK; + #undef MS -#define MS(_v, _f) (((_v) & _f ## _MASK) >> _f ## _LSB) +#define MS(_v, _f) (((_v) & _f##_MASK) >> _f##_LSB) #undef SM -#define SM(_v, _f) (((_v) << _f ## _LSB) & _f ## _MASK) +#define SM(_v, _f) (((_v) << _f##_LSB) & _f##_MASK) #undef WO -#define WO(_f) ((_f ## _OFFSET) >> 2) +#define WO(_f) ((_f##_OFFSET) >> 2) #undef GET_FIELD #define GET_FIELD(_addr, _f) MS(*((A_UINT32 *)(_addr) + WO(_f)), _f) #undef SET_FIELD #define SET_FIELD(_addr, _f, _val) \ - (*((A_UINT32 *)(_addr) + WO(_f)) = \ - (*((A_UINT32 *)(_addr) + WO(_f)) & ~_f ## _MASK) | SM(_val, _f)) + (*((A_UINT32 *)(_addr) + WO(_f)) = \ + (*((A_UINT32 *)(_addr) + WO(_f)) & ~_f##_MASK) | SM(_val, _f)) #define WMI_GET_FIELD(_msg_buf, _msg_type, _f) \ - GET_FIELD(_msg_buf, _msg_type ## _ ## _f) + GET_FIELD(_msg_buf, _msg_type ## _ ## _f) #define WMI_SET_FIELD(_msg_buf, _msg_type, _f, _val) \ - SET_FIELD(_msg_buf, _msg_type ## _ ## _f, _val) + SET_FIELD(_msg_buf, _msg_type ## _ ## _f, _val) -/* TYPO: leave incorrect name as an alias for the correct name */ -#define WMI_EP_APASS WMI_EP_APSS -/* WLAN driver running on apps processor sub-system */ -#define WMI_EP_APSS 0x0 +#define WMI_EP_APASS WMI_EP_APSS /* TYPO: leave incorrect name as an alias for the correct name */ +#define WMI_EP_APSS 0x0 /* WLAN driver running on apps processor sub-system */ #define WMI_EP_LPASS 0x1 #define WMI_EP_SENSOR 0x2 -/* WLAN driver running on NANO Hub */ -#define WMI_EP_NANOHUB 0x3 +#define WMI_EP_NANOHUB 0x3 /* WLAN driver running on NANO Hub */ #define WMI_EP_MODEM 0x4 #define WMI_EP_LOCATION 0x5 @@ -96,35 +96,37 @@ PREPACK struct host_app_area_s { * Control Path */ typedef PREPACK struct { - A_UINT32 commandId : 24, reserved : 2, /* used for WMI endpoint ID */ - plt_priv : 6; /* platform private */ -} POSTPACK WMI_CMD_HDR; /* used for commands and events */ + A_UINT32 commandId : 24, + reserved : 2, /* used for WMI endpoint ID */ + plt_priv : 6; /* platform private */ +} POSTPACK WMI_CMD_HDR; /* used for commands and events */ #define WMI_CMD_HDR_COMMANDID_LSB 0 #define WMI_CMD_HDR_COMMANDID_MASK 0x00ffffff #define WMI_CMD_HDR_COMMANDID_OFFSET 0x00000000 -#define WMI_CMD_HDR_WMI_ENDPOINTID_MASK 0x03000000 -#define WMI_CMD_HDR_WMI_ENDPOINTID_OFFSET 24 -#define WMI_CMD_HDR_PLT_PRIV_LSB 24 -#define WMI_CMD_HDR_PLT_PRIV_MASK 0xff000000 -#define WMI_CMD_HDR_PLT_PRIV_OFFSET 0x00000000 +#define WMI_CMD_HDR_WMI_ENDPOINTID_MASK 0x03000000 +#define WMI_CMD_HDR_WMI_ENDPOINTID_OFFSET 24 +#define WMI_CMD_HDR_PLT_PRIV_LSB 24 +#define WMI_CMD_HDR_PLT_PRIV_MASK 0xff000000 +#define WMI_CMD_HDR_PLT_PRIV_OFFSET 0x00000000 /* * List of Commnands */ typedef enum { - WMI_EXTENSION_CMDID, /* used in wmi_svc.c / * Non-wireless extensions * / */ - WMI_IGNORE_CMDID, /* used in wlan_wmi.c */ + WMI_EXTENSION_CMDID, //used in wmi_svc.c /* Non-wireless extensions */ + WMI_IGNORE_CMDID, //used in wlan_wmi.c } WMI_COMMAND_ID; + typedef enum { - NONE_CRYPT = 0x01, - WEP_CRYPT = 0x02, - TKIP_CRYPT = 0x04, - AES_CRYPT = 0x08, + NONE_CRYPT = 0x01, + WEP_CRYPT = 0x02, + TKIP_CRYPT = 0x04, + AES_CRYPT = 0x08, #ifdef WAPI_ENABLE - WAPI_CRYPT = 0x10, -#endif /*WAPI_ENABLE */ + WAPI_CRYPT = 0x10, +#endif /*WAPI_ENABLE*/ } CRYPTO_TYPE; #define WMI_MAX_SSID_LEN 32 @@ -134,63 +136,63 @@ typedef enum { */ #define WMI_PMK_LEN 32 + /* * WMI_ADD_CIPHER_KEY_CMDID */ typedef enum { - PAIRWISE_USAGE = 0x00, - GROUP_USAGE = 0x01, - TX_USAGE = 0x02, /* default Tx Key - Static WEP only */ + PAIRWISE_USAGE = 0x00, + GROUP_USAGE = 0x01, + TX_USAGE = 0x02, /* default Tx Key - Static WEP only */ } KEY_USAGE; - /* * List of Events (target to host) */ typedef enum { - WMI_EXTENSION_EVENTID, /* wmi_profhook.c and umac_wmi_events.c */ + WMI_EXTENSION_EVENTID //wmi_profhook.c and umac_wmi_events.c } WMI_EVENT_ID; typedef enum { - WMI_11A_CAPABILITY = 1, - WMI_11G_CAPABILITY = 2, - WMI_11AG_CAPABILITY = 3, - WMI_11NA_CAPABILITY = 4, - WMI_11NG_CAPABILITY = 5, - WMI_11NAG_CAPABILITY = 6, - WMI_11AC_CAPABILITY = 7, - WMI_11AX_CAPABILITY = 8, - /* END CAPABILITY */ - WMI_11N_CAPABILITY_OFFSET = - (WMI_11NA_CAPABILITY - WMI_11A_CAPABILITY), + WMI_11A_CAPABILITY = 1, + WMI_11G_CAPABILITY = 2, + WMI_11AG_CAPABILITY = 3, + WMI_11NA_CAPABILITY = 4, + WMI_11NG_CAPABILITY = 5, + WMI_11NAG_CAPABILITY = 6, + WMI_11AC_CAPABILITY = 7, + WMI_11AX_CAPABILITY = 8, + // END CAPABILITY + WMI_11N_CAPABILITY_OFFSET = (WMI_11NA_CAPABILITY - WMI_11A_CAPABILITY), } WMI_PHY_CAPABILITY; + /* Deprectated, need clean up */ #define WMI_MAX_RX_META_SZ (12) typedef PREPACK struct { - A_INT8 rssi; - A_UINT8 info; /* usage of 'info' field(8-bit): - * b1:b0 - WMI_MSG_TYPE - * b4:b3:b2 - UP(tid) - * b5 - Used in AP mode. More-data in tx dir, PS in rx. - * b7:b6 - Dot3 header(0), - * Dot11 Header(1), - * ACL data(2) - */ + A_INT8 rssi; + A_UINT8 info; /* usage of 'info' field(8-bit): + * b1:b0 - WMI_MSG_TYPE + * b4:b3:b2 - UP(tid) + * b5 - Used in AP mode. More-data in tx dir, PS in rx. + * b7:b6 - Dot3 header(0), + * Dot11 Header(1), + * ACL data(2) + */ - A_UINT16 info2; /* usage of 'info2' field(16-bit): - * b11:b0 - seq_no - * b12 - A-MSDU? - * b15:b13 - META_DATA_VERSION 0 - 7 - */ - A_UINT16 info3; /* b3:b2:b1:b0 - device id - * b4 - Used in AP mode. uAPSD trigger in rx, EOSP in tx - * b7:b5 - unused? - * b15:b8 - pad before data start(irrespective of meta version) - */ + A_UINT16 info2; /* usage of 'info2' field(16-bit): + * b11:b0 - seq_no + * b12 - A-MSDU? + * b15:b13 - META_DATA_VERSION 0 - 7 + */ + A_UINT16 info3; /* b3:b2:b1:b0 - device id + * b4 - Used in AP mode. uAPSD trigger in rx, EOSP in tx + * b7:b5 - unused? + * b15:b8 - pad before data start(irrespective of meta version) + */ } POSTPACK WMI_DATA_HDR; - #ifdef __cplusplus } #endif + #endif /* _WMI_H_ */ diff --git a/fw/wmi_services.h b/fw/wmi_services.h index 6d1129776cc0..307034325e53 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -25,273 +25,186 @@ * to the Linux Foundation. */ -/** - * This file defines WMI services bitmap and the set of WMI services . - * defines macrso to set/clear/get different service bits from the bitmap. - * the service bitmap is sent up to the host via WMI_READY command. - * - */ - #ifndef _WMI_SERVICES_H_ #define _WMI_SERVICES_H_ + #ifdef __cplusplus extern "C" { #endif -typedef enum { - WMI_SERVICE_BEACON_OFFLOAD = 0, /* beacon offload */ - WMI_SERVICE_SCAN_OFFLOAD = 1, /* scan offload */ - WMI_SERVICE_ROAM_SCAN_OFFLOAD = 2, /* roam scan offload */ - WMI_SERVICE_BCN_MISS_OFFLOAD = 3, /* beacon miss offload */ - /* fake sleep + basic power save */ - WMI_SERVICE_STA_PWRSAVE = 4, - WMI_SERVICE_STA_ADVANCED_PWRSAVE = 5, /* uapsd, pspoll, force sleep */ - WMI_SERVICE_AP_UAPSD = 6, /* uapsd on AP */ - WMI_SERVICE_AP_DFS = 7, /* DFS on AP */ - WMI_SERVICE_11AC = 8, /* supports 11ac */ - /* Supports triggering ADDBA/DELBA from host*/ - WMI_SERVICE_BLOCKACK = 9, - WMI_SERVICE_PHYERR = 10, /* PHY error */ - WMI_SERVICE_BCN_FILTER = 11, /* Beacon filter support */ - /* RTT (round trip time) support */ - WMI_SERVICE_RTT = 12, - WMI_SERVICE_WOW = 13, /* WOW Support */ - WMI_SERVICE_RATECTRL_CACHE = 14, /* Rate-control caching */ - WMI_SERVICE_IRAM_TIDS = 15, /* TIDs in IRAM */ - /* ARP NS Offload support for STA vdev */ - WMI_SERVICE_ARPNS_OFFLOAD = 16, - /* Network list offload service */ - WMI_SERVICE_NLO = 17, - WMI_SERVICE_GTK_OFFLOAD = 18, /* GTK offload */ - WMI_SERVICE_SCAN_SCH = 19, /* Scan Scheduler Service */ - WMI_SERVICE_CSA_OFFLOAD = 20, /* CSA offload service */ - WMI_SERVICE_CHATTER = 21, /* Chatter service */ - /* FW report freq range to avoid */ - WMI_SERVICE_COEX_FREQAVOID = 22, - WMI_SERVICE_PACKET_POWER_SAVE = 23, /* packet power save service */ - /* Service to test the firmware recovery mechanism */ - WMI_SERVICE_FORCE_FW_HANG = 24, - WMI_SERVICE_GPIO = 25, /* GPIO service */ - /* Modulated DTIM support */ - WMI_SERVICE_STA_DTIM_PS_MODULATED_DTIM = 26, - /** - * Basic version of station UAPSD AC Trigger Generation Method with - * variable tigger periods (service, delay, and suspend intervals) - */ - WMI_STA_UAPSD_BASIC_AUTO_TRIG = 27, - /** - * Station UAPSD AC Trigger Generation Method with variable - * trigger periods (service, delay, and suspend intervals) - */ - WMI_STA_UAPSD_VAR_AUTO_TRIG = 28, - /* Serivce to support the STA KEEP ALIVE mechanism */ - WMI_SERVICE_STA_KEEP_ALIVE = 29, - /* Packet type for TX encapsulation */ - WMI_SERVICE_TX_ENCAP = 30, - /* detect out-of-sync sleeping stations */ - WMI_SERVICE_AP_PS_DETECT_OUT_OF_SYNC = 31, - WMI_SERVICE_EARLY_RX = 32, /* adaptive early-rx feature */ - WMI_SERVICE_STA_SMPS = 33, /* STA MIMO-PS */ - WMI_SERVICE_FWTEST = 34, /* Firmware test service */ - WMI_SERVICE_STA_WMMAC = 35, /* STA WMMAC */ - WMI_SERVICE_TDLS = 36, /* TDLS support */ - WMI_SERVICE_BURST = 37, /* SIFS spaced burst support */ - /* Dynamic beaocn interval change for SAP/P2p GO in MCC scenario */ - WMI_SERVICE_MCC_BCN_INTERVAL_CHANGE = 38, - /* Service to support adaptive off-channel scheduler */ - WMI_SERVICE_ADAPTIVE_OCS = 39, - /* target will provide Sequence number for the peer/tid combo */ - WMI_SERVICE_BA_SSN_SUPPORT = 40, - WMI_SERVICE_FILTER_IPSEC_NATKEEPALIVE = 41, - WMI_SERVICE_WLAN_HB = 42, /* wlan HB service */ - /* support LTE/WLAN antenna sharing */ - WMI_SERVICE_LTE_ANT_SHARE_SUPPORT = 43, - WMI_SERVICE_BATCH_SCAN = 44, /*Service to support batch scan*/ - WMI_SERVICE_QPOWER = 45, /* QPower service */ - WMI_SERVICE_PLMREQ = 46, - WMI_SERVICE_THERMAL_MGMT = 47, /* thermal throttling support */ - WMI_SERVICE_RMC = 48, /* RMC support */ - /* multi-hop forwarding offload */ - WMI_SERVICE_MHF_OFFLOAD = 49, - /* target support SAR tx limit from WMI_PDEV_PARAM_TXPOWER_LIMITxG */ - WMI_SERVICE_COEX_SAR = 50, - /* Will support the bcn/prb rsp rate override */ - WMI_SERVICE_BCN_TXRATE_OVERRIDE = 51, - WMI_SERVICE_NAN = 52, /* Neighbor Awareness Network */ - /* L1SS statistics counter report */ - WMI_SERVICE_L1SS_STAT = 53, - /* Linkspeed Estimation per peer */ - WMI_SERVICE_ESTIMATE_LINKSPEED = 54, - /* Service to support OBSS scan */ - WMI_SERVICE_OBSS_SCAN = 55, - WMI_SERVICE_TDLS_OFFCHAN = 56, /* TDLS off channel support */ - /* TDLS UAPSD Buffer STA support */ - WMI_SERVICE_TDLS_UAPSD_BUFFER_STA = 57, - /* TDLS UAPSD Sleep STA support */ - WMI_SERVICE_TDLS_UAPSD_SLEEP_STA = 58, - WMI_SERVICE_IBSS_PWRSAVE = 59, /* IBSS power save support */ - WMI_SERVICE_LPASS = 60, /*Service to support LPASS*/ - WMI_SERVICE_EXTSCAN = 61, /* Extended Scans */ - WMI_SERVICE_D0WOW = 62, /* D0-WOW Support */ - /* Hotspot offload feature Support */ - WMI_SERVICE_HSOFFLOAD = 63, - WMI_SERVICE_ROAM_HO_OFFLOAD = 64, /* roam handover offload */ - /* target-based Rx full reorder */ - WMI_SERVICE_RX_FULL_REORDER = 65, - WMI_SERVICE_DHCP_OFFLOAD = 66, /* DHCP offload support */ - /* STA RX DATA offload to IPA support */ - WMI_SERVICE_STA_RX_IPA_OFFLOAD_SUPPORT = 67, - /* mDNS responder offload support */ - WMI_SERVICE_MDNS_OFFLOAD = 68, - WMI_SERVICE_SAP_AUTH_OFFLOAD = 69, /* softap auth offload */ - /* Dual Band Simultaneous support */ - WMI_SERVICE_DUAL_BAND_SIMULTANEOUS_SUPPORT = 70, - WMI_SERVICE_OCB = 71, /* OCB mode support */ - /* arp offload support for ap mode vdev */ - WMI_SERVICE_AP_ARPNS_OFFLOAD = 72, - /* Per band chainmask support */ - WMI_SERVICE_PER_BAND_CHAINMASK_SUPPORT = 73, - WMI_SERVICE_PACKET_FILTER_OFFLOAD = 74, /* Per vdev packet filters */ - WMI_SERVICE_MGMT_TX_HTT = 75, /* Mgmt Tx via HTT interface */ - WMI_SERVICE_MGMT_TX_WMI = 76, /* Mgmt Tx via WMI interface */ - /* WMI_SERVICE_READY_EXT msg follows */ - WMI_SERVICE_EXT_MSG = 77, - /* Motion Aided WiFi Connectivity (MAWC)*/ - WMI_SERVICE_MAWC = 78, - /* target will send ASSOC_CONF after ASSOC_CMD is processed */ - WMI_SERVICE_PEER_ASSOC_CONF = 79, - WMI_SERVICE_EGAP = 80, /* enhanced green ap support */ - /* FW supports 11W PMF Offload for STA */ - WMI_SERVICE_STA_PMF_OFFLOAD = 81, - /* FW supports unified D0 and D3 wow */ - WMI_SERVICE_UNIFIED_WOW_CAPABILITY = 82, - /* Enhanced ProxySTA mode support */ - WMI_SERVICE_ENHANCED_PROXY_STA = 83, - WMI_SERVICE_ATF = 84, /* Air Time Fairness support */ - WMI_SERVICE_COEX_GPIO = 85, /* BTCOEX GPIO support */ - /** - * Aux Radio enhancement support for ignoring spectral scan intf - * from main radios - */ - WMI_SERVICE_AUX_SPECTRAL_INTF = 86, - /** - * Aux Radio enhancement support for ignoring chan load intf - * from main radios - */ - WMI_SERVICE_AUX_CHAN_LOAD_INTF = 87, - /** - * BSS channel info (freq, noise floor, 64-bit counters) - * event support - */ - WMI_SERVICE_BSS_CHANNEL_INFO_64 = 88, - /* Enterprise MESH Service Support */ - WMI_SERVICE_ENTERPRISE_MESH = 89, - WMI_SERVICE_RESTRT_CHNL_SUPPORT = 90, /* Restricted Channel Support */ - WMI_SERVICE_BPF_OFFLOAD = 91, /* FW supports bpf offload */ - /* FW sends response event for Peer, Vdev delete commands */ - WMI_SERVICE_SYNC_DELETE_CMDS = 92, - WMI_SERVICE_SMART_ANTENNA_SW_SUPPORT = 93, - WMI_SERVICE_SMART_ANTENNA_HW_SUPPORT = 94, - /* allow per-peer tx MCS min/max limits by host */ - WMI_SERVICE_RATECTRL_LIMIT_MAX_MIN_RATES = 95, - WMI_SERVICE_NAN_DATA = 96, /* FW supports NAN data */ - WMI_SERVICE_NAN_RTT = 97, /* FW supports NAN RTT */ - WMI_SERVICE_11AX = 98, /* FW supports 802.11ax */ +typedef enum { + WMI_SERVICE_BEACON_OFFLOAD=0, /* beacon offload */ + WMI_SERVICE_SCAN_OFFLOAD=1, /* scan offload */ + WMI_SERVICE_ROAM_SCAN_OFFLOAD=2, /* roam scan offload */ + WMI_SERVICE_BCN_MISS_OFFLOAD=3, /* beacon miss offload */ + WMI_SERVICE_STA_PWRSAVE=4, /* fake sleep + basic power save */ + WMI_SERVICE_STA_ADVANCED_PWRSAVE=5, /* uapsd, pspoll, force sleep */ + WMI_SERVICE_AP_UAPSD=6, /* uapsd on AP */ + WMI_SERVICE_AP_DFS=7, /* DFS on AP */ + WMI_SERVICE_11AC=8, /* supports 11ac */ + WMI_SERVICE_BLOCKACK=9, /* Supports triggering ADDBA/DELBA from host*/ + WMI_SERVICE_PHYERR=10, /* PHY error */ + WMI_SERVICE_BCN_FILTER=11, /* Beacon filter support */ + WMI_SERVICE_RTT=12, /* RTT (round trip time) support */ + WMI_SERVICE_WOW=13, /* WOW Support */ + WMI_SERVICE_RATECTRL_CACHE=14, /* Rate-control caching */ + WMI_SERVICE_IRAM_TIDS=15, /* TIDs in IRAM */ + WMI_SERVICE_ARPNS_OFFLOAD=16, /* ARP NS Offload support for STA vdev */ + WMI_SERVICE_NLO=17, /* Network list offload service */ + WMI_SERVICE_GTK_OFFLOAD=18, /* GTK offload */ + WMI_SERVICE_SCAN_SCH=19, /* Scan Scheduler Service */ + WMI_SERVICE_CSA_OFFLOAD=20, /* CSA offload service */ + WMI_SERVICE_CHATTER=21, /* Chatter service */ + WMI_SERVICE_COEX_FREQAVOID=22, /* FW report freq range to avoid */ + WMI_SERVICE_PACKET_POWER_SAVE=23, /* packet power save service */ + WMI_SERVICE_FORCE_FW_HANG=24, /* Service to test the firmware recovery mechanism */ + WMI_SERVICE_GPIO=25, /* GPIO service */ + WMI_SERVICE_STA_DTIM_PS_MODULATED_DTIM=26, /* Modulated DTIM support */ + WMI_STA_UAPSD_BASIC_AUTO_TRIG=27, /* Basic version of station UAPSD AC Trigger Generation Method with + * variable tigger periods (service, delay, and suspend intervals) */ + WMI_STA_UAPSD_VAR_AUTO_TRIG=28, /* Station UAPSD AC Trigger Generation Method with variable + * trigger periods (service, delay, and suspend intervals) */ + WMI_SERVICE_STA_KEEP_ALIVE=29, /* Serivce to support the STA KEEP ALIVE mechanism */ + WMI_SERVICE_TX_ENCAP=30, /* Packet type for TX encapsulation */ + WMI_SERVICE_AP_PS_DETECT_OUT_OF_SYNC=31, /* detect out-of-sync sleeping stations */ + WMI_SERVICE_EARLY_RX=32, /* adaptive early-rx feature */ + WMI_SERVICE_STA_SMPS=33, /* STA MIMO-PS */ + WMI_SERVICE_FWTEST=34, /* Firmware test service */ + WMI_SERVICE_STA_WMMAC=35, /* STA WMMAC */ + WMI_SERVICE_TDLS=36, /* TDLS support */ + WMI_SERVICE_BURST=37, /* SIFS spaced burst support */ + WMI_SERVICE_MCC_BCN_INTERVAL_CHANGE=38, /* Dynamic beaocn interval change for SAP/P2p GO in MCC scenario */ + WMI_SERVICE_ADAPTIVE_OCS=39, /* Service to support adaptive off-channel scheduler */ + WMI_SERVICE_BA_SSN_SUPPORT=40, /* target will provide Sequence number for the peer/tid combo */ + WMI_SERVICE_FILTER_IPSEC_NATKEEPALIVE=41, + WMI_SERVICE_WLAN_HB=42, /* wlan HB service */ + WMI_SERVICE_LTE_ANT_SHARE_SUPPORT=43, /* support LTE/WLAN antenna sharing */ + WMI_SERVICE_BATCH_SCAN=44, /* Service to support batch scan */ + WMI_SERVICE_QPOWER=45, /* QPower service */ + WMI_SERVICE_PLMREQ=46, + WMI_SERVICE_THERMAL_MGMT=47, /* thermal throttling support */ + WMI_SERVICE_RMC=48, /* RMC support */ + WMI_SERVICE_MHF_OFFLOAD=49, /* multi-hop forwarding offload */ + WMI_SERVICE_COEX_SAR=50, /* target support SAR tx limit from WMI_PDEV_PARAM_TXPOWER_LIMITxG */ + WMI_SERVICE_BCN_TXRATE_OVERRIDE=51, /* Will support the bcn/prb rsp rate override */ + WMI_SERVICE_NAN=52, /* Neighbor Awareness Network */ + WMI_SERVICE_L1SS_STAT=53, /* L1SS statistics counter report */ + WMI_SERVICE_ESTIMATE_LINKSPEED=54, /* Linkspeed Estimation per peer */ + WMI_SERVICE_OBSS_SCAN=55, /* Service to support OBSS scan */ + WMI_SERVICE_TDLS_OFFCHAN=56, /* TDLS off channel support */ + WMI_SERVICE_TDLS_UAPSD_BUFFER_STA=57, /* TDLS UAPSD Buffer STA support */ + WMI_SERVICE_TDLS_UAPSD_SLEEP_STA=58, /* TDLS UAPSD Sleep STA support */ + WMI_SERVICE_IBSS_PWRSAVE=59, /* IBSS power save support */ + WMI_SERVICE_LPASS=60, /* Service to support LPASS */ + WMI_SERVICE_EXTSCAN=61, /* Extended Scans */ + WMI_SERVICE_D0WOW=62, /* D0-WOW Support */ + WMI_SERVICE_HSOFFLOAD=63, /* Hotspot offload feature Support */ + WMI_SERVICE_ROAM_HO_OFFLOAD=64, /* roam handover offload */ + WMI_SERVICE_RX_FULL_REORDER=65, /* target-based Rx full reorder */ + WMI_SERVICE_DHCP_OFFLOAD=66, /* DHCP offload support */ + WMI_SERVICE_STA_RX_IPA_OFFLOAD_SUPPORT=67, /* STA RX DATA offload to IPA support */ + WMI_SERVICE_MDNS_OFFLOAD=68, /* mDNS responder offload support */ + WMI_SERVICE_SAP_AUTH_OFFLOAD=69, /* softap auth offload */ + WMI_SERVICE_DUAL_BAND_SIMULTANEOUS_SUPPORT=70, /* Dual Band Simultaneous support */ + WMI_SERVICE_OCB=71, /* OCB mode support */ + WMI_SERVICE_AP_ARPNS_OFFLOAD=72, /* arp offload support for ap mode vdev */ + WMI_SERVICE_PER_BAND_CHAINMASK_SUPPORT=73, /* Per band chainmask support */ + WMI_SERVICE_PACKET_FILTER_OFFLOAD=74, /* Per vdev packet filters */ + WMI_SERVICE_MGMT_TX_HTT=75, /* Mgmt Tx via HTT interface */ + WMI_SERVICE_MGMT_TX_WMI=76, /* Mgmt Tx via WMI interface */ + WMI_SERVICE_EXT_MSG=77, /* WMI_SERVICE_READY_EXT msg follows */ + WMI_SERVICE_MAWC=78, /* Motion Aided WiFi Connectivity (MAWC)*/ + WMI_SERVICE_PEER_ASSOC_CONF=79, /* target will send ASSOC_CONF after ASSOC_CMD is processed */ + WMI_SERVICE_EGAP=80, /* enhanced green ap support */ + WMI_SERVICE_STA_PMF_OFFLOAD=81, /* FW supports 11W PMF Offload for STA */ + WMI_SERVICE_UNIFIED_WOW_CAPABILITY=82, /* FW supports unified D0 and D3 wow */ + WMI_SERVICE_ENHANCED_PROXY_STA=83, /* Enhanced ProxySTA mode support */ + WMI_SERVICE_ATF=84, /* Air Time Fairness support */ + WMI_SERVICE_COEX_GPIO=85, /* BTCOEX GPIO support */ + WMI_SERVICE_AUX_SPECTRAL_INTF=86, /* Aux Radio enhancement support for ignoring spectral scan intf from main radios */ + WMI_SERVICE_AUX_CHAN_LOAD_INTF=87, /* Aux Radio enhancement support for ignoring chan load intf from main radios*/ + WMI_SERVICE_BSS_CHANNEL_INFO_64=88, /* BSS channel info (freq, noise floor, 64-bit counters) event support */ + WMI_SERVICE_ENTERPRISE_MESH=89, /* Enterprise MESH Service Support */ + WMI_SERVICE_RESTRT_CHNL_SUPPORT=90, /* Restricted Channel Support */ + WMI_SERVICE_BPF_OFFLOAD=91, /* FW supports bpf offload */ + WMI_SERVICE_SYNC_DELETE_CMDS=92, /* FW sends response event for Peer, Vdev delete commands */ + WMI_SERVICE_SMART_ANTENNA_SW_SUPPORT=93, + WMI_SERVICE_SMART_ANTENNA_HW_SUPPORT=94, + WMI_SERVICE_RATECTRL_LIMIT_MAX_MIN_RATES=95, /* allow per-peer tx MCS min/max limits by host */ + WMI_SERVICE_NAN_DATA=96, /* FW supports NAN data */ + WMI_SERVICE_NAN_RTT=97, /* FW supports NAN RTT */ + WMI_SERVICE_11AX=98, /* FW supports 802.11ax */ + /* WMI_SERVICE_DEPRECATED_REPLACE + * FW supports these new WMI commands, to be used rather than + * deprecated matching commands: + * - WMI_PDEV_SET_PCL_CMDID (vs. WMI_SOC_SET_PCL_CMDID) + * - WMI_PDEV_SET_HW_MODE_CMDID (vs. WMI_SOC_SET_HW_MODE_CMDID) + * - WMI_PDEV_SET_MAC_CONFIG_CMDID (vs. WMI_SOC_SET_DUAL_MAC_CONFIG_CMDID) + * - WMI_PDEV_SET_ANTENNA_MODE_CMDID (vs. WMI_SOC_SET_ANTENNA_MODE_CMDID) + * - WMI_VDEV_SET_DSCP_TID_MAP_CMDID (vs. WMI_VDEV_SET_WMM_PARAMS_CMDID) + */ + WMI_SERVICE_DEPRECATED_REPLACE=99, + WMI_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE=100, /* FW supports a new mode that allows to run connection tracker in host */ + WMI_SERVICE_ENHANCED_MCAST_FILTER=101, /* FW supports enhanced multicast filtering (of mcast IP inside ucast WLAN) */ + WMI_SERVICE_PERIODIC_CHAN_STAT_SUPPORT=102, /* periodic channel stats service */ + WMI_SERVICE_MESH_11S=103, /* 11s mesh service support */ + WMI_SERVICE_HALF_RATE_QUARTER_RATE_SUPPORT=104, /* FW+HW supports 10 MHz (half rate) and 5 MHz (quarter rate) channel bandwidth */ + WMI_SERVICE_VDEV_RX_FILTER=105, /* Support per-vdev specs of which rx frames to filter out */ + WMI_SERVICE_P2P_LISTEN_OFFLOAD_SUPPORT=106, + WMI_SERVICE_MARK_FIRST_WAKEUP_PACKET=107, /* FW supports marking the first data packet which wakes the host from suspend */ + WMI_SERVICE_MULTIPLE_MCAST_FILTER_SET=108, /* FW supports command that can add/delete multiple mcast filters */ + /* WMI_SERVICE_HOST_MANAGED_RX_REORDER - + * FW supports host-managed RX reorder. + * Host managed RX reorder involves RX BA state machine handling + * on peer/TID basis, REO configuration for HW based reordering/PN + * check and processing reorder exceptions generated by HW. + */ + WMI_SERVICE_HOST_MANAGED_RX_REORDER=109, + /* Specify whether the target supports the following WMI messages for + * reading / writing its flash memory: + * WMI_READ_DATA_FROM_FLASH_CMDID, + * WMI_READ_DATA_FROM_FLASH_EVENTID, + * WMI_TRANSFER_DATA_TO_FLASH_CMDID, + * WMI_TRANSFER_DATA_TO_FLASH_COMPLETE_EVENTID, + */ + WMI_SERVICE_FLASH_RDWR_SUPPORT=110, + WMI_SERVICE_WLAN_STATS_REPORT=111, /* support WLAN stats report */ + /* WMI_SERVICE_TX_MSDU_ID_NEW_PARTITION_SUPPORT - + * FW supports bigger MSDU ID partition which is defined as HTT_TX_IPA_NEW_MSDU_ID_SPACE_BEGIN + * When both host and FW support new partition, FW uses HTT_TX_IPA_NEW_MSDU_ID_SPACE_BEGIN + * If host doesn't support, FW falls back to HTT_TX_IPA_MSDU_ID_SPACE_BEGIN + * Handshaking is done through WMI_INIT and WMI service ready + */ + WMI_SERVICE_TX_MSDU_ID_NEW_PARTITION_SUPPORT=112, /* support bigger MSDU ID partition */ + WMI_SERVICE_DFS_PHYERR_OFFLOAD=113, + WMI_SERVICE_RCPI_SUPPORT=114, + WMI_SERVICE_FW_MEM_DUMP_SUPPORT=115, /* Support FW Memory dump */ + WMI_SERVICE_PEER_STATS_INFO=116, /* support per peer stats info */ + WMI_SERVICE_REGULATORY_DB=117, /* support regulatory database in FW */ + WMI_SERVICE_11D_OFFLOAD=118, /* support 11D scan offload in FW */ - /* WMI_SERVICE_DEPRECATED_REPLACE - * FW supports these new WMI commands, to be used rather than - * deprecated matching commands: - * - WMI_PDEV_SET_PCL_CMDID (vs. WMI_SOC_SET_PCL_CMDID) - * - WMI_PDEV_SET_HW_MODE_CMDID - * (vs. WMI_SOC_SET_HW_MODE_CMDID) - * - WMI_PDEV_SET_MAC_CONFIG_CMDID - * (vs. WMI_SOC_SET_DUAL_MAC_CONFIG_CMDID) - * - WMI_PDEV_SET_ANTENNA_MODE_CMDID - * (vs. WMI_SOC_SET_ANTENNA_MODE_CMDID) - * - WMI_VDEV_SET_DSCP_TID_MAP_CMDID - * (vs. WMI_VDEV_SET_WMM_PARAMS_CMDID) - */ - WMI_SERVICE_DEPRECATED_REPLACE = 99, - /** - * FW supports a new mode that allows to run connection tracker - * in host - */ - WMI_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE = 100, - /** - * FW supports enhanced multicast filtering (of mcast IP inside - * ucast WLAN) - */ - WMI_SERVICE_ENHANCED_MCAST_FILTER = 101, - /* periodic channel stats service */ - WMI_SERVICE_PERIODIC_CHAN_STAT_SUPPORT = 102, - WMI_SERVICE_MESH_11S = 103, - /** - * FW+HW supports 10 MHz (half rate) and 5 MHz (quarter rate) - * channel bandwidth - */ - WMI_SERVICE_HALF_RATE_QUARTER_RATE_SUPPORT = 104, - /* Support per-vdev specs of which rx frames to filter out */ - WMI_SERVICE_VDEV_RX_FILTER = 105, - WMI_SERVICE_P2P_LISTEN_OFFLOAD_SUPPORT = 106, - /** - * FW supports marking the first data packet which wakes - * the host from suspend - */ - WMI_SERVICE_MARK_FIRST_WAKEUP_PACKET = 107, - /* FW supports command that can add/delete multiple mcast filters */ - WMI_SERVICE_MULTIPLE_MCAST_FILTER_SET = 108, - /* WMI_SERVICE_HOST_MANAGED_RX_REORDER - - * FW supports host-managed RX reorder. - * Host managed RX reorder involves RX BA state machine handling - * on peer/TID basis, REO configuration for HW based reordering/PN - * check and processing reorder exceptions generated by HW. - */ - WMI_SERVICE_HOST_MANAGED_RX_REORDER = 109, - /* Specify whether the target supports the following WMI messages - * for reading / writing its flash memory: - * WMI_READ_DATA_FROM_FLASH_CMDID, - * WMI_READ_DATA_FROM_FLASH_EVENTID, - * WMI_TRANSFER_DATA_TO_FLASH_CMDID, - * WMI_TRANSFER_DATA_TO_FLASH_COMPLETE_EVENTID, - */ - WMI_SERVICE_FLASH_RDWR_SUPPORT = 110, - WMI_SERVICE_WLAN_STATS_REPORT = 111, /* support WLAN stats report */ - /* WMI_SERVICE_TX_MSDU_ID_NEW_PARTITION_SUPPORT - - * FW supports bigger MSDU ID partition which is defined as - * HTT_TX_IPA_NEW_MSDU_ID_SPACE_BEGIN. When both host and FW support - * new partition, FW uses HTT_TX_IPA_NEW_MSDU_ID_SPACE_BEGIN. If host - * doesn't support, FW falls back to HTT_TX_IPA_MSDU_ID_SPACE_BEGIN - * Handshaking is done through WMI_INIT and WMI service ready - * - * support bigger MSDU ID partition - */ - WMI_SERVICE_TX_MSDU_ID_NEW_PARTITION_SUPPORT = 112, - WMI_SERVICE_DFS_PHYERR_OFFLOAD = 113, - WMI_SERVICE_RCPI_SUPPORT=114, + /******* ADD NEW SERVICES HERE UNTIL ALL VALUES UP TO 128 ARE USED *******/ - /*** ADD NEW SERVICES HERE UNTIL ALL VALUES UP TO 128 ARE USED ***/ + WMI_MAX_SERVICE=128, /* max service */ - WMI_MAX_SERVICE = 128, /* max service */ + /* NOTE: + * The above service flags are delivered in the wmi_service_bitmap field + * of the WMI_SERVICE_READY_EVENT message. + * The below service flags are delivered in a WMI_SERVICE_AVAILABLE_EVENT + * message rather than in the WMI_SERVICE_READY_EVENT message's + * wmi_service_bitmap field. + * The WMI_SERVICE_AVAILABLE_EVENT message immediately precedes the + * WMI_SERVICE_READY_EVENT message. + */ - /** - * NOTE: - * The above service flags are delivered in the wmi_service_bitmap - * field of the WMI_SERVICE_READY_EVENT message. - * The below service flags are delivered in a - * WMI_SERVICE_AVAILABLE_EVENT message rather than in the - * WMI_SERVICE_READY_EVENT message's wmi_service_bitmap field. - * The WMI_SERVICE_AVAILABLE_EVENT message immediately precedes the - * WMI_SERVICE_READY_EVENT message. - */ + /*PUT 1ST EXT SERVICE HERE:*//*WMI_SERVICE_xxxxxxxx=128,*/ + /*PUT 2ND EXT SERVICE HERE:*//*WMI_SERVICE_yyyyyyyy=129,*/ - /*PUT 1ST EXT SERVICE HERE:*//*WMI_SERVICE_xxxxxxxx=128,*/ - /*PUT 2ND EXT SERVICE HERE:*//*WMI_SERVICE_yyyyyyyy=129,*/ - - WMI_MAX_EXT_SERVICE + WMI_MAX_EXT_SERVICE } WMI_SERVICE; @@ -300,61 +213,59 @@ typedef enum { #define WMI_NUM_EXT_SERVICES (WMI_MAX_EXT_SERVICE - WMI_MAX_SERVICE) #define WMI_SERVICE_EXT_BM_SIZE32 ((WMI_NUM_EXT_SERVICES + 31) / 32) -/** - * depreciated the name WMI_SERVICE_ROAM_OFFLOAD, but here to help - * compiling with old host driver - */ -#define WMI_SERVICE_ROAM_OFFLOAD WMI_SERVICE_ROAM_SCAN_OFFLOAD +#define WMI_SERVICE_ROAM_OFFLOAD WMI_SERVICE_ROAM_SCAN_OFFLOAD /* depreciated the name WMI_SERVICE_ROAM_OFFLOAD, but here to help compiling with old host driver */ /* * turn on the WMI service bit corresponding to the WMI service. */ #define WMI_SERVICE_ENABLE(pwmi_svc_bmap,svc_id) \ - ( (pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] |= \ - (1 << ((svc_id)%(sizeof(A_UINT32)))) ) + ( (pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] |= \ + (1 << ((svc_id)%(sizeof(A_UINT32)))) ) #define WMI_SERVICE_DISABLE(pwmi_svc_bmap,svc_id) \ - ( (pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] &= \ - ( ~(1 << ((svc_id)%(sizeof(A_UINT32)))) ) ) + ( (pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] &= \ + ( ~(1 << ((svc_id)%(sizeof(A_UINT32)))) ) ) #define WMI_SERVICE_IS_ENABLED(pwmi_svc_bmap,svc_id) \ - ( ((pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] & \ - (1 << ((svc_id)%(sizeof(A_UINT32)))) ) != 0) + ( ((pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] & \ + (1 << ((svc_id)%(sizeof(A_UINT32)))) ) != 0) + #define WMI_SERVICE_EXT_ENABLE(pwmi_svc_bmap, pwmi_svc_ext_bmap, svc_id) \ - do { \ - if (svc_id < WMI_MAX_SERVICE) { \ - WMI_SERVICE_ENABLE(pwmi_svc_bmap, svc_id); \ - } else { \ - int word = ((svc_id) - WMI_MAX_SERVICE) / 32; \ - int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \ - (pwmi_svc_ext_bmap)[word] |= (1 << bit); \ - } \ - } while (0) + do { \ + if (svc_id < WMI_MAX_SERVICE) { \ + WMI_SERVICE_ENABLE(pwmi_svc_bmap, svc_id); \ + } else { \ + int word = ((svc_id) - WMI_MAX_SERVICE) / 32; \ + int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \ + (pwmi_svc_ext_bmap)[word] |= (1 << bit); \ + } \ + } while (0) #define WMI_SERVICE_EXT_DISABLE(pwmi_svc_bmap, pwmi_svc_ext_bmap, svc_id) \ - do { \ - if (svc_id < WMI_MAX_SERVICE) { \ - WMI_SERVICE_DISABLE(pwmi_svc_bmap, svc_id); \ - } else { \ - int word = ((svc_id) - WMI_MAX_SERVICE) / 32; \ - int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \ - (pwmi_svc_ext_bmap)[word] &= ~(1 << bit); \ - } \ - } while (0) + do { \ + if (svc_id < WMI_MAX_SERVICE) { \ + WMI_SERVICE_DISABLE(pwmi_svc_bmap, svc_id); \ + } else { \ + int word = ((svc_id) - WMI_MAX_SERVICE) / 32; \ + int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \ + (pwmi_svc_ext_bmap)[word] &= ~(1 << bit); \ + } \ + } while (0) #define WMI_SERVICE_EXT_IS_ENABLED(pwmi_svc_bmap, pwmi_svc_ext_bmap, svc_id) \ - /* If the service ID is beyond the known limit, treat it as disabled */ \ - ((svc_id) >= WMI_MAX_EXT_SERVICE ? 0 : \ - /* If service ID is in the non-extension range, use the old check */ \ - (svc_id) < WMI_MAX_SERVICE ? \ - WMI_SERVICE_IS_ENABLED(pwmi_svc_bmap, svc_id) : \ - /* If service ID is in the extended range, check ext_bmap */ \ - (pwmi_svc_ext_bmap)[((svc_id) - WMI_MAX_SERVICE) / 32] >> \ - ((svc_id) & 0x1f)) + /* If the service ID is beyond the known limit, treat it as disabled */ \ + ((svc_id) >= WMI_MAX_EXT_SERVICE ? 0 : \ + /* If service ID is in the non-extension range, use the old check */ \ + (svc_id) < WMI_MAX_SERVICE ? \ + WMI_SERVICE_IS_ENABLED(pwmi_svc_bmap, svc_id) : \ + /* If service ID is in the extended range, check ext_bmap */ \ + (pwmi_svc_ext_bmap)[((svc_id) - WMI_MAX_SERVICE) / 32] >> \ + ((svc_id) & 0x1f)) #ifdef __cplusplus } #endif + #endif /*_WMI_SERVICES_H_*/ diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 392e0aaae754..e2219a193d62 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2010-2016 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -24,7 +24,14 @@ * under proprietary terms before Copyright ownership was assigned * to the Linux Foundation. */ - +/* + * wmi_tlv_defs_expanded.h file can be generated using macro preprocessor output of gcc for ease of debugging and reference by developers + * Following command has to be run from "fw_common\fw_interface\include" directory to create wmi_tlv_defs_expanded.h file + * gcc -E wmi_tlv_defs.h > wmi_tlv_defs_expanded.h on Linux + * and + * gcc -E wmi_tlv_defs.h -o wmi_tlv_defs_expanded.h on Linux/Windows + * + */ #ifndef _WMI_TLV_DEFS_H_ #define _WMI_TLV_DEFS_H_ @@ -33,37 +40,37 @@ extern "C" { #endif #define WMITLV_FIELD_BUF_IS_ALLOCATED(elem_name) \ - is_allocated_ ## elem_name + is_allocated_##elem_name #define WMITLV_FIELD_NUM_OF(elem_name) \ - num_ ## elem_name + num_##elem_name /* Define the structure typedef for the TLV parameters of each cmd/event */ #define WMITLV_TYPEDEF_STRUCT_PARAMS_TLVS(wmi_cmd_event_id) \ - wmi_cmd_event_id ## _param_tlvs + wmi_cmd_event_id##_param_tlvs /* * The following macro WMITLV_OP_* are created by the macro WMITLV_ELEM(). */ /* macro to define the TLV name in the correct order. When (op==TAG_ORDER) */ -#define WMITLV_OP_TAG_ORDER_macro(param_ptr, param_len, wmi_cmd_event_id, elem_tlv_tag, elem_struc_type, elem_name, var_len, arr_size) \ - wmi_cmd_event_id ## _tlv_order_ ## elem_name, +#define WMITLV_OP_TAG_ORDER_macro(param_ptr, param_len, wmi_cmd_event_id, elem_tlv_tag, elem_struc_type, elem_name, var_len, arr_size) \ + wmi_cmd_event_id##_tlv_order_##elem_name, /* macro to define the TLV name with the TLV Tag value. When (op==TAG_ID) */ #define WMITLV_OP_TAG_ID_macro(param_ptr, param_len, wmi_cmd_event_id, elem_tlv_tag, elem_struc_type, elem_name, var_len, arr_size) \ - wmi_cmd_event_id ## _tlv_tag_ ## elem_name = elem_tlv_tag, + wmi_cmd_event_id##_tlv_tag_##elem_name = elem_tlv_tag, /* macro to define the TLV name with the TLV structure size. May not be accurate when variable length. When (op==TAG_SIZEOF) */ -#define WMITLV_OP_TAG_SIZEOF_macro(param_ptr, param_len, wmi_cmd_event_id, elem_tlv_tag, elem_struc_type, elem_name, var_len, arr_size) \ - wmi_cmd_event_id ## _sizeof_ ## elem_name = sizeof(elem_struc_type), +#define WMITLV_OP_TAG_SIZEOF_macro(param_ptr, param_len, wmi_cmd_event_id, elem_tlv_tag, elem_struc_type, elem_name, var_len, arr_size) \ + wmi_cmd_event_id##_sizeof_##elem_name = sizeof(elem_struc_type), /* macro to define the TLV name with value indicating whether the TLV is variable length. When (op==TAG_VAR_SIZED) */ #define WMITLV_OP_TAG_VAR_SIZED_macro(param_ptr, param_len, wmi_cmd_event_id, elem_tlv_tag, elem_struc_type, elem_name, var_len, arr_size) \ - wmi_cmd_event_id ## _var_sized_ ## elem_name = var_len, + wmi_cmd_event_id##_var_sized_##elem_name = var_len, /* macro to define the TLV name with value indicating the fixed array size. When (op==TAG_ARR_SIZE) */ #define WMITLV_OP_TAG_ARR_SIZE_macro(param_ptr, param_len, wmi_cmd_event_id, elem_tlv_tag, elem_struc_type, elem_name, var_len, arr_size) \ - wmi_cmd_event_id ## _arr_size_ ## elem_name = arr_size, + wmi_cmd_event_id##_arr_size_##elem_name = arr_size, /* * macro to define afew fields associated to a TLV. For example, a structure pointer with the TLV name. @@ -72,9 +79,9 @@ extern "C" { * should be updated too. */ #define WMITLV_OP_STRUCT_FIELD_macro(param_ptr, param_len, wmi_cmd_event_id, elem_tlv_tag, elem_struc_type, elem_name, var_len, arr_size) \ - elem_struc_type *elem_name; \ - A_UINT32 WMITLV_FIELD_NUM_OF(elem_name); \ - A_UINT32 WMITLV_FIELD_BUF_IS_ALLOCATED(elem_name); + elem_struc_type *elem_name; \ + A_UINT32 WMITLV_FIELD_NUM_OF(elem_name); \ + A_UINT32 WMITLV_FIELD_BUF_IS_ALLOCATED(elem_name); /* * A "mirror" structure that contains the fields that is created by the @@ -83,9 +90,9 @@ extern "C" { * so that they both has the same kind of fields. */ typedef struct { - void *tlv_ptr; /* Pointer to the TLV Buffer. But the "real" one will have the right type instead of void. */ - A_UINT32 num_elements; /* Number of elements. For non-array, this is one. For array, this is the number of elements. */ - A_UINT32 buf_is_allocated; /* Boolean flag to indicate that a new buffer is allocated for this TLV. */ + void *tlv_ptr; /* Pointer to the TLV Buffer. But the "real" one will have the right type instead of void. */ + A_UINT32 num_elements; /* Number of elements. For non-array, this is one. For array, this is the number of elements. */ + A_UINT32 buf_is_allocated;/* Boolean flag to indicate that a new buffer is allocated for this TLV. */ } wmitlv_cmd_param_info; /* @@ -93,17 +100,17 @@ typedef struct { * WMITLV_ELEM is re-defined to a "op" specific macro. * Eg. WMITLV_OP_TAG_ORDER_macro is created for the op_type=TAG_ORDER. */ -#define WMITLV_ELEM(wmi_cmd_event_id, op_type, param_ptr, param_len, elem_tlv_tag, elem_struc_type, elem_name, var_len) \ - WMITLV_OP_ ## op_type ## _macro(param_ptr, param_len, wmi_cmd_event_id, elem_tlv_tag, elem_struc_type, elem_name, var_len, WMITLV_ARR_SIZE_INVALID) +#define WMITLV_ELEM(wmi_cmd_event_id, op_type, param_ptr, param_len, elem_tlv_tag, elem_struc_type, elem_name, var_len) \ + WMITLV_OP_##op_type##_macro(param_ptr, param_len, wmi_cmd_event_id, elem_tlv_tag, elem_struc_type, elem_name, var_len, WMITLV_ARR_SIZE_INVALID) /* * WMITLV_FXAR (FiX ARray) is similar to WMITLV_ELEM except it has an extra parameter for the fixed number of elements. * It is re-defined to a "op" specific macro. * Eg. WMITLV_OP_TAG_ORDER_macro is created for the op_type=TAG_ORDER. */ #define WMITLV_FXAR(wmi_cmd_event_id, op_type, param_ptr, param_len, elem_tlv_tag, elem_struc_type, elem_name, var_len, arr_size) \ - WMITLV_OP_ ## op_type ## _macro(param_ptr, param_len, wmi_cmd_event_id, elem_tlv_tag, elem_struc_type, elem_name, var_len, arr_size) + WMITLV_OP_##op_type##_macro(param_ptr, param_len, wmi_cmd_event_id, elem_tlv_tag, elem_struc_type, elem_name, var_len, arr_size) -#define WMITLV_TABLE(id,op,buf,len) WMITLV_TABLE_ ## id(id,op,buf,len) +#define WMITLV_TABLE(id,op,buf,len) WMITLV_TABLE_##id(id,op,buf,len) /* * This macro will create various enumerations and structures to describe the TLVs for @@ -173,2365 +180,2396 @@ typedef struct { * */ -#define WMITLV_CREATE_PARAM_STRUC(wmi_cmd_event_id) \ - typedef enum { \ - WMITLV_TABLE(wmi_cmd_event_id, TAG_ORDER, NULL, 0) \ - WMI_TLV_HLPR_NUM_TLVS_FOR_ ## wmi_cmd_event_id \ - } wmi_cmd_event_id ## _TAG_ORDER_enum_type; \ - \ - typedef struct { \ - WMITLV_TABLE(wmi_cmd_event_id, STRUCT_FIELD, NULL, 0) \ - } WMITLV_TYPEDEF_STRUCT_PARAMS_TLVS (wmi_cmd_event_id); \ +#define WMITLV_CREATE_PARAM_STRUC(wmi_cmd_event_id) \ + typedef enum { \ + WMITLV_TABLE(wmi_cmd_event_id, TAG_ORDER, NULL, 0) \ + WMI_TLV_HLPR_NUM_TLVS_FOR_##wmi_cmd_event_id \ + } wmi_cmd_event_id##_TAG_ORDER_enum_type; \ + \ + typedef struct { \ + WMITLV_TABLE(wmi_cmd_event_id, STRUCT_FIELD, NULL, 0) \ + } WMITLV_TYPEDEF_STRUCT_PARAMS_TLVS(wmi_cmd_event_id); \ /** Enum list of TLV Tags for each parameter structure type. */ typedef enum { - /* 0 to 15 is reserved */ - WMITLV_TAG_LAST_RESERVED = 15, - WMITLV_TAG_FIRST_ARRAY_ENUM, /* First entry of ARRAY type tags */ - WMITLV_TAG_ARRAY_UINT32 = WMITLV_TAG_FIRST_ARRAY_ENUM, - WMITLV_TAG_ARRAY_BYTE, - WMITLV_TAG_ARRAY_STRUC, - WMITLV_TAG_ARRAY_FIXED_STRUC, - WMITLV_TAG_LAST_ARRAY_ENUM = 31, /* Last entry of ARRAY type tags */ - WMITLV_TAG_STRUC_wmi_service_ready_event_fixed_param, - WMITLV_TAG_STRUC_HAL_REG_CAPABILITIES, - WMITLV_TAG_STRUC_wlan_host_mem_req, - WMITLV_TAG_STRUC_wmi_ready_event_fixed_param, - WMITLV_TAG_STRUC_wmi_scan_event_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_tpc_config_event_fixed_param, - WMITLV_TAG_STRUC_wmi_chan_info_event_fixed_param, - WMITLV_TAG_STRUC_wmi_comb_phyerr_rx_hdr, - WMITLV_TAG_STRUC_wmi_vdev_start_response_event_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_stopped_event_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_install_key_complete_event_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_sta_kickout_event_fixed_param, - WMITLV_TAG_STRUC_wmi_mgmt_rx_hdr, - WMITLV_TAG_STRUC_wmi_tbtt_offset_event_fixed_param, - WMITLV_TAG_STRUC_wmi_tx_delba_complete_event_fixed_param, - WMITLV_TAG_STRUC_wmi_tx_addba_complete_event_fixed_param, - WMITLV_TAG_STRUC_wmi_roam_event_fixed_param, - WMITLV_TAG_STRUC_WOW_EVENT_INFO_fixed_param, - WMITLV_TAG_STRUC_WOW_EVENT_INFO_SECTION_BITMAP, - WMITLV_TAG_STRUC_wmi_rtt_event_header, - WMITLV_TAG_STRUC_wmi_rtt_error_report_event_fixed_param, - WMITLV_TAG_STRUC_wmi_rtt_meas_event_fixed_param, - WMITLV_TAG_STRUC_wmi_echo_event_fixed_param, - WMITLV_TAG_STRUC_wmi_ftm_intg_event_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_get_keepalive_event_fixed_param, - WMITLV_TAG_STRUC_wmi_gpio_input_event_fixed_param, - WMITLV_TAG_STRUC_wmi_csa_event_fixed_param, - WMITLV_TAG_STRUC_WMI_GTK_OFFLOAD_STATUS_EVENT_fixed_param, - WMITLV_TAG_STRUC_wmi_igtk_info, - WMITLV_TAG_STRUC_wmi_dcs_interference_event_fixed_param, - WMITLV_TAG_STRUC_ath_dcs_cw_int, /* DEPRECATED */ - WMITLV_TAG_STRUC_wlan_dcs_cw_int = /* alias */ - WMITLV_TAG_STRUC_ath_dcs_cw_int, - WMITLV_TAG_STRUC_ath_dcs_wlan_int_stat, /* DEPRECATED */ - WMITLV_TAG_STRUC_wlan_dcs_im_tgt_stats_t = /* alias */ - WMITLV_TAG_STRUC_ath_dcs_wlan_int_stat, - WMITLV_TAG_STRUC_wmi_wlan_profile_ctx_t, - WMITLV_TAG_STRUC_wmi_wlan_profile_t, - WMITLV_TAG_STRUC_wmi_pdev_qvit_event_fixed_param, - WMITLV_TAG_STRUC_wmi_host_swba_event_fixed_param, - WMITLV_TAG_STRUC_wmi_tim_info, - WMITLV_TAG_STRUC_wmi_p2p_noa_info, - WMITLV_TAG_STRUC_wmi_stats_event_fixed_param, - WMITLV_TAG_STRUC_wmi_avoid_freq_ranges_event_fixed_param, - WMITLV_TAG_STRUC_wmi_avoid_freq_range_desc, - WMITLV_TAG_STRUC_wmi_gtk_rekey_fail_event_fixed_param, - WMITLV_TAG_STRUC_wmi_init_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_resource_config, - WMITLV_TAG_STRUC_wlan_host_memory_chunk, - WMITLV_TAG_STRUC_wmi_start_scan_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_stop_scan_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_scan_chan_list_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_channel, - WMITLV_TAG_STRUC_wmi_pdev_set_regdomain_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_set_param_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_set_wmm_params_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_wmm_params, - WMITLV_TAG_STRUC_wmi_pdev_set_quiet_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_create_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_delete_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_start_request_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_p2p_noa_descriptor, - WMITLV_TAG_STRUC_wmi_p2p_go_set_beacon_ie_fixed_param, - WMITLV_TAG_STRUC_WMI_GTK_OFFLOAD_CMD_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_up_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_stop_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_down_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_set_param_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_install_key_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_create_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_delete_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_flush_tids_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_set_param_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_assoc_complete_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_vht_rate_set, - WMITLV_TAG_STRUC_wmi_bcn_tmpl_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_prb_tmpl_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_bcn_prb_info, - WMITLV_TAG_STRUC_wmi_peer_tid_addba_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_tid_delba_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_sta_powersave_mode_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_sta_powersave_param_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_sta_dtim_ps_method_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_roam_scan_mode_fixed_param, - WMITLV_TAG_STRUC_wmi_roam_scan_rssi_threshold_fixed_param, - WMITLV_TAG_STRUC_wmi_roam_scan_period_fixed_param, - WMITLV_TAG_STRUC_wmi_roam_scan_rssi_change_threshold_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_suspend_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_resume_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_add_bcn_filter_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_rmv_bcn_filter_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_wow_enable_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_wow_hostwakeup_from_sleep_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_sta_uapsd_auto_trig_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_sta_uapsd_auto_trig_param, - WMITLV_TAG_STRUC_WMI_SET_ARP_NS_OFFLOAD_CMD_fixed_param, - WMITLV_TAG_STRUC_WMI_ARP_OFFLOAD_TUPLE, - WMITLV_TAG_STRUC_WMI_NS_OFFLOAD_TUPLE, - WMITLV_TAG_STRUC_wmi_ftm_intg_cmd_fixed_param, - WMITLV_TAG_STRUC_WMI_STA_KEEPALIVE_CMD_fixed_param, - WMITLV_TAG_STRUC_WMI_STA_KEEPALVE_ARP_RESPONSE, - WMITLV_TAG_STRUC_wmi_p2p_set_vendor_ie_data_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_ap_ps_peer_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_rate_retry_sched_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_wlan_profile_trigger_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_wlan_profile_set_hist_intvl_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_wlan_profile_get_prof_data_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_wlan_profile_enable_profile_id_cmd_fixed_param, - WMITLV_TAG_STRUC_WMI_WOW_DEL_PATTERN_CMD_fixed_param, - WMITLV_TAG_STRUC_WMI_WOW_ADD_DEL_EVT_CMD_fixed_param, - WMITLV_TAG_STRUC_wmi_rtt_measreq_head, - WMITLV_TAG_STRUC_wmi_rtt_measreq_body, - WMITLV_TAG_STRUC_wmi_rtt_tsf_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_spectral_configure_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_spectral_enable_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_request_stats_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_nlo_config_cmd_fixed_param, - WMITLV_TAG_STRUC_nlo_configured_parameters, - WMITLV_TAG_STRUC_wmi_csa_offload_enable_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_csa_offload_chanswitch_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_chatter_set_mode_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_echo_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_set_keepalive_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_get_keepalive_cmd_fixed_param, - WMITLV_TAG_STRUC_WMI_FORCE_FW_HANG_CMD_fixed_param, - WMITLV_TAG_STRUC_wmi_gpio_config_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_gpio_output_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_add_wds_entry_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_remove_wds_entry_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_bcn_tx_hdr, - WMITLV_TAG_STRUC_wmi_bcn_send_from_host_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_mgmt_tx_hdr, - WMITLV_TAG_STRUC_wmi_addba_clear_resp_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_addba_send_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_delba_send_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_addba_setresponse_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_send_singleamsdu_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_pktlog_enable_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_pktlog_disable_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_set_ht_ie_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_set_vht_ie_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_set_dscp_tid_map_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_green_ap_ps_enable_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_get_tpc_config_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_set_base_macaddr_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_mcast_group_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_roam_ap_profile_fixed_param, - WMITLV_TAG_STRUC_wmi_ap_profile, - WMITLV_TAG_STRUC_wmi_scan_sch_priority_table_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_dfs_enable_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_dfs_disable_cmd_fixed_param, - WMITLV_TAG_STRUC_WMI_WOW_ADD_PATTERN_CMD_fixed_param, - WMITLV_TAG_STRUC_WOW_BITMAP_PATTERN_T, - WMITLV_TAG_STRUC_WOW_IPV4_SYNC_PATTERN_T, - WMITLV_TAG_STRUC_WOW_IPV6_SYNC_PATTERN_T, - WMITLV_TAG_STRUC_WOW_MAGIC_PATTERN_CMD, - WMITLV_TAG_STRUC_WMI_scan_update_request_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_chatter_pkt_coalescing_filter, - WMITLV_TAG_STRUC_wmi_chatter_coalescing_add_filter_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_chatter_coalescing_delete_filter_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_chatter_coalescing_query_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_txbf_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_debug_log_config_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_nlo_event, - WMITLV_TAG_STRUC_wmi_chatter_query_reply_event_fixed_param, - WMITLV_TAG_STRUC_wmi_upload_h_hdr, - WMITLV_TAG_STRUC_wmi_capture_h_event_hdr, - WMITLV_TAG_STRUC_WMI_VDEV_WNM_SLEEPMODE_CMD_fixed_param, - WMITLV_TAG_STRUC_WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMD_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_wmm_addts_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_wmm_delts_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_set_wmm_params_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_tdls_set_state_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_tdls_peer_update_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_tdls_peer_event_fixed_param, - WMITLV_TAG_STRUC_wmi_tdls_peer_capabilities, - WMITLV_TAG_STRUC_wmi_vdev_mcc_set_tbtt_mode_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_roam_chan_list_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_mcc_bcn_intvl_change_event_fixed_param, - WMITLV_TAG_STRUC_wmi_resmgr_adaptive_ocs_enable_disable_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_resmgr_set_chan_time_quota_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_resmgr_set_chan_latency_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_ba_req_ssn_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_ba_rsp_ssn_event_fixed_param, - WMITLV_TAG_STRUC_wmi_sta_smps_force_mode_cmd_fixed_param, - WMITLV_TAG_STRUC_WMI_SET_MCASTBCAST_FILTER_CMD_fixed_param, - WMITLV_TAG_STRUC_wmi_p2p_set_oppps_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_p2p_set_noa_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_ba_req_ssn_cmd_sub_struct_param, - WMITLV_TAG_STRUC_wmi_ba_req_ssn_event_sub_struct_param, - WMITLV_TAG_STRUC_wmi_sta_smps_param_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_set_gtx_params_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_mcc_sched_traffic_stats_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_mcc_sched_sta_traffic_stats, - WMITLV_TAG_STRUC_wmi_offload_bcn_tx_status_event_fixed_param, - WMITLV_TAG_STRUC_wmi_p2p_noa_event_fixed_param, - WMITLV_TAG_STRUC_wmi_hb_set_enable_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_hb_set_tcp_params_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_hb_set_tcp_pkt_filter_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_hb_set_udp_params_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_hb_set_udp_pkt_filter_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_hb_ind_event_fixed_param, - WMITLV_TAG_STRUC_wmi_tx_pause_event_fixed_param, - WMITLV_TAG_STRUC_wmi_rfkill_event_fixed_param, - WMITLV_TAG_STRUC_wmi_dfs_radar_event_fixed_param, - WMITLV_TAG_STRUC_wmi_dfs_phyerr_filter_ena_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_dfs_phyerr_filter_dis_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_batch_scan_result_scan_list, - WMITLV_TAG_STRUC_wmi_batch_scan_result_network_info, - WMITLV_TAG_STRUC_wmi_batch_scan_enable_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_batch_scan_disable_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_batch_scan_trigger_result_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_batch_scan_enabled_event_fixed_param, - WMITLV_TAG_STRUC_wmi_batch_scan_result_event_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_plmreq_start_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_plmreq_stop_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_thermal_mgmt_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_thermal_mgmt_event_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_info_req_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_info_event_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_info, - WMITLV_TAG_STRUC_wmi_peer_tx_fail_cnt_thr_event_fixed_param, - WMITLV_TAG_STRUC_wmi_rmc_set_mode_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_rmc_set_action_period_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_rmc_config_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_mhf_offload_set_mode_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_mhf_offload_plumb_routing_table_cmd_fixed_param, - WMITLV_TAG_STRUC_WMI_ADD_PROACTIVE_ARP_RSP_PATTERN_CMD_fixed_param, - WMITLV_TAG_STRUC_WMI_DEL_PROACTIVE_ARP_RSP_PATTERN_CMD_fixed_param, - WMITLV_TAG_STRUC_wmi_nan_cmd_param, - WMITLV_TAG_STRUC_wmi_nan_event_hdr, - WMITLV_TAG_STRUC_wmi_pdev_l1ss_track_event_fixed_param, - WMITLV_TAG_STRUC_wmi_diag_data_container_event_fixed_param, - WMITLV_TAG_STRUC_wmi_modem_power_state_cmd_param, - WMITLV_TAG_STRUC_wmi_peer_get_estimated_linkspeed_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_estimated_linkspeed_event_fixed_param, - WMITLV_TAG_STRUC_wmi_aggr_state_trig_event_fixed_param, - WMITLV_TAG_STRUC_wmi_mhf_offload_routing_table_entry, - WMITLV_TAG_STRUC_wmi_roam_scan_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_req_stats_ext_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_stats_ext_event_fixed_param, - WMITLV_TAG_STRUC_wmi_obss_scan_enable_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_obss_scan_disable_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_offload_prb_rsp_tx_status_event_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_set_led_config_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_host_auto_shutdown_cfg_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_host_auto_shutdown_event_fixed_param, - WMITLV_TAG_STRUC_wmi_update_whal_mib_stats_event_fixed_param, - WMITLV_TAG_STRUC_wmi_chan_avoid_update_cmd_param, - WMITLV_TAG_STRUC_WOW_IOAC_PKT_PATTERN_T, - WMITLV_TAG_STRUC_WOW_IOAC_TMR_PATTERN_T, - WMITLV_TAG_STRUC_WMI_WOW_IOAC_ADD_KEEPALIVE_CMD_fixed_param, - WMITLV_TAG_STRUC_WMI_WOW_IOAC_DEL_KEEPALIVE_CMD_fixed_param, - WMITLV_TAG_STRUC_WMI_WOW_IOAC_KEEPALIVE_T, - WMITLV_TAG_STRUC_WMI_WOW_IOAC_ADD_PATTERN_CMD_fixed_param, - WMITLV_TAG_STRUC_WMI_WOW_IOAC_DEL_PATTERN_CMD_fixed_param, - WMITLV_TAG_STRUC_wmi_start_link_stats_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_clear_link_stats_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_request_link_stats_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_iface_link_stats_event_fixed_param, - WMITLV_TAG_STRUC_wmi_radio_link_stats_event_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_stats_event_fixed_param, - WMITLV_TAG_STRUC_wmi_channel_stats, - WMITLV_TAG_STRUC_wmi_radio_link_stats, - WMITLV_TAG_STRUC_wmi_rate_stats, - WMITLV_TAG_STRUC_wmi_peer_link_stats, - WMITLV_TAG_STRUC_wmi_wmm_ac_stats, - WMITLV_TAG_STRUC_wmi_iface_link_stats, - WMITLV_TAG_STRUC_wmi_lpi_mgmt_snooping_config_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_lpi_start_scan_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_lpi_stop_scan_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_lpi_result_event_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_state_event_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_bucket_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_bucket_channel_event_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_start_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_stop_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_configure_wlan_change_monitor_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_wlan_change_bssid_param_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_configure_hotlist_monitor_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_get_cached_results_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_get_wlan_change_results_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_set_capabilities_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_get_capabilities_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_operation_event_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_start_stop_event_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_table_usage_event_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_wlan_descriptor_event_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_rssi_info_event_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_cached_results_event_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_wlan_change_results_event_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_wlan_change_result_bssid_event_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_hotlist_match_event_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_capabilities_event_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_cache_capabilities_event_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_wlan_change_monitor_capabilities_event_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_hotlist_monitor_capabilities_event_fixed_param, - WMITLV_TAG_STRUC_wmi_d0_wow_enable_disable_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_d0_wow_disable_ack_event_fixed_param, - WMITLV_TAG_STRUC_wmi_unit_test_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_roam_offload_tlv_param, - WMITLV_TAG_STRUC_wmi_roam_11i_offload_tlv_param, - WMITLV_TAG_STRUC_wmi_roam_11r_offload_tlv_param, - WMITLV_TAG_STRUC_wmi_roam_ese_offload_tlv_param, - WMITLV_TAG_STRUC_wmi_roam_synch_event_fixed_param, - WMITLV_TAG_STRUC_wmi_roam_synch_complete_fixed_param, - WMITLV_TAG_STRUC_wmi_extwow_enable_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_extwow_set_app_type1_params_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_extwow_set_app_type2_params_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_lpi_status_event_fixed_param, - WMITLV_TAG_STRUC_wmi_lpi_handoff_event_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_rate_stats_event_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_rate_ht_info, - WMITLV_TAG_STRUC_wmi_ric_request_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_get_temperature_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_temperature_event_fixed_param, - WMITLV_TAG_STRUC_wmi_set_dhcp_server_offload_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_tpc_chainmask_config_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_ric_tspec, - WMITLV_TAG_STRUC_wmi_tpc_chainmask_config, - WMITLV_TAG_STRUCT_wmi_ipa_offload_enable_disable_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_scan_prob_req_oui_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_key_material, - WMITLV_TAG_STRUC_wmi_tdls_set_offchan_mode_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_set_led_flashing_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_mdns_offload_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_mdns_set_fqdn_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_mdns_set_resp_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_mdns_get_stats_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_mdns_stats_event_fixed_param, - WMITLV_TAG_STRUC_wmi_roam_invoke_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_resume_event_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_set_antenna_diversity_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_sap_ofl_enable_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_sap_ofl_add_sta_event_fixed_param, - WMITLV_TAG_STRUC_wmi_sap_ofl_del_sta_event_fixed_param, - WMITLV_TAG_STRUC_wmi_apfind_cmd_param, - WMITLV_TAG_STRUC_wmi_apfind_event_hdr, - WMITLV_TAG_STRUC_wmi_ocb_set_sched_cmd_fixed_param, /* DEPRECATED */ - WMITLV_TAG_STRUC_wmi_ocb_set_sched_event_fixed_param, /* DEPRECATED */ - WMITLV_TAG_STRUC_wmi_ocb_set_config_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_ocb_set_config_resp_event_fixed_param, - WMITLV_TAG_STRUC_wmi_ocb_set_utc_time_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_ocb_start_timing_advert_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_ocb_stop_timing_advert_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_ocb_get_tsf_timer_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_ocb_get_tsf_timer_resp_event_fixed_param, - WMITLV_TAG_STRUC_wmi_dcc_get_stats_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_dcc_channel_stats_request, - WMITLV_TAG_STRUC_wmi_dcc_get_stats_resp_event_fixed_param, - WMITLV_TAG_STRUC_wmi_dcc_clear_stats_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_dcc_update_ndl_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_dcc_update_ndl_resp_event_fixed_param, - WMITLV_TAG_STRUC_wmi_dcc_stats_event_fixed_param, - WMITLV_TAG_STRUC_wmi_ocb_channel, - WMITLV_TAG_STRUC_wmi_ocb_schedule_element, - WMITLV_TAG_STRUC_wmi_dcc_ndl_stats_per_channel, - WMITLV_TAG_STRUC_wmi_dcc_ndl_chan, - WMITLV_TAG_STRUC_wmi_qos_parameter, - WMITLV_TAG_STRUC_wmi_dcc_ndl_active_state_config, - WMITLV_TAG_STRUC_wmi_roam_scan_extended_threshold_param, - WMITLV_TAG_STRUC_wmi_roam_filter_fixed_param, - WMITLV_TAG_STRUC_wmi_passpoint_config_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_passpoint_event_hdr, - WMITLV_TAG_STRUC_wmi_extscan_configure_hotlist_ssid_monitor_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_hotlist_ssid_match_event_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_tsf_tstamp_action_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_tsf_report_event_fixed_param, - WMITLV_TAG_STRUC_wmi_get_fw_mem_dump_fixed_param, - WMITLV_TAG_STRUC_wmi_update_fw_mem_dump_fixed_param, - WMITLV_TAG_STRUC_wmi_fw_mem_dump_params, - WMITLV_TAG_STRUC_wmi_debug_mesg_flush_fixed_param, - WMITLV_TAG_STRUC_wmi_debug_mesg_flush_complete_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_set_rate_report_condition_fixed_param, - WMITLV_TAG_STRUC_wmi_roam_subnet_change_config_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_set_ie_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_rssi_breach_monitor_config_fixed_param, - WMITLV_TAG_STRUC_wmi_rssi_breach_event_fixed_param, - WMITLV_TAG_STRUC_WOW_EVENT_INITIAL_WAKEUP_fixed_param, - WMITLV_TAG_STRUC_wmi_soc_set_pcl_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_soc_set_hw_mode_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_soc_set_hw_mode_response_event_fixed_param, - WMITLV_TAG_STRUC_wmi_soc_hw_mode_transition_event_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_txrx_streams, - WMITLV_TAG_STRUC_wmi_soc_set_hw_mode_response_vdev_mac_entry, - WMITLV_TAG_STRUC_wmi_soc_set_dual_mac_config_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_soc_set_dual_mac_config_response_event_fixed_param, - WMITLV_TAG_STRUC_WOW_IOAC_SOCK_PATTERN_T, - WMITLV_TAG_STRUC_wmi_wow_enable_icmpv6_na_flt_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_diag_event_log_config_fixed_param, - WMITLV_TAG_STRUC_wmi_diag_event_log_supported_event_fixed_params, - WMITLV_TAG_STRUC_wmi_packet_filter_config_fixed_param, - WMITLV_TAG_STRUC_wmi_packet_filter_enable_fixed_param, - WMITLV_TAG_STRUC_wmi_sap_set_blacklist_param_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_mgmt_tx_send_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_mgmt_tx_compl_event_fixed_param, - WMITLV_TAG_STRUC_wmi_soc_set_antenna_mode_cmd_fixed_param, - WMITLV_TAG_STRUC_WMI_WOW_UDP_SVC_OFLD_CMD_fixed_param, - WMITLV_TAG_STRUC_wmi_lro_info_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_roam_earlystop_rssi_thres_param, - WMITLV_TAG_STRUC_wmi_service_ready_ext_event_fixed_param, - WMITLV_TAG_STRUC_wmi_mawc_sensor_report_ind_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_mawc_enable_sensor_event_fixed_param, - WMITLV_TAG_STRUC_wmi_roam_configure_mawc_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_nlo_configure_mawc_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_extscan_configure_mawc_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_assoc_conf_event_fixed_param, - WMITLV_TAG_STRUC_wmi_wow_hostwakeup_gpio_pin_pattern_config_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_ap_ps_egap_param_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_ap_ps_egap_info_event_fixed_param, - WMITLV_TAG_STRUC_WMI_PMF_OFFLOAD_SET_SA_QUERY_CMD_fixed_param, - WMITLV_TAG_STRUC_wmi_transfer_data_to_flash_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_transfer_data_to_flash_complete_event_fixed_param, - WMITLV_TAG_STRUC_wmi_scpc_event_fixed_param, - WMITLV_TAG_STRUC_wmi_ap_ps_egap_info_chainmask_list, - WMITLV_TAG_STRUC_wmi_sta_smps_force_mode_complete_event_fixed_param, - WMITLV_TAG_STRUC_wmi_bpf_get_capability_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_bpf_capability_info_evt_fixed_param, - WMITLV_TAG_STRUC_wmi_bpf_get_vdev_stats_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_bpf_vdev_stats_info_evt_fixed_param, - WMITLV_TAG_STRUC_wmi_bpf_set_vdev_instructions_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_bpf_del_vdev_instructions_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_delete_resp_event_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_delete_resp_event_fixed_param, - WMITLV_TAG_STRUC_wmi_roam_dense_thres_param, - WMITLV_TAG_STRUC_enlo_candidate_score_param, - WMITLV_TAG_STRUC_wmi_peer_update_wds_entry_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_config_ratemask_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_fips_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_smart_ant_enable_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_smart_ant_set_rx_antenna_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_tx_antenna_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_train_antenna_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_node_config_ops_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_set_ant_switch_tbl_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_set_ctl_table_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_set_mimogain_table_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_fwtest_set_param_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_atf_request_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_atf_request_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_get_ani_cck_config_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_get_ani_ofdm_config_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_inst_rssi_stats_resp_fixed_param, - WMITLV_TAG_STRUC_wmi_med_util_report_event_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_sta_ps_statechange_event_fixed_param, - WMITLV_TAG_STRUC_wmi_wds_addr_event_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_ratecode_list_event_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_event_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_tpc_event_fixed_param, - WMITLV_TAG_STRUC_wmi_ani_ofdm_event_fixed_param, - WMITLV_TAG_STRUC_wmi_ani_cck_event_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_channel_hopping_event_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_fips_event_fixed_param, - WMITLV_TAG_STRUC_wmi_atf_peer_info, - WMITLV_TAG_STRUC_wmi_pdev_get_tpc_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_filter_nrp_config_cmd_fixed_param, - WMITLV_TAG_STRUC_WMI_QBOOST_CFG_CMD_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_smart_ant_gpio_handle, - WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_tx_antenna_series, - WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_train_antenna_param, - WMITLV_TAG_STRUC_wmi_pdev_set_ant_ctrl_chain, - WMITLV_TAG_STRUC_wmi_peer_cck_ofdm_rate_info, - WMITLV_TAG_STRUC_wmi_peer_mcs_rate_info, - WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_nfdBr, - WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_nfdBm, - WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_freqNum, - WMITLV_TAG_STRUC_wmi_mu_report_total_mu, - WMITLV_TAG_STRUC_wmi_vdev_set_dscp_tid_map_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_roam_set_mbo_fixed_param, - WMITLV_TAG_STRUC_wmi_mib_stats_enable_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_nan_disc_iface_created_event_fixed_param, - WMITLV_TAG_STRUC_wmi_nan_disc_iface_deleted_event_fixed_param, - WMITLV_TAG_STRUC_wmi_nan_started_cluster_event_fixed_param, - WMITLV_TAG_STRUC_wmi_nan_joined_cluster_event_fixed_param, - WMITLV_TAG_STRUC_wmi_ndi_get_cap_req_fixed_param, - WMITLV_TAG_STRUC_wmi_ndp_initiator_req_fixed_param, - WMITLV_TAG_STRUC_wmi_ndp_responder_req_fixed_param, - WMITLV_TAG_STRUC_wmi_ndp_end_req_fixed_param, - WMITLV_TAG_STRUC_wmi_ndi_cap_rsp_event_fixed_param, - WMITLV_TAG_STRUC_wmi_ndp_initiator_rsp_event_fixed_param, - WMITLV_TAG_STRUC_wmi_ndp_responder_rsp_event_fixed_param, - WMITLV_TAG_STRUC_wmi_ndp_end_rsp_event_fixed_param, - WMITLV_TAG_STRUC_wmi_ndp_indication_event_fixed_param, - WMITLV_TAG_STRUC_wmi_ndp_confirm_event_fixed_param, - WMITLV_TAG_STRUC_wmi_ndp_end_indication_event_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_set_quiet_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_set_pcl_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_set_hw_mode_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_set_mac_config_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_set_antenna_mode_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_set_hw_mode_response_event_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_hw_mode_transition_event_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_set_hw_mode_response_vdev_mac_entry, - WMITLV_TAG_STRUC_wmi_pdev_set_mac_config_response_event_fixed_param, - WMITLV_TAG_STRUC_WMI_COEX_CONFIG_CMD_fixed_param, - WMITLV_TAG_STRUC_wmi_config_enhanced_mcast_filter_fixed_param, - WMITLV_TAG_STRUC_WMI_CHAN_AVOID_RPT_ALLOW_CMD_fixed_param, - WMITLV_TAG_STRUC_wmi_set_periodic_channel_stats_config_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_set_custom_aggr_size_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_wal_power_debug_cmd_fixed_param, - WMITLV_TAG_STRUC_WMI_MAC_PHY_CAPABILITIES, - WMITLV_TAG_STRUC_WMI_HW_MODE_CAPABILITIES, - WMITLV_TAG_STRUC_WMI_SOC_MAC_PHY_HW_MODE_CAPS, - WMITLV_TAG_STRUC_WMI_HAL_REG_CAPABILITIES_EXT, - WMITLV_TAG_STRUC_WMI_SOC_HAL_REG_CAPABILITIES, - WMITLV_TAG_STRUC_wmi_vdev_wisa_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_tx_power_level_stats_evt_fixed_param, - WMITLV_TAG_STRUC_wmi_scan_adaptive_dwell_parameters_tlv, - WMITLV_TAG_STRUC_wmi_scan_adaptive_dwell_config_fixed_param, - WMITLV_TAG_STRUC_wmi_wow_set_action_wake_up_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_ndp_end_rsp_per_ndi, - WMITLV_TAG_STRUC_wmi_peer_bwf_request_fixed_param, - WMITLV_TAG_STRUC_wmi_bwf_peer_info, - WMITLV_TAG_STRUC_wmi_dbglog_time_stamp_sync_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_place_holder_1, - WMITLV_TAG_STRUC_wmi_place_holder_2, - WMITLV_TAG_STRUC_wmi_per_chain_rssi_stats, - WMITLV_TAG_STRUC_wmi_rssi_stats, - WMITLV_TAG_STRUC_wmi_p2p_lo_start_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_p2p_lo_stop_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_p2p_lo_stopped_event_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_reorder_queue_setup_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_reorder_queue_remove_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_set_multiple_mcast_filter_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_mgmt_tx_compl_bundle_event_fixed_param, - WMITLV_TAG_STRUC_wmi_read_data_from_flash_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_read_data_from_flash_event_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_set_reorder_timeout_val_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_set_rx_blocksize_cmd_fixed_param, - WMITLV_TAG_STRUC_WMI_PDEV_SET_WAKEUP_CONFIG_CMDID_fixed_param, - WMITLV_TAG_STRUC_wmi_tlv_buf_len_param, - WMITLV_TAG_STRUC_wmi_service_available_event_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_antdiv_info_req_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_antdiv_info_event_fixed_param, - WMITLV_TAG_STRUC_wmi_peer_antdiv_info, - WMITLV_TAG_STRUC_wmi_pdev_get_antdiv_status_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_antdiv_status_event_fixed_param, - WMITLV_TAG_STRUC_wmi_mnt_filter_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_get_chip_power_stats_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_chip_power_stats_event_fixed_param, - WMITLV_TAG_STRUC_wmi_coex_get_antenna_isolation_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_coex_report_isolation_event_fixed_param, - WMITLV_TAG_STRUC_wmi_chan_cca_stats, - WMITLV_TAG_STRUC_wmi_peer_signal_stats, - WMITLV_TAG_STRUC_wmi_tx_stats, - WMITLV_TAG_STRUC_wmi_peer_ac_tx_stats, - WMITLV_TAG_STRUC_wmi_rx_stats, - WMITLV_TAG_STRUC_wmi_peer_ac_rx_stats, - WMITLV_TAG_STRUC_wmi_report_stats_event_fixed_param, - WMITLV_TAG_STRUC_wmi_chan_cca_stats_thresh, - WMITLV_TAG_STRUC_wmi_peer_signal_stats_thresh, - WMITLV_TAG_STRUC_wmi_tx_stats_thresh, - WMITLV_TAG_STRUC_wmi_rx_stats_thresh, - WMITLV_TAG_STRUC_wmi_pdev_set_stats_threshold_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_request_wlan_stats_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_rx_aggr_failure_event_fixed_param, - WMITLV_TAG_STRUC_wmi_rx_aggr_failure_info, - WMITLV_TAG_STRUC_wmi_vdev_encrypt_decrypt_data_req_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_encrypt_decrypt_data_resp_event_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_band_to_mac, - WMITLV_TAG_STRUC_wmi_tbtt_offset_info, - WMITLV_TAG_STRUC_wmi_tbtt_offset_ext_event_fixed_param, - WMITLV_TAG_STRUC_wmi_sar_limits_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_sar_limit_cmd_row, - WMITLV_TAG_STRUC_wmi_pdev_dfs_phyerr_offload_enable_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_dfs_phyerr_offload_disable_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_adfs_ch_cfg_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_adfs_ocac_abort_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_pdev_dfs_radar_detection_event_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_adfs_ocac_complete_event_fixed_param, - WMITLV_TAG_STRUC_wmi_vdev_dfs_cac_complete_event_fixed_param, - WMITLV_TAG_STRUC_wmi_vendor_oui, - WMITLV_TAG_STRUC_wmi_request_rcpi_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_update_rcpi_event_fixed_param, + /* 0 to 15 is reserved */ + WMITLV_TAG_LAST_RESERVED = 15, + WMITLV_TAG_FIRST_ARRAY_ENUM, /* First entry of ARRAY type tags */ + WMITLV_TAG_ARRAY_UINT32 = WMITLV_TAG_FIRST_ARRAY_ENUM, + WMITLV_TAG_ARRAY_BYTE, + WMITLV_TAG_ARRAY_STRUC, + WMITLV_TAG_ARRAY_FIXED_STRUC, + WMITLV_TAG_LAST_ARRAY_ENUM = 31, /* Last entry of ARRAY type tags */ + WMITLV_TAG_STRUC_wmi_service_ready_event_fixed_param, + WMITLV_TAG_STRUC_HAL_REG_CAPABILITIES, + WMITLV_TAG_STRUC_wlan_host_mem_req, + WMITLV_TAG_STRUC_wmi_ready_event_fixed_param, + WMITLV_TAG_STRUC_wmi_scan_event_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_tpc_config_event_fixed_param, + WMITLV_TAG_STRUC_wmi_chan_info_event_fixed_param, + WMITLV_TAG_STRUC_wmi_comb_phyerr_rx_hdr, + WMITLV_TAG_STRUC_wmi_vdev_start_response_event_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_stopped_event_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_install_key_complete_event_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_sta_kickout_event_fixed_param, + WMITLV_TAG_STRUC_wmi_mgmt_rx_hdr, + WMITLV_TAG_STRUC_wmi_tbtt_offset_event_fixed_param, + WMITLV_TAG_STRUC_wmi_tx_delba_complete_event_fixed_param, + WMITLV_TAG_STRUC_wmi_tx_addba_complete_event_fixed_param, + WMITLV_TAG_STRUC_wmi_roam_event_fixed_param, + WMITLV_TAG_STRUC_WOW_EVENT_INFO_fixed_param, + WMITLV_TAG_STRUC_WOW_EVENT_INFO_SECTION_BITMAP, + WMITLV_TAG_STRUC_wmi_rtt_event_header, + WMITLV_TAG_STRUC_wmi_rtt_error_report_event_fixed_param, + WMITLV_TAG_STRUC_wmi_rtt_meas_event_fixed_param, + WMITLV_TAG_STRUC_wmi_echo_event_fixed_param, + WMITLV_TAG_STRUC_wmi_ftm_intg_event_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_get_keepalive_event_fixed_param, + WMITLV_TAG_STRUC_wmi_gpio_input_event_fixed_param, + WMITLV_TAG_STRUC_wmi_csa_event_fixed_param, + WMITLV_TAG_STRUC_WMI_GTK_OFFLOAD_STATUS_EVENT_fixed_param, + WMITLV_TAG_STRUC_wmi_igtk_info, + WMITLV_TAG_STRUC_wmi_dcs_interference_event_fixed_param, + WMITLV_TAG_STRUC_ath_dcs_cw_int, /* DEPRECATED */ + WMITLV_TAG_STRUC_wlan_dcs_cw_int = /* alias */ + WMITLV_TAG_STRUC_ath_dcs_cw_int, + WMITLV_TAG_STRUC_ath_dcs_wlan_int_stat, /* DEPRECATED */ + WMITLV_TAG_STRUC_wlan_dcs_im_tgt_stats_t = /* alias */ + WMITLV_TAG_STRUC_ath_dcs_wlan_int_stat, + WMITLV_TAG_STRUC_wmi_wlan_profile_ctx_t, + WMITLV_TAG_STRUC_wmi_wlan_profile_t, + WMITLV_TAG_STRUC_wmi_pdev_qvit_event_fixed_param, + WMITLV_TAG_STRUC_wmi_host_swba_event_fixed_param, + WMITLV_TAG_STRUC_wmi_tim_info, + WMITLV_TAG_STRUC_wmi_p2p_noa_info, + WMITLV_TAG_STRUC_wmi_stats_event_fixed_param, + WMITLV_TAG_STRUC_wmi_avoid_freq_ranges_event_fixed_param, + WMITLV_TAG_STRUC_wmi_avoid_freq_range_desc, + WMITLV_TAG_STRUC_wmi_gtk_rekey_fail_event_fixed_param, + WMITLV_TAG_STRUC_wmi_init_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_resource_config, + WMITLV_TAG_STRUC_wlan_host_memory_chunk, + WMITLV_TAG_STRUC_wmi_start_scan_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_stop_scan_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_scan_chan_list_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_channel, + WMITLV_TAG_STRUC_wmi_pdev_set_regdomain_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_set_param_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_set_wmm_params_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_wmm_params, + WMITLV_TAG_STRUC_wmi_pdev_set_quiet_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_create_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_delete_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_start_request_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_p2p_noa_descriptor, + WMITLV_TAG_STRUC_wmi_p2p_go_set_beacon_ie_fixed_param, + WMITLV_TAG_STRUC_WMI_GTK_OFFLOAD_CMD_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_up_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_stop_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_down_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_set_param_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_install_key_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_create_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_delete_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_flush_tids_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_set_param_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_assoc_complete_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vht_rate_set, + WMITLV_TAG_STRUC_wmi_bcn_tmpl_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_prb_tmpl_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_bcn_prb_info, + WMITLV_TAG_STRUC_wmi_peer_tid_addba_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_tid_delba_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_sta_powersave_mode_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_sta_powersave_param_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_sta_dtim_ps_method_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_roam_scan_mode_fixed_param, + WMITLV_TAG_STRUC_wmi_roam_scan_rssi_threshold_fixed_param, + WMITLV_TAG_STRUC_wmi_roam_scan_period_fixed_param, + WMITLV_TAG_STRUC_wmi_roam_scan_rssi_change_threshold_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_suspend_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_resume_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_add_bcn_filter_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_rmv_bcn_filter_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_wow_enable_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_wow_hostwakeup_from_sleep_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_sta_uapsd_auto_trig_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_sta_uapsd_auto_trig_param, + WMITLV_TAG_STRUC_WMI_SET_ARP_NS_OFFLOAD_CMD_fixed_param, + WMITLV_TAG_STRUC_WMI_ARP_OFFLOAD_TUPLE, + WMITLV_TAG_STRUC_WMI_NS_OFFLOAD_TUPLE, + WMITLV_TAG_STRUC_wmi_ftm_intg_cmd_fixed_param, + WMITLV_TAG_STRUC_WMI_STA_KEEPALIVE_CMD_fixed_param, + WMITLV_TAG_STRUC_WMI_STA_KEEPALVE_ARP_RESPONSE, + WMITLV_TAG_STRUC_wmi_p2p_set_vendor_ie_data_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_ap_ps_peer_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_rate_retry_sched_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_wlan_profile_trigger_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_wlan_profile_set_hist_intvl_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_wlan_profile_get_prof_data_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_wlan_profile_enable_profile_id_cmd_fixed_param, + WMITLV_TAG_STRUC_WMI_WOW_DEL_PATTERN_CMD_fixed_param, + WMITLV_TAG_STRUC_WMI_WOW_ADD_DEL_EVT_CMD_fixed_param, + WMITLV_TAG_STRUC_wmi_rtt_measreq_head, + WMITLV_TAG_STRUC_wmi_rtt_measreq_body, + WMITLV_TAG_STRUC_wmi_rtt_tsf_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_spectral_configure_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_spectral_enable_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_request_stats_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_nlo_config_cmd_fixed_param, + WMITLV_TAG_STRUC_nlo_configured_parameters, + WMITLV_TAG_STRUC_wmi_csa_offload_enable_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_csa_offload_chanswitch_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_chatter_set_mode_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_echo_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_set_keepalive_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_get_keepalive_cmd_fixed_param, + WMITLV_TAG_STRUC_WMI_FORCE_FW_HANG_CMD_fixed_param, + WMITLV_TAG_STRUC_wmi_gpio_config_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_gpio_output_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_add_wds_entry_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_remove_wds_entry_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_bcn_tx_hdr, + WMITLV_TAG_STRUC_wmi_bcn_send_from_host_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_mgmt_tx_hdr, + WMITLV_TAG_STRUC_wmi_addba_clear_resp_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_addba_send_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_delba_send_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_addba_setresponse_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_send_singleamsdu_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_pktlog_enable_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_pktlog_disable_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_set_ht_ie_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_set_vht_ie_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_set_dscp_tid_map_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_green_ap_ps_enable_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_get_tpc_config_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_set_base_macaddr_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_mcast_group_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_roam_ap_profile_fixed_param, + WMITLV_TAG_STRUC_wmi_ap_profile, + WMITLV_TAG_STRUC_wmi_scan_sch_priority_table_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_dfs_enable_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_dfs_disable_cmd_fixed_param, + WMITLV_TAG_STRUC_WMI_WOW_ADD_PATTERN_CMD_fixed_param, + WMITLV_TAG_STRUC_WOW_BITMAP_PATTERN_T, + WMITLV_TAG_STRUC_WOW_IPV4_SYNC_PATTERN_T, + WMITLV_TAG_STRUC_WOW_IPV6_SYNC_PATTERN_T, + WMITLV_TAG_STRUC_WOW_MAGIC_PATTERN_CMD, + WMITLV_TAG_STRUC_WMI_scan_update_request_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_chatter_pkt_coalescing_filter, + WMITLV_TAG_STRUC_wmi_chatter_coalescing_add_filter_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_chatter_coalescing_delete_filter_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_chatter_coalescing_query_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_txbf_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_debug_log_config_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_nlo_event, + WMITLV_TAG_STRUC_wmi_chatter_query_reply_event_fixed_param, + WMITLV_TAG_STRUC_wmi_upload_h_hdr, + WMITLV_TAG_STRUC_wmi_capture_h_event_hdr, + WMITLV_TAG_STRUC_WMI_VDEV_WNM_SLEEPMODE_CMD_fixed_param, + WMITLV_TAG_STRUC_WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMD_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_wmm_addts_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_wmm_delts_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_set_wmm_params_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_tdls_set_state_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_tdls_peer_update_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_tdls_peer_event_fixed_param, + WMITLV_TAG_STRUC_wmi_tdls_peer_capabilities, + WMITLV_TAG_STRUC_wmi_vdev_mcc_set_tbtt_mode_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_roam_chan_list_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_mcc_bcn_intvl_change_event_fixed_param, + WMITLV_TAG_STRUC_wmi_resmgr_adaptive_ocs_enable_disable_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_resmgr_set_chan_time_quota_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_resmgr_set_chan_latency_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_ba_req_ssn_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_ba_rsp_ssn_event_fixed_param, + WMITLV_TAG_STRUC_wmi_sta_smps_force_mode_cmd_fixed_param, + WMITLV_TAG_STRUC_WMI_SET_MCASTBCAST_FILTER_CMD_fixed_param, + WMITLV_TAG_STRUC_wmi_p2p_set_oppps_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_p2p_set_noa_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_ba_req_ssn_cmd_sub_struct_param, + WMITLV_TAG_STRUC_wmi_ba_req_ssn_event_sub_struct_param, + WMITLV_TAG_STRUC_wmi_sta_smps_param_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_set_gtx_params_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_mcc_sched_traffic_stats_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_mcc_sched_sta_traffic_stats, + WMITLV_TAG_STRUC_wmi_offload_bcn_tx_status_event_fixed_param, + WMITLV_TAG_STRUC_wmi_p2p_noa_event_fixed_param, + WMITLV_TAG_STRUC_wmi_hb_set_enable_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_hb_set_tcp_params_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_hb_set_tcp_pkt_filter_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_hb_set_udp_params_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_hb_set_udp_pkt_filter_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_hb_ind_event_fixed_param, + WMITLV_TAG_STRUC_wmi_tx_pause_event_fixed_param, + WMITLV_TAG_STRUC_wmi_rfkill_event_fixed_param, + WMITLV_TAG_STRUC_wmi_dfs_radar_event_fixed_param, + WMITLV_TAG_STRUC_wmi_dfs_phyerr_filter_ena_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_dfs_phyerr_filter_dis_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_batch_scan_result_scan_list, + WMITLV_TAG_STRUC_wmi_batch_scan_result_network_info, + WMITLV_TAG_STRUC_wmi_batch_scan_enable_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_batch_scan_disable_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_batch_scan_trigger_result_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_batch_scan_enabled_event_fixed_param, + WMITLV_TAG_STRUC_wmi_batch_scan_result_event_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_plmreq_start_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_plmreq_stop_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_thermal_mgmt_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_thermal_mgmt_event_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_info_req_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_info_event_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_info, + WMITLV_TAG_STRUC_wmi_peer_tx_fail_cnt_thr_event_fixed_param, + WMITLV_TAG_STRUC_wmi_rmc_set_mode_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_rmc_set_action_period_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_rmc_config_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_mhf_offload_set_mode_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_mhf_offload_plumb_routing_table_cmd_fixed_param, + WMITLV_TAG_STRUC_WMI_ADD_PROACTIVE_ARP_RSP_PATTERN_CMD_fixed_param, + WMITLV_TAG_STRUC_WMI_DEL_PROACTIVE_ARP_RSP_PATTERN_CMD_fixed_param, + WMITLV_TAG_STRUC_wmi_nan_cmd_param, + WMITLV_TAG_STRUC_wmi_nan_event_hdr, + WMITLV_TAG_STRUC_wmi_pdev_l1ss_track_event_fixed_param, + WMITLV_TAG_STRUC_wmi_diag_data_container_event_fixed_param, + WMITLV_TAG_STRUC_wmi_modem_power_state_cmd_param, + WMITLV_TAG_STRUC_wmi_peer_get_estimated_linkspeed_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_estimated_linkspeed_event_fixed_param, + WMITLV_TAG_STRUC_wmi_aggr_state_trig_event_fixed_param, + WMITLV_TAG_STRUC_wmi_mhf_offload_routing_table_entry, + WMITLV_TAG_STRUC_wmi_roam_scan_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_req_stats_ext_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_stats_ext_event_fixed_param, + WMITLV_TAG_STRUC_wmi_obss_scan_enable_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_obss_scan_disable_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_offload_prb_rsp_tx_status_event_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_set_led_config_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_host_auto_shutdown_cfg_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_host_auto_shutdown_event_fixed_param, + WMITLV_TAG_STRUC_wmi_update_whal_mib_stats_event_fixed_param, + WMITLV_TAG_STRUC_wmi_chan_avoid_update_cmd_param, + WMITLV_TAG_STRUC_WOW_IOAC_PKT_PATTERN_T, + WMITLV_TAG_STRUC_WOW_IOAC_TMR_PATTERN_T, + WMITLV_TAG_STRUC_WMI_WOW_IOAC_ADD_KEEPALIVE_CMD_fixed_param, + WMITLV_TAG_STRUC_WMI_WOW_IOAC_DEL_KEEPALIVE_CMD_fixed_param, + WMITLV_TAG_STRUC_WMI_WOW_IOAC_KEEPALIVE_T, + WMITLV_TAG_STRUC_WMI_WOW_IOAC_ADD_PATTERN_CMD_fixed_param, + WMITLV_TAG_STRUC_WMI_WOW_IOAC_DEL_PATTERN_CMD_fixed_param, + WMITLV_TAG_STRUC_wmi_start_link_stats_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_clear_link_stats_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_request_link_stats_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_iface_link_stats_event_fixed_param, + WMITLV_TAG_STRUC_wmi_radio_link_stats_event_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_stats_event_fixed_param, + WMITLV_TAG_STRUC_wmi_channel_stats, + WMITLV_TAG_STRUC_wmi_radio_link_stats, + WMITLV_TAG_STRUC_wmi_rate_stats, + WMITLV_TAG_STRUC_wmi_peer_link_stats, + WMITLV_TAG_STRUC_wmi_wmm_ac_stats, + WMITLV_TAG_STRUC_wmi_iface_link_stats, + WMITLV_TAG_STRUC_wmi_lpi_mgmt_snooping_config_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_lpi_start_scan_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_lpi_stop_scan_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_lpi_result_event_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_state_event_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_bucket_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_bucket_channel_event_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_start_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_stop_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_configure_wlan_change_monitor_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_wlan_change_bssid_param_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_configure_hotlist_monitor_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_get_cached_results_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_get_wlan_change_results_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_set_capabilities_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_get_capabilities_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_operation_event_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_start_stop_event_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_table_usage_event_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_wlan_descriptor_event_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_rssi_info_event_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_cached_results_event_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_wlan_change_results_event_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_wlan_change_result_bssid_event_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_hotlist_match_event_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_capabilities_event_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_cache_capabilities_event_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_wlan_change_monitor_capabilities_event_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_hotlist_monitor_capabilities_event_fixed_param, + WMITLV_TAG_STRUC_wmi_d0_wow_enable_disable_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_d0_wow_disable_ack_event_fixed_param, + WMITLV_TAG_STRUC_wmi_unit_test_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_roam_offload_tlv_param, + WMITLV_TAG_STRUC_wmi_roam_11i_offload_tlv_param, + WMITLV_TAG_STRUC_wmi_roam_11r_offload_tlv_param, + WMITLV_TAG_STRUC_wmi_roam_ese_offload_tlv_param, + WMITLV_TAG_STRUC_wmi_roam_synch_event_fixed_param, + WMITLV_TAG_STRUC_wmi_roam_synch_complete_fixed_param, + WMITLV_TAG_STRUC_wmi_extwow_enable_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_extwow_set_app_type1_params_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_extwow_set_app_type2_params_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_lpi_status_event_fixed_param, + WMITLV_TAG_STRUC_wmi_lpi_handoff_event_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_rate_stats_event_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_rate_ht_info, + WMITLV_TAG_STRUC_wmi_ric_request_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_get_temperature_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_temperature_event_fixed_param, + WMITLV_TAG_STRUC_wmi_set_dhcp_server_offload_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_tpc_chainmask_config_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_ric_tspec, + WMITLV_TAG_STRUC_wmi_tpc_chainmask_config, + WMITLV_TAG_STRUCT_wmi_ipa_offload_enable_disable_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_scan_prob_req_oui_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_key_material, + WMITLV_TAG_STRUC_wmi_tdls_set_offchan_mode_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_set_led_flashing_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_mdns_offload_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_mdns_set_fqdn_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_mdns_set_resp_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_mdns_get_stats_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_mdns_stats_event_fixed_param, + WMITLV_TAG_STRUC_wmi_roam_invoke_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_resume_event_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_set_antenna_diversity_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_sap_ofl_enable_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_sap_ofl_add_sta_event_fixed_param, + WMITLV_TAG_STRUC_wmi_sap_ofl_del_sta_event_fixed_param, + WMITLV_TAG_STRUC_wmi_apfind_cmd_param, + WMITLV_TAG_STRUC_wmi_apfind_event_hdr, + WMITLV_TAG_STRUC_wmi_ocb_set_sched_cmd_fixed_param, // DEPRECATED + WMITLV_TAG_STRUC_wmi_ocb_set_sched_event_fixed_param, // DEPRECATED + WMITLV_TAG_STRUC_wmi_ocb_set_config_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_ocb_set_config_resp_event_fixed_param, + WMITLV_TAG_STRUC_wmi_ocb_set_utc_time_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_ocb_start_timing_advert_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_ocb_stop_timing_advert_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_ocb_get_tsf_timer_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_ocb_get_tsf_timer_resp_event_fixed_param, + WMITLV_TAG_STRUC_wmi_dcc_get_stats_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_dcc_channel_stats_request, + WMITLV_TAG_STRUC_wmi_dcc_get_stats_resp_event_fixed_param, + WMITLV_TAG_STRUC_wmi_dcc_clear_stats_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_dcc_update_ndl_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_dcc_update_ndl_resp_event_fixed_param, + WMITLV_TAG_STRUC_wmi_dcc_stats_event_fixed_param, + WMITLV_TAG_STRUC_wmi_ocb_channel, + WMITLV_TAG_STRUC_wmi_ocb_schedule_element, + WMITLV_TAG_STRUC_wmi_dcc_ndl_stats_per_channel, + WMITLV_TAG_STRUC_wmi_dcc_ndl_chan, + WMITLV_TAG_STRUC_wmi_qos_parameter, + WMITLV_TAG_STRUC_wmi_dcc_ndl_active_state_config, + WMITLV_TAG_STRUC_wmi_roam_scan_extended_threshold_param, + WMITLV_TAG_STRUC_wmi_roam_filter_fixed_param, + WMITLV_TAG_STRUC_wmi_passpoint_config_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_passpoint_event_hdr, + WMITLV_TAG_STRUC_wmi_extscan_configure_hotlist_ssid_monitor_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_hotlist_ssid_match_event_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_tsf_tstamp_action_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_tsf_report_event_fixed_param, + WMITLV_TAG_STRUC_wmi_get_fw_mem_dump_fixed_param, + WMITLV_TAG_STRUC_wmi_update_fw_mem_dump_fixed_param, + WMITLV_TAG_STRUC_wmi_fw_mem_dump_params, + WMITLV_TAG_STRUC_wmi_debug_mesg_flush_fixed_param, + WMITLV_TAG_STRUC_wmi_debug_mesg_flush_complete_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_set_rate_report_condition_fixed_param, + WMITLV_TAG_STRUC_wmi_roam_subnet_change_config_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_set_ie_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_rssi_breach_monitor_config_fixed_param, + WMITLV_TAG_STRUC_wmi_rssi_breach_event_fixed_param, + WMITLV_TAG_STRUC_WOW_EVENT_INITIAL_WAKEUP_fixed_param, + WMITLV_TAG_STRUC_wmi_soc_set_pcl_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_soc_set_hw_mode_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_soc_set_hw_mode_response_event_fixed_param, + WMITLV_TAG_STRUC_wmi_soc_hw_mode_transition_event_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_txrx_streams, + WMITLV_TAG_STRUC_wmi_soc_set_hw_mode_response_vdev_mac_entry, + WMITLV_TAG_STRUC_wmi_soc_set_dual_mac_config_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_soc_set_dual_mac_config_response_event_fixed_param, + WMITLV_TAG_STRUC_WOW_IOAC_SOCK_PATTERN_T, + WMITLV_TAG_STRUC_wmi_wow_enable_icmpv6_na_flt_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_diag_event_log_config_fixed_param, + WMITLV_TAG_STRUC_wmi_diag_event_log_supported_event_fixed_params, + WMITLV_TAG_STRUC_wmi_packet_filter_config_fixed_param, + WMITLV_TAG_STRUC_wmi_packet_filter_enable_fixed_param, + WMITLV_TAG_STRUC_wmi_sap_set_blacklist_param_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_mgmt_tx_send_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_mgmt_tx_compl_event_fixed_param, + WMITLV_TAG_STRUC_wmi_soc_set_antenna_mode_cmd_fixed_param, + WMITLV_TAG_STRUC_WMI_WOW_UDP_SVC_OFLD_CMD_fixed_param, + WMITLV_TAG_STRUC_wmi_lro_info_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_roam_earlystop_rssi_thres_param, + WMITLV_TAG_STRUC_wmi_service_ready_ext_event_fixed_param, + WMITLV_TAG_STRUC_wmi_mawc_sensor_report_ind_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_mawc_enable_sensor_event_fixed_param, + WMITLV_TAG_STRUC_wmi_roam_configure_mawc_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_nlo_configure_mawc_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_extscan_configure_mawc_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_assoc_conf_event_fixed_param, + WMITLV_TAG_STRUC_wmi_wow_hostwakeup_gpio_pin_pattern_config_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_ap_ps_egap_param_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_ap_ps_egap_info_event_fixed_param, + WMITLV_TAG_STRUC_WMI_PMF_OFFLOAD_SET_SA_QUERY_CMD_fixed_param, + WMITLV_TAG_STRUC_wmi_transfer_data_to_flash_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_transfer_data_to_flash_complete_event_fixed_param, + WMITLV_TAG_STRUC_wmi_scpc_event_fixed_param, + WMITLV_TAG_STRUC_wmi_ap_ps_egap_info_chainmask_list, + WMITLV_TAG_STRUC_wmi_sta_smps_force_mode_complete_event_fixed_param, + WMITLV_TAG_STRUC_wmi_bpf_get_capability_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_bpf_capability_info_evt_fixed_param, + WMITLV_TAG_STRUC_wmi_bpf_get_vdev_stats_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_bpf_vdev_stats_info_evt_fixed_param, + WMITLV_TAG_STRUC_wmi_bpf_set_vdev_instructions_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_bpf_del_vdev_instructions_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_delete_resp_event_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_delete_resp_event_fixed_param, + WMITLV_TAG_STRUC_wmi_roam_dense_thres_param, + WMITLV_TAG_STRUC_enlo_candidate_score_param, + WMITLV_TAG_STRUC_wmi_peer_update_wds_entry_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_config_ratemask_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_fips_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_smart_ant_enable_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_smart_ant_set_rx_antenna_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_tx_antenna_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_train_antenna_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_node_config_ops_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_set_ant_switch_tbl_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_set_ctl_table_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_set_mimogain_table_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_fwtest_set_param_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_atf_request_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_atf_request_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_get_ani_cck_config_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_get_ani_ofdm_config_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_inst_rssi_stats_resp_fixed_param, + WMITLV_TAG_STRUC_wmi_med_util_report_event_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_sta_ps_statechange_event_fixed_param, + WMITLV_TAG_STRUC_wmi_wds_addr_event_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_ratecode_list_event_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_event_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_tpc_event_fixed_param, + WMITLV_TAG_STRUC_wmi_ani_ofdm_event_fixed_param, + WMITLV_TAG_STRUC_wmi_ani_cck_event_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_channel_hopping_event_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_fips_event_fixed_param, + WMITLV_TAG_STRUC_wmi_atf_peer_info, + WMITLV_TAG_STRUC_wmi_pdev_get_tpc_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_filter_nrp_config_cmd_fixed_param, + WMITLV_TAG_STRUC_WMI_QBOOST_CFG_CMD_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_smart_ant_gpio_handle, + WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_tx_antenna_series, + WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_train_antenna_param, + WMITLV_TAG_STRUC_wmi_pdev_set_ant_ctrl_chain, + WMITLV_TAG_STRUC_wmi_peer_cck_ofdm_rate_info, + WMITLV_TAG_STRUC_wmi_peer_mcs_rate_info, + WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_nfdBr, + WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_nfdBm, + WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_freqNum, + WMITLV_TAG_STRUC_wmi_mu_report_total_mu, + WMITLV_TAG_STRUC_wmi_vdev_set_dscp_tid_map_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_roam_set_mbo_fixed_param, + WMITLV_TAG_STRUC_wmi_mib_stats_enable_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_nan_disc_iface_created_event_fixed_param, + WMITLV_TAG_STRUC_wmi_nan_disc_iface_deleted_event_fixed_param, + WMITLV_TAG_STRUC_wmi_nan_started_cluster_event_fixed_param, + WMITLV_TAG_STRUC_wmi_nan_joined_cluster_event_fixed_param, + WMITLV_TAG_STRUC_wmi_ndi_get_cap_req_fixed_param, + WMITLV_TAG_STRUC_wmi_ndp_initiator_req_fixed_param, + WMITLV_TAG_STRUC_wmi_ndp_responder_req_fixed_param, + WMITLV_TAG_STRUC_wmi_ndp_end_req_fixed_param, + WMITLV_TAG_STRUC_wmi_ndi_cap_rsp_event_fixed_param, + WMITLV_TAG_STRUC_wmi_ndp_initiator_rsp_event_fixed_param, + WMITLV_TAG_STRUC_wmi_ndp_responder_rsp_event_fixed_param, + WMITLV_TAG_STRUC_wmi_ndp_end_rsp_event_fixed_param, + WMITLV_TAG_STRUC_wmi_ndp_indication_event_fixed_param, + WMITLV_TAG_STRUC_wmi_ndp_confirm_event_fixed_param, + WMITLV_TAG_STRUC_wmi_ndp_end_indication_event_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_set_quiet_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_set_pcl_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_set_hw_mode_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_set_mac_config_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_set_antenna_mode_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_set_hw_mode_response_event_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_hw_mode_transition_event_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_set_hw_mode_response_vdev_mac_entry, + WMITLV_TAG_STRUC_wmi_pdev_set_mac_config_response_event_fixed_param, + WMITLV_TAG_STRUC_WMI_COEX_CONFIG_CMD_fixed_param, + WMITLV_TAG_STRUC_wmi_config_enhanced_mcast_filter_fixed_param, + WMITLV_TAG_STRUC_WMI_CHAN_AVOID_RPT_ALLOW_CMD_fixed_param, + WMITLV_TAG_STRUC_wmi_set_periodic_channel_stats_config_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_set_custom_aggr_size_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_wal_power_debug_cmd_fixed_param, + WMITLV_TAG_STRUC_WMI_MAC_PHY_CAPABILITIES, + WMITLV_TAG_STRUC_WMI_HW_MODE_CAPABILITIES, + WMITLV_TAG_STRUC_WMI_SOC_MAC_PHY_HW_MODE_CAPS, + WMITLV_TAG_STRUC_WMI_HAL_REG_CAPABILITIES_EXT, + WMITLV_TAG_STRUC_WMI_SOC_HAL_REG_CAPABILITIES, + WMITLV_TAG_STRUC_wmi_vdev_wisa_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_tx_power_level_stats_evt_fixed_param, + WMITLV_TAG_STRUC_wmi_scan_adaptive_dwell_parameters_tlv, + WMITLV_TAG_STRUC_wmi_scan_adaptive_dwell_config_fixed_param, + WMITLV_TAG_STRUC_wmi_wow_set_action_wake_up_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_ndp_end_rsp_per_ndi, + WMITLV_TAG_STRUC_wmi_peer_bwf_request_fixed_param, + WMITLV_TAG_STRUC_wmi_bwf_peer_info, + WMITLV_TAG_STRUC_wmi_dbglog_time_stamp_sync_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_rmc_set_leader_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_rmc_manual_leader_event_fixed_param, + WMITLV_TAG_STRUC_wmi_per_chain_rssi_stats, + WMITLV_TAG_STRUC_wmi_rssi_stats, + WMITLV_TAG_STRUC_wmi_p2p_lo_start_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_p2p_lo_stop_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_p2p_lo_stopped_event_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_reorder_queue_setup_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_reorder_queue_remove_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_set_multiple_mcast_filter_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_mgmt_tx_compl_bundle_event_fixed_param, + WMITLV_TAG_STRUC_wmi_read_data_from_flash_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_read_data_from_flash_event_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_set_reorder_timeout_val_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_set_rx_blocksize_cmd_fixed_param, + WMITLV_TAG_STRUC_WMI_PDEV_SET_WAKEUP_CONFIG_CMDID_fixed_param, + WMITLV_TAG_STRUC_wmi_tlv_buf_len_param, + WMITLV_TAG_STRUC_wmi_service_available_event_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_antdiv_info_req_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_antdiv_info_event_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_antdiv_info, + WMITLV_TAG_STRUC_wmi_pdev_get_antdiv_status_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_antdiv_status_event_fixed_param, + WMITLV_TAG_STRUC_wmi_mnt_filter_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_get_chip_power_stats_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_chip_power_stats_event_fixed_param, + WMITLV_TAG_STRUC_wmi_coex_get_antenna_isolation_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_coex_report_isolation_event_fixed_param, + WMITLV_TAG_STRUC_wmi_chan_cca_stats, + WMITLV_TAG_STRUC_wmi_peer_signal_stats, + WMITLV_TAG_STRUC_wmi_tx_stats, + WMITLV_TAG_STRUC_wmi_peer_ac_tx_stats, + WMITLV_TAG_STRUC_wmi_rx_stats, + WMITLV_TAG_STRUC_wmi_peer_ac_rx_stats, + WMITLV_TAG_STRUC_wmi_report_stats_event_fixed_param, + WMITLV_TAG_STRUC_wmi_chan_cca_stats_thresh, + WMITLV_TAG_STRUC_wmi_peer_signal_stats_thresh, + WMITLV_TAG_STRUC_wmi_tx_stats_thresh, + WMITLV_TAG_STRUC_wmi_rx_stats_thresh, + WMITLV_TAG_STRUC_wmi_pdev_set_stats_threshold_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_request_wlan_stats_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_rx_aggr_failure_event_fixed_param, + WMITLV_TAG_STRUC_wmi_rx_aggr_failure_info, + WMITLV_TAG_STRUC_wmi_vdev_encrypt_decrypt_data_req_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_encrypt_decrypt_data_resp_event_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_band_to_mac, + WMITLV_TAG_STRUC_wmi_tbtt_offset_info, + WMITLV_TAG_STRUC_wmi_tbtt_offset_ext_event_fixed_param, + WMITLV_TAG_STRUC_wmi_sar_limits_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_sar_limit_cmd_row, + WMITLV_TAG_STRUC_wmi_pdev_dfs_phyerr_offload_enable_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_dfs_phyerr_offload_disable_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_adfs_ch_cfg_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_adfs_ocac_abort_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_dfs_radar_detection_event_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_adfs_ocac_complete_event_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_dfs_cac_complete_event_fixed_param, + WMITLV_TAG_STRUC_wmi_vendor_oui, + WMITLV_TAG_STRUC_wmi_request_rcpi_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_update_rcpi_event_fixed_param, + WMITLV_TAG_STRUC_wmi_request_peer_stats_info_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_stats_info, + WMITLV_TAG_STRUC_wmi_peer_stats_info_event_fixed_param, + WMITLV_TAG_STRUC_wmi_pkgid_event_fixed_param, + WMITLV_TAG_STRUC_wmi_connected_nlo_rssi_params, + WMITLV_TAG_STRUC_wmi_set_current_country_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_regulatory_rule_struct, + WMITLV_TAG_STRUC_wmi_reg_chan_list_cc_event_fixed_param, + WMITLV_TAG_STRUC_wmi_11d_scan_start_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_11d_scan_stop_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_11d_new_country_event_fixed_param, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. * Otherwise, these WMI TLV Functions will be process them. */ -#define WMITLV_ALL_CMD_LIST(OP) \ - OP(WMI_INIT_CMDID) \ - OP(WMI_PEER_CREATE_CMDID) \ - OP(WMI_PEER_DELETE_CMDID) \ - OP(WMI_PEER_FLUSH_TIDS_CMDID) \ - OP(WMI_PEER_SET_PARAM_CMDID) \ - OP(WMI_STA_POWERSAVE_MODE_CMDID) \ - OP(WMI_STA_POWERSAVE_PARAM_CMDID) \ - OP(WMI_STA_DTIM_PS_METHOD_CMDID) \ - OP(WMI_PDEV_SET_REGDOMAIN_CMDID) \ - OP(WMI_PEER_TID_ADDBA_CMDID) \ - OP(WMI_PEER_TID_DELBA_CMDID) \ - OP(WMI_PDEV_FTM_INTG_CMDID) \ - OP(WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID) \ - OP(WMI_WOW_ENABLE_CMDID) \ - OP(WMI_RMV_BCN_FILTER_CMDID) \ - OP(WMI_ROAM_SCAN_MODE) \ - OP(WMI_ROAM_SCAN_RSSI_THRESHOLD) \ - OP(WMI_ROAM_SCAN_PERIOD) \ - OP(WMI_ROAM_SCAN_RSSI_CHANGE_THRESHOLD) \ - OP(WMI_START_SCAN_CMDID) \ - OP(WMI_VDEV_PLMREQ_START_CMDID) \ - OP(WMI_VDEV_PLMREQ_STOP_CMDID) \ - OP(WMI_PDEV_SET_CHANNEL_CMDID) \ - OP(WMI_PDEV_SET_WMM_PARAMS_CMDID) \ - OP(WMI_VDEV_START_REQUEST_CMDID) \ - OP(WMI_VDEV_RESTART_REQUEST_CMDID) \ - OP(WMI_P2P_GO_SET_BEACON_IE) \ - OP(WMI_GTK_OFFLOAD_CMDID) \ - OP(WMI_SCAN_CHAN_LIST_CMDID) \ - OP(WMI_STA_UAPSD_AUTO_TRIG_CMDID) \ - OP(WMI_PRB_TMPL_CMDID) \ - OP(WMI_BCN_TMPL_CMDID) \ - OP(WMI_VDEV_INSTALL_KEY_CMDID) \ - OP(WMI_PEER_ASSOC_CMDID) \ - OP(WMI_ADD_BCN_FILTER_CMDID) \ - OP(WMI_STA_KEEPALIVE_CMDID) \ - OP(WMI_SET_ARP_NS_OFFLOAD_CMDID) \ - OP(WMI_P2P_SET_VENDOR_IE_DATA_CMDID) \ - OP(WMI_AP_PS_PEER_PARAM_CMDID) \ - OP(WMI_WLAN_PROFILE_TRIGGER_CMDID) \ - OP(WMI_WLAN_PROFILE_SET_HIST_INTVL_CMDID) \ - OP(WMI_WLAN_PROFILE_GET_PROFILE_DATA_CMDID) \ - OP(WMI_WLAN_PROFILE_ENABLE_PROFILE_ID_CMDID) \ - OP(WMI_WOW_DEL_WAKE_PATTERN_CMDID) \ - OP(WMI_WOW_ENABLE_DISABLE_WAKE_EVENT_CMDID) \ - OP(WMI_RTT_MEASREQ_CMDID) \ - OP(WMI_RTT_TSF_CMDID) \ - OP(WMI_OEM_REQ_CMDID) \ - OP(WMI_VDEV_SPECTRAL_SCAN_CONFIGURE_CMDID) \ - OP(WMI_VDEV_SPECTRAL_SCAN_ENABLE_CMDID) \ - OP(WMI_REQUEST_STATS_CMDID) \ - OP(WMI_NETWORK_LIST_OFFLOAD_CONFIG_CMDID) \ - OP(WMI_CSA_OFFLOAD_ENABLE_CMDID) \ - OP(WMI_CSA_OFFLOAD_CHANSWITCH_CMDID) \ - OP(WMI_CHATTER_SET_MODE_CMDID) \ - OP(WMI_ECHO_CMDID) \ - OP(WMI_PDEV_UTF_CMDID) \ - OP(WMI_PDEV_QVIT_CMDID) \ - OP(WMI_VDEV_SET_KEEPALIVE_CMDID) \ - OP(WMI_VDEV_GET_KEEPALIVE_CMDID) \ - OP(WMI_FORCE_FW_HANG_CMDID) \ - OP(WMI_GPIO_CONFIG_CMDID) \ - OP(WMI_GPIO_OUTPUT_CMDID) \ - OP(WMI_PEER_ADD_WDS_ENTRY_CMDID) \ - OP(WMI_PEER_REMOVE_WDS_ENTRY_CMDID) \ - OP(WMI_BCN_TX_CMDID) \ - OP(WMI_PDEV_SEND_BCN_CMDID) \ - OP(WMI_MGMT_TX_CMDID) \ - OP(WMI_ADDBA_CLEAR_RESP_CMDID) \ - OP(WMI_ADDBA_SEND_CMDID) \ - OP(WMI_DELBA_SEND_CMDID) \ - OP(WMI_ADDBA_SET_RESP_CMDID) \ - OP(WMI_SEND_SINGLEAMSDU_CMDID) \ - OP(WMI_PDEV_PKTLOG_ENABLE_CMDID) \ - OP(WMI_PDEV_PKTLOG_DISABLE_CMDID) \ - OP(WMI_PDEV_SET_HT_CAP_IE_CMDID) \ - OP(WMI_PDEV_SET_VHT_CAP_IE_CMDID) \ - OP(WMI_PDEV_SET_DSCP_TID_MAP_CMDID) \ - OP(WMI_PDEV_GREEN_AP_PS_ENABLE_CMDID) \ - OP(WMI_PDEV_GET_TPC_CONFIG_CMDID) \ - OP(WMI_PDEV_SET_BASE_MACADDR_CMDID) \ - OP(WMI_PEER_MCAST_GROUP_CMDID) \ - OP(WMI_ROAM_AP_PROFILE) \ - OP(WMI_SCAN_SCH_PRIO_TBL_CMDID) \ - OP(WMI_PDEV_DFS_ENABLE_CMDID) \ - OP(WMI_PDEV_DFS_DISABLE_CMDID) \ - OP(WMI_WOW_ADD_WAKE_PATTERN_CMDID) \ - OP(WMI_PDEV_SUSPEND_CMDID) \ - OP(WMI_PDEV_RESUME_CMDID) \ - OP(WMI_STOP_SCAN_CMDID) \ - OP(WMI_PDEV_SET_PARAM_CMDID) \ - OP(WMI_PDEV_SET_QUIET_MODE_CMDID) \ - OP(WMI_VDEV_CREATE_CMDID) \ - OP(WMI_VDEV_DELETE_CMDID) \ - OP(WMI_VDEV_UP_CMDID) \ - OP(WMI_VDEV_STOP_CMDID) \ - OP(WMI_VDEV_DOWN_CMDID) \ - OP(WMI_VDEV_SET_PARAM_CMDID) \ - OP(WMI_SCAN_UPDATE_REQUEST_CMDID) \ - OP(WMI_CHATTER_ADD_COALESCING_FILTER_CMDID) \ - OP(WMI_CHATTER_DELETE_COALESCING_FILTER_CMDID) \ - OP(WMI_CHATTER_COALESCING_QUERY_CMDID) \ - OP(WMI_TXBF_CMDID) \ - OP(WMI_DBGLOG_CFG_CMDID) \ - OP(WMI_VDEV_WNM_SLEEPMODE_CMDID) \ - OP(WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMDID) \ - OP(WMI_VDEV_WMM_ADDTS_CMDID) \ - OP(WMI_VDEV_WMM_DELTS_CMDID) \ - OP(WMI_VDEV_SET_WMM_PARAMS_CMDID) \ - OP(WMI_VDEV_SET_GTX_PARAMS_CMDID) \ - OP(WMI_TDLS_SET_STATE_CMDID) \ - OP(WMI_TDLS_PEER_UPDATE_CMDID) \ - OP(WMI_FWTEST_VDEV_MCC_SET_TBTT_MODE_CMDID) \ - OP(WMI_ROAM_CHAN_LIST) \ - OP(WMI_RESMGR_ADAPTIVE_OCS_ENABLE_DISABLE_CMDID) \ - OP(WMI_RESMGR_SET_CHAN_TIME_QUOTA_CMDID) \ - OP(WMI_RESMGR_SET_CHAN_LATENCY_CMDID) \ - OP(WMI_BA_REQ_SSN_CMDID) \ - OP(WMI_STA_SMPS_FORCE_MODE_CMDID) \ - OP(WMI_SET_MCASTBCAST_FILTER_CMDID) \ - OP(WMI_P2P_SET_OPPPS_PARAM_CMDID) \ - OP(WMI_FWTEST_P2P_SET_NOA_PARAM_CMDID) \ - OP(WMI_STA_SMPS_PARAM_CMDID) \ - OP(WMI_MCC_SCHED_TRAFFIC_STATS_CMDID) \ - OP(WMI_HB_SET_ENABLE_CMDID) \ - OP(WMI_HB_SET_TCP_PARAMS_CMDID) \ - OP(WMI_HB_SET_TCP_PKT_FILTER_CMDID) \ - OP(WMI_HB_SET_UDP_PARAMS_CMDID) \ - OP(WMI_HB_SET_UDP_PKT_FILTER_CMDID) \ - OP(WMI_PEER_INFO_REQ_CMDID) \ - OP(WMI_RMC_SET_MODE_CMDID) \ - OP(WMI_RMC_SET_ACTION_PERIOD_CMDID) \ - OP(WMI_RMC_CONFIG_CMDID) \ - OP(WMI_MHF_OFFLOAD_SET_MODE_CMDID) \ - OP(WMI_MHF_OFFLOAD_PLUMB_ROUTING_TBL_CMDID) \ - OP(WMI_DFS_PHYERR_FILTER_ENA_CMDID) \ - OP(WMI_DFS_PHYERR_FILTER_DIS_CMDID) \ - OP(WMI_BATCH_SCAN_ENABLE_CMDID) \ - OP(WMI_BATCH_SCAN_DISABLE_CMDID) \ - OP(WMI_BATCH_SCAN_TRIGGER_RESULT_CMDID) \ - OP(WMI_THERMAL_MGMT_CMDID) \ - OP(WMI_ADD_PROACTIVE_ARP_RSP_PATTERN_CMDID) \ - OP(WMI_DEL_PROACTIVE_ARP_RSP_PATTERN_CMDID) \ - OP(WMI_NAN_CMDID) \ - OP(WMI_MODEM_POWER_STATE_CMDID) \ - OP(WMI_PEER_GET_ESTIMATED_LINKSPEED_CMDID) \ - OP(WMI_ROAM_SCAN_CMD) \ - OP(WMI_REQUEST_STATS_EXT_CMDID) \ - OP(WMI_OBSS_SCAN_ENABLE_CMDID) \ - OP(WMI_OBSS_SCAN_DISABLE_CMDID) \ - OP(WMI_PDEV_SET_LED_CONFIG_CMDID) \ - OP(WMI_HOST_AUTO_SHUTDOWN_CFG_CMDID) \ - OP(WMI_TPC_CHAINMASK_CONFIG_CMDID) \ - OP(WMI_CHAN_AVOID_UPDATE_CMDID) \ - OP(WMI_WOW_IOAC_ADD_KEEPALIVE_CMDID) \ - OP(WMI_WOW_IOAC_DEL_KEEPALIVE_CMDID) \ - OP(WMI_WOW_IOAC_ADD_WAKE_PATTERN_CMDID) \ - OP(WMI_WOW_IOAC_DEL_WAKE_PATTERN_CMDID) \ - OP(WMI_REQUEST_LINK_STATS_CMDID) \ - OP(WMI_START_LINK_STATS_CMDID) \ - OP(WMI_CLEAR_LINK_STATS_CMDID) \ - OP(WMI_LPI_MGMT_SNOOPING_CONFIG_CMDID) \ - OP(WMI_LPI_START_SCAN_CMDID) \ - OP(WMI_LPI_STOP_SCAN_CMDID) \ - OP(WMI_EXTSCAN_START_CMDID) \ - OP(WMI_EXTSCAN_STOP_CMDID) \ - OP(WMI_EXTSCAN_CONFIGURE_WLAN_CHANGE_MONITOR_CMDID) \ - OP(WMI_EXTSCAN_CONFIGURE_HOTLIST_MONITOR_CMDID) \ - OP(WMI_EXTSCAN_GET_CACHED_RESULTS_CMDID) \ - OP(WMI_EXTSCAN_GET_WLAN_CHANGE_RESULTS_CMDID) \ - OP(WMI_EXTSCAN_SET_CAPABILITIES_CMDID) \ - OP(WMI_EXTSCAN_GET_CAPABILITIES_CMDID) \ - OP(WMI_EXTSCAN_CONFIGURE_HOTLIST_SSID_MONITOR_CMDID) \ - OP(WMI_D0_WOW_ENABLE_DISABLE_CMDID) \ - OP(WMI_UNIT_TEST_CMDID) \ - OP(WMI_ROAM_SYNCH_COMPLETE) \ - OP(WMI_EXTWOW_ENABLE_CMDID) \ - OP(WMI_EXTWOW_SET_APP_TYPE1_PARAMS_CMDID) \ - OP(WMI_EXTWOW_SET_APP_TYPE2_PARAMS_CMDID) \ - OP(WMI_ROAM_SET_RIC_REQUEST_CMDID) \ - OP(WMI_PDEV_GET_TEMPERATURE_CMDID) \ - OP(WMI_SET_DHCP_SERVER_OFFLOAD_CMDID) \ - OP(WMI_IPA_OFFLOAD_ENABLE_DISABLE_CMDID) \ - OP(WMI_SCAN_PROB_REQ_OUI_CMDID) \ - OP(WMI_TDLS_SET_OFFCHAN_MODE_CMDID) \ - OP(WMI_PDEV_SET_LED_FLASHING_CMDID) \ - OP(WMI_ROAM_INVOKE_CMDID) \ - OP(WMI_MDNS_OFFLOAD_ENABLE_CMDID) \ - OP(WMI_MDNS_SET_FQDN_CMDID) \ - OP(WMI_MDNS_SET_RESPONSE_CMDID) \ - OP(WMI_MDNS_GET_STATS_CMDID) \ - OP(WMI_SET_ANTENNA_DIVERSITY_CMDID) \ - OP(WMI_SAP_OFL_ENABLE_CMDID) \ - OP(WMI_APFIND_CMDID) \ - OP(WMI_OCB_SET_SCHED_CMDID) \ - OP(WMI_OCB_SET_CONFIG_CMDID) \ - OP(WMI_OCB_SET_UTC_TIME_CMDID) \ - OP(WMI_OCB_START_TIMING_ADVERT_CMDID) \ - OP(WMI_OCB_STOP_TIMING_ADVERT_CMDID) \ - OP(WMI_OCB_GET_TSF_TIMER_CMDID) \ - OP(WMI_DCC_GET_STATS_CMDID) \ - OP(WMI_DCC_CLEAR_STATS_CMDID) \ - OP(WMI_DCC_UPDATE_NDL_CMDID) \ - OP(WMI_ROAM_FILTER_CMDID) \ - OP(WMI_PASSPOINT_LIST_CONFIG_CMDID) \ - OP(WMI_VDEV_TSF_TSTAMP_ACTION_CMDID) \ - OP(WMI_GET_FW_MEM_DUMP_CMDID) \ - OP(WMI_DEBUG_MESG_FLUSH_CMDID) \ - OP(WMI_PEER_SET_RATE_REPORT_CONDITION_CMDID) \ - OP(WMI_ROAM_SUBNET_CHANGE_CONFIG_CMDID) \ - OP(WMI_VDEV_SET_IE_CMDID) \ - OP(WMI_RSSI_BREACH_MONITOR_CONFIG_CMDID) \ - OP(WMI_SOC_SET_PCL_CMDID) \ - OP(WMI_SOC_SET_HW_MODE_CMDID) \ - OP(WMI_SOC_SET_DUAL_MAC_CONFIG_CMDID) \ - OP(WMI_WOW_ENABLE_ICMPV6_NA_FLT_CMDID) \ - OP(WMI_DIAG_EVENT_LOG_CONFIG_CMDID) \ - OP(WMI_PACKET_FILTER_CONFIG_CMDID) \ - OP(WMI_PACKET_FILTER_ENABLE_CMDID) \ - OP(WMI_SAP_SET_BLACKLIST_PARAM_CMDID) \ - OP(WMI_MGMT_TX_SEND_CMDID) \ - OP(WMI_SOC_SET_ANTENNA_MODE_CMDID) \ - OP(WMI_WOW_UDP_SVC_OFLD_CMDID) \ - OP(WMI_LRO_CONFIG_CMDID) \ - OP(WMI_MAWC_SENSOR_REPORT_IND_CMDID) \ - OP(WMI_ROAM_CONFIGURE_MAWC_CMDID) \ - OP(WMI_NLO_CONFIGURE_MAWC_CMDID) \ - OP(WMI_EXTSCAN_CONFIGURE_MAWC_CMDID) \ - OP(WMI_WOW_HOSTWAKEUP_GPIO_PIN_PATTERN_CONFIG_CMDID) \ - OP(WMI_AP_PS_EGAP_PARAM_CMDID) \ - OP(WMI_PMF_OFFLOAD_SET_SA_QUERY_CMDID) \ - OP(WMI_TRANSFER_DATA_TO_FLASH_CMDID) \ - OP(WMI_OEM_REQUEST_CMDID) \ - OP(WMI_BPF_GET_CAPABILITY_CMDID) \ - OP(WMI_BPF_GET_VDEV_STATS_CMDID) \ - OP(WMI_BPF_SET_VDEV_INSTRUCTIONS_CMDID) \ - OP(WMI_BPF_DEL_VDEV_INSTRUCTIONS_CMDID) \ - OP(WMI_PEER_UPDATE_WDS_ENTRY_CMDID) \ - OP(WMI_PEER_ADD_PROXY_STA_ENTRY_CMDID) \ - OP(WMI_PDEV_FIPS_CMDID) \ - OP(WMI_PDEV_SMART_ANT_ENABLE_CMDID) \ - OP(WMI_PDEV_SMART_ANT_SET_RX_ANTENNA_CMDID) \ - OP(WMI_PDEV_SET_ANTENNA_SWITCH_TABLE_CMDID) \ - OP(WMI_PDEV_SET_CTL_TABLE_CMDID) \ - OP(WMI_PDEV_SET_MIMOGAIN_TABLE_CMDID) \ - OP(WMI_PDEV_GET_TPC_CMDID) \ - OP(WMI_PDEV_GET_ANI_CCK_CONFIG_CMDID) \ - OP(WMI_PDEV_GET_ANI_OFDM_CONFIG_CMDID) \ - OP(WMI_VDEV_RATEMASK_CMDID) \ - OP(WMI_VDEV_ATF_REQUEST_CMDID) \ - OP(WMI_VDEV_SET_DSCP_TID_MAP_CMDID) \ - OP(WMI_VDEV_FILTER_NEIGHBOR_RX_PACKETS_CMDID) \ - OP(WMI_PEER_SMART_ANT_SET_TX_ANTENNA_CMDID) \ - OP(WMI_PEER_SMART_ANT_SET_TRAIN_INFO_CMDID) \ - OP(WMI_PEER_SMART_ANT_SET_NODE_CONFIG_OPS_CMDID) \ - OP(WMI_PEER_ATF_REQUEST_CMDID) \ - OP(WMI_FWTEST_CMDID) \ - OP(WMI_QBOOST_CFG_CMDID) \ - OP(WMI_ROAM_SET_MBO_PARAM_CMDID) \ - OP(WMI_MIB_STATS_ENABLE_CMDID) \ - OP(WMI_NDI_GET_CAP_REQ_CMDID) \ - OP(WMI_NDP_INITIATOR_REQ_CMDID) \ - OP(WMI_NDP_RESPONDER_REQ_CMDID) \ - OP(WMI_NDP_END_REQ_CMDID) \ - OP(WMI_PDEV_SET_PCL_CMDID) \ - OP(WMI_PDEV_SET_HW_MODE_CMDID) \ - OP(WMI_PDEV_SET_MAC_CONFIG_CMDID) \ - OP(WMI_PDEV_SET_ANTENNA_MODE_CMDID) \ - OP(WMI_VDEV_SET_QUIET_MODE_CMDID) \ - OP(WMI_COEX_CONFIG_CMDID) \ - OP(WMI_CONFIG_ENHANCED_MCAST_FILTER_CMDID) \ - OP(WMI_CHAN_AVOID_RPT_ALLOW_CMDID) \ - OP(WMI_SET_PERIODIC_CHANNEL_STATS_CONFIG_CMDID) \ - OP(WMI_VDEV_SET_CUSTOM_AGGR_SIZE_CMDID) \ - OP(WMI_PDEV_WAL_POWER_DEBUG_CMDID) \ - OP(WMI_VDEV_WISA_CMDID) \ - OP(WMI_SCAN_ADAPTIVE_DWELL_CONFIG_CMDID) \ - OP(WMI_WOW_SET_ACTION_WAKE_UP_CMDID) \ - OP(WMI_PEER_BWF_REQUEST_CMDID) \ - OP(WMI_DBGLOG_TIME_STAMP_SYNC_CMDID) \ - OP(WMI_P2P_LISTEN_OFFLOAD_START_CMDID) \ - OP(WMI_P2P_LISTEN_OFFLOAD_STOP_CMDID) \ - OP(WMI_PEER_REORDER_QUEUE_SETUP_CMDID) \ - OP(WMI_PEER_REORDER_QUEUE_REMOVE_CMDID) \ - OP(WMI_SET_MULTIPLE_MCAST_FILTER_CMDID) \ - OP(WMI_READ_DATA_FROM_FLASH_CMDID) \ - OP(WMI_PDEV_SET_REORDER_TIMEOUT_VAL_CMDID) \ - OP(WMI_PEER_SET_RX_BLOCKSIZE_CMDID) \ - OP(WMI_PDEV_SET_WAKEUP_CONFIG_CMDID) \ - OP(WMI_PEER_ANTDIV_INFO_REQ_CMDID) \ - OP(WMI_PDEV_GET_ANTDIV_STATUS_CMDID) \ - OP(WMI_MNT_FILTER_CMDID) \ - OP(WMI_PDEV_GET_CHIP_POWER_STATS_CMDID) \ - OP(WMI_COEX_GET_ANTENNA_ISOLATION_CMDID) \ - OP(WMI_PDEV_SET_STATS_THRESHOLD_CMDID) \ - OP(WMI_REQUEST_WLAN_STATS_CMDID) \ - OP(WMI_VDEV_ENCRYPT_DECRYPT_DATA_REQ_CMDID) \ - OP(WMI_SAR_LIMITS_CMDID) \ - OP(WMI_PDEV_DFS_PHYERR_OFFLOAD_ENABLE_CMDID) \ - OP(WMI_PDEV_DFS_PHYERR_OFFLOAD_DISABLE_CMDID) \ - OP(WMI_VDEV_ADFS_CH_CFG_CMDID) \ - OP(WMI_VDEV_ADFS_OCAC_ABORT_CMDID) \ - OP(WMI_REQUEST_RCPI_CMDID) \ - /* add new CMD_LIST elements above this line */ +#define WMITLV_ALL_CMD_LIST(OP) \ + OP(WMI_INIT_CMDID) \ + OP(WMI_PEER_CREATE_CMDID) \ + OP(WMI_PEER_DELETE_CMDID) \ + OP(WMI_PEER_FLUSH_TIDS_CMDID) \ + OP(WMI_PEER_SET_PARAM_CMDID) \ + OP(WMI_STA_POWERSAVE_MODE_CMDID) \ + OP(WMI_STA_POWERSAVE_PARAM_CMDID) \ + OP(WMI_STA_DTIM_PS_METHOD_CMDID) \ + OP(WMI_PDEV_SET_REGDOMAIN_CMDID) \ + OP(WMI_PEER_TID_ADDBA_CMDID) \ + OP(WMI_PEER_TID_DELBA_CMDID) \ + OP(WMI_PDEV_FTM_INTG_CMDID) \ + OP(WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID) \ + OP(WMI_WOW_ENABLE_CMDID) \ + OP(WMI_RMV_BCN_FILTER_CMDID) \ + OP(WMI_ROAM_SCAN_MODE) \ + OP(WMI_ROAM_SCAN_RSSI_THRESHOLD) \ + OP(WMI_ROAM_SCAN_PERIOD) \ + OP(WMI_ROAM_SCAN_RSSI_CHANGE_THRESHOLD) \ + OP(WMI_START_SCAN_CMDID) \ + OP(WMI_VDEV_PLMREQ_START_CMDID) \ + OP(WMI_VDEV_PLMREQ_STOP_CMDID) \ + OP(WMI_PDEV_SET_CHANNEL_CMDID) \ + OP(WMI_PDEV_SET_WMM_PARAMS_CMDID) \ + OP(WMI_VDEV_START_REQUEST_CMDID) \ + OP(WMI_VDEV_RESTART_REQUEST_CMDID) \ + OP(WMI_P2P_GO_SET_BEACON_IE) \ + OP(WMI_GTK_OFFLOAD_CMDID) \ + OP(WMI_SCAN_CHAN_LIST_CMDID) \ + OP(WMI_STA_UAPSD_AUTO_TRIG_CMDID) \ + OP(WMI_PRB_TMPL_CMDID) \ + OP(WMI_BCN_TMPL_CMDID) \ + OP(WMI_VDEV_INSTALL_KEY_CMDID) \ + OP(WMI_PEER_ASSOC_CMDID) \ + OP(WMI_ADD_BCN_FILTER_CMDID) \ + OP(WMI_STA_KEEPALIVE_CMDID) \ + OP(WMI_SET_ARP_NS_OFFLOAD_CMDID) \ + OP(WMI_P2P_SET_VENDOR_IE_DATA_CMDID) \ + OP(WMI_AP_PS_PEER_PARAM_CMDID) \ + OP(WMI_WLAN_PROFILE_TRIGGER_CMDID) \ + OP(WMI_WLAN_PROFILE_SET_HIST_INTVL_CMDID) \ + OP(WMI_WLAN_PROFILE_GET_PROFILE_DATA_CMDID) \ + OP(WMI_WLAN_PROFILE_ENABLE_PROFILE_ID_CMDID) \ + OP(WMI_WOW_DEL_WAKE_PATTERN_CMDID) \ + OP(WMI_WOW_ENABLE_DISABLE_WAKE_EVENT_CMDID) \ + OP(WMI_RTT_MEASREQ_CMDID) \ + OP(WMI_RTT_TSF_CMDID) \ + OP(WMI_OEM_REQ_CMDID) \ + OP(WMI_VDEV_SPECTRAL_SCAN_CONFIGURE_CMDID) \ + OP(WMI_VDEV_SPECTRAL_SCAN_ENABLE_CMDID) \ + OP(WMI_REQUEST_STATS_CMDID) \ + OP(WMI_NETWORK_LIST_OFFLOAD_CONFIG_CMDID) \ + OP(WMI_CSA_OFFLOAD_ENABLE_CMDID) \ + OP(WMI_CSA_OFFLOAD_CHANSWITCH_CMDID) \ + OP(WMI_CHATTER_SET_MODE_CMDID) \ + OP(WMI_ECHO_CMDID) \ + OP(WMI_PDEV_UTF_CMDID) \ + OP(WMI_PDEV_QVIT_CMDID) \ + OP(WMI_VDEV_SET_KEEPALIVE_CMDID) \ + OP(WMI_VDEV_GET_KEEPALIVE_CMDID) \ + OP(WMI_FORCE_FW_HANG_CMDID) \ + OP(WMI_GPIO_CONFIG_CMDID) \ + OP(WMI_GPIO_OUTPUT_CMDID) \ + OP(WMI_PEER_ADD_WDS_ENTRY_CMDID) \ + OP(WMI_PEER_REMOVE_WDS_ENTRY_CMDID) \ + OP(WMI_BCN_TX_CMDID) \ + OP(WMI_PDEV_SEND_BCN_CMDID) \ + OP(WMI_MGMT_TX_CMDID) \ + OP(WMI_ADDBA_CLEAR_RESP_CMDID) \ + OP(WMI_ADDBA_SEND_CMDID) \ + OP(WMI_DELBA_SEND_CMDID) \ + OP(WMI_ADDBA_SET_RESP_CMDID) \ + OP(WMI_SEND_SINGLEAMSDU_CMDID) \ + OP(WMI_PDEV_PKTLOG_ENABLE_CMDID) \ + OP(WMI_PDEV_PKTLOG_DISABLE_CMDID) \ + OP(WMI_PDEV_SET_HT_CAP_IE_CMDID) \ + OP(WMI_PDEV_SET_VHT_CAP_IE_CMDID) \ + OP(WMI_PDEV_SET_DSCP_TID_MAP_CMDID) \ + OP(WMI_PDEV_GREEN_AP_PS_ENABLE_CMDID) \ + OP(WMI_PDEV_GET_TPC_CONFIG_CMDID) \ + OP(WMI_PDEV_SET_BASE_MACADDR_CMDID) \ + OP(WMI_PEER_MCAST_GROUP_CMDID) \ + OP(WMI_ROAM_AP_PROFILE) \ + OP(WMI_SCAN_SCH_PRIO_TBL_CMDID) \ + OP(WMI_PDEV_DFS_ENABLE_CMDID) \ + OP(WMI_PDEV_DFS_DISABLE_CMDID) \ + OP(WMI_WOW_ADD_WAKE_PATTERN_CMDID) \ + OP(WMI_PDEV_SUSPEND_CMDID) \ + OP(WMI_PDEV_RESUME_CMDID) \ + OP(WMI_STOP_SCAN_CMDID) \ + OP(WMI_PDEV_SET_PARAM_CMDID) \ + OP(WMI_PDEV_SET_QUIET_MODE_CMDID) \ + OP(WMI_VDEV_CREATE_CMDID) \ + OP(WMI_VDEV_DELETE_CMDID) \ + OP(WMI_VDEV_UP_CMDID) \ + OP(WMI_VDEV_STOP_CMDID) \ + OP(WMI_VDEV_DOWN_CMDID) \ + OP(WMI_VDEV_SET_PARAM_CMDID) \ + OP(WMI_SCAN_UPDATE_REQUEST_CMDID) \ + OP(WMI_CHATTER_ADD_COALESCING_FILTER_CMDID) \ + OP(WMI_CHATTER_DELETE_COALESCING_FILTER_CMDID) \ + OP(WMI_CHATTER_COALESCING_QUERY_CMDID) \ + OP(WMI_TXBF_CMDID) \ + OP(WMI_DBGLOG_CFG_CMDID) \ + OP(WMI_VDEV_WNM_SLEEPMODE_CMDID) \ + OP(WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMDID) \ + OP(WMI_VDEV_WMM_ADDTS_CMDID) \ + OP(WMI_VDEV_WMM_DELTS_CMDID) \ + OP(WMI_VDEV_SET_WMM_PARAMS_CMDID) \ + OP(WMI_VDEV_SET_GTX_PARAMS_CMDID) \ + OP(WMI_TDLS_SET_STATE_CMDID) \ + OP(WMI_TDLS_PEER_UPDATE_CMDID) \ + OP(WMI_FWTEST_VDEV_MCC_SET_TBTT_MODE_CMDID) \ + OP(WMI_ROAM_CHAN_LIST) \ + OP(WMI_RESMGR_ADAPTIVE_OCS_ENABLE_DISABLE_CMDID)\ + OP(WMI_RESMGR_SET_CHAN_TIME_QUOTA_CMDID) \ + OP(WMI_RESMGR_SET_CHAN_LATENCY_CMDID) \ + OP(WMI_BA_REQ_SSN_CMDID) \ + OP(WMI_STA_SMPS_FORCE_MODE_CMDID) \ + OP(WMI_SET_MCASTBCAST_FILTER_CMDID) \ + OP(WMI_P2P_SET_OPPPS_PARAM_CMDID) \ + OP(WMI_FWTEST_P2P_SET_NOA_PARAM_CMDID) \ + OP(WMI_STA_SMPS_PARAM_CMDID) \ + OP(WMI_MCC_SCHED_TRAFFIC_STATS_CMDID) \ + OP(WMI_HB_SET_ENABLE_CMDID) \ + OP(WMI_HB_SET_TCP_PARAMS_CMDID) \ + OP(WMI_HB_SET_TCP_PKT_FILTER_CMDID) \ + OP(WMI_HB_SET_UDP_PARAMS_CMDID) \ + OP(WMI_HB_SET_UDP_PKT_FILTER_CMDID) \ + OP(WMI_PEER_INFO_REQ_CMDID) \ + OP(WMI_RMC_SET_MODE_CMDID) \ + OP(WMI_RMC_SET_ACTION_PERIOD_CMDID) \ + OP(WMI_RMC_CONFIG_CMDID) \ + OP(WMI_MHF_OFFLOAD_SET_MODE_CMDID) \ + OP(WMI_MHF_OFFLOAD_PLUMB_ROUTING_TBL_CMDID) \ + OP(WMI_DFS_PHYERR_FILTER_ENA_CMDID) \ + OP(WMI_DFS_PHYERR_FILTER_DIS_CMDID) \ + OP(WMI_BATCH_SCAN_ENABLE_CMDID) \ + OP(WMI_BATCH_SCAN_DISABLE_CMDID) \ + OP(WMI_BATCH_SCAN_TRIGGER_RESULT_CMDID)\ + OP(WMI_THERMAL_MGMT_CMDID)\ + OP(WMI_ADD_PROACTIVE_ARP_RSP_PATTERN_CMDID)\ + OP(WMI_DEL_PROACTIVE_ARP_RSP_PATTERN_CMDID) \ + OP(WMI_NAN_CMDID) \ + OP(WMI_MODEM_POWER_STATE_CMDID) \ + OP(WMI_PEER_GET_ESTIMATED_LINKSPEED_CMDID) \ + OP(WMI_ROAM_SCAN_CMD) \ + OP(WMI_REQUEST_STATS_EXT_CMDID) \ + OP(WMI_OBSS_SCAN_ENABLE_CMDID) \ + OP(WMI_OBSS_SCAN_DISABLE_CMDID) \ + OP(WMI_PDEV_SET_LED_CONFIG_CMDID) \ + OP(WMI_HOST_AUTO_SHUTDOWN_CFG_CMDID) \ + OP(WMI_TPC_CHAINMASK_CONFIG_CMDID) \ + OP(WMI_CHAN_AVOID_UPDATE_CMDID) \ + OP(WMI_WOW_IOAC_ADD_KEEPALIVE_CMDID) \ + OP(WMI_WOW_IOAC_DEL_KEEPALIVE_CMDID) \ + OP(WMI_WOW_IOAC_ADD_WAKE_PATTERN_CMDID) \ + OP(WMI_WOW_IOAC_DEL_WAKE_PATTERN_CMDID) \ + OP(WMI_REQUEST_LINK_STATS_CMDID) \ + OP(WMI_START_LINK_STATS_CMDID) \ + OP(WMI_CLEAR_LINK_STATS_CMDID) \ + OP(WMI_LPI_MGMT_SNOOPING_CONFIG_CMDID) \ + OP(WMI_LPI_START_SCAN_CMDID) \ + OP(WMI_LPI_STOP_SCAN_CMDID) \ + OP(WMI_EXTSCAN_START_CMDID) \ + OP(WMI_EXTSCAN_STOP_CMDID) \ + OP(WMI_EXTSCAN_CONFIGURE_WLAN_CHANGE_MONITOR_CMDID) \ + OP(WMI_EXTSCAN_CONFIGURE_HOTLIST_MONITOR_CMDID) \ + OP(WMI_EXTSCAN_GET_CACHED_RESULTS_CMDID) \ + OP(WMI_EXTSCAN_GET_WLAN_CHANGE_RESULTS_CMDID) \ + OP(WMI_EXTSCAN_SET_CAPABILITIES_CMDID) \ + OP(WMI_EXTSCAN_GET_CAPABILITIES_CMDID) \ + OP(WMI_EXTSCAN_CONFIGURE_HOTLIST_SSID_MONITOR_CMDID) \ + OP(WMI_D0_WOW_ENABLE_DISABLE_CMDID) \ + OP(WMI_UNIT_TEST_CMDID) \ + OP(WMI_ROAM_SYNCH_COMPLETE) \ + OP(WMI_EXTWOW_ENABLE_CMDID) \ + OP(WMI_EXTWOW_SET_APP_TYPE1_PARAMS_CMDID) \ + OP(WMI_EXTWOW_SET_APP_TYPE2_PARAMS_CMDID) \ + OP(WMI_ROAM_SET_RIC_REQUEST_CMDID) \ + OP(WMI_PDEV_GET_TEMPERATURE_CMDID) \ + OP(WMI_SET_DHCP_SERVER_OFFLOAD_CMDID) \ + OP(WMI_IPA_OFFLOAD_ENABLE_DISABLE_CMDID)\ + OP(WMI_SCAN_PROB_REQ_OUI_CMDID) \ + OP(WMI_TDLS_SET_OFFCHAN_MODE_CMDID)\ + OP(WMI_PDEV_SET_LED_FLASHING_CMDID) \ + OP(WMI_ROAM_INVOKE_CMDID) \ + OP(WMI_MDNS_OFFLOAD_ENABLE_CMDID) \ + OP(WMI_MDNS_SET_FQDN_CMDID) \ + OP(WMI_MDNS_SET_RESPONSE_CMDID) \ + OP(WMI_MDNS_GET_STATS_CMDID) \ + OP(WMI_SET_ANTENNA_DIVERSITY_CMDID) \ + OP(WMI_SAP_OFL_ENABLE_CMDID) \ + OP(WMI_APFIND_CMDID) \ + OP(WMI_OCB_SET_SCHED_CMDID) \ + OP(WMI_OCB_SET_CONFIG_CMDID) \ + OP(WMI_OCB_SET_UTC_TIME_CMDID) \ + OP(WMI_OCB_START_TIMING_ADVERT_CMDID) \ + OP(WMI_OCB_STOP_TIMING_ADVERT_CMDID) \ + OP(WMI_OCB_GET_TSF_TIMER_CMDID) \ + OP(WMI_DCC_GET_STATS_CMDID) \ + OP(WMI_DCC_CLEAR_STATS_CMDID) \ + OP(WMI_DCC_UPDATE_NDL_CMDID) \ + OP(WMI_ROAM_FILTER_CMDID) \ + OP(WMI_PASSPOINT_LIST_CONFIG_CMDID) \ + OP(WMI_VDEV_TSF_TSTAMP_ACTION_CMDID) \ + OP(WMI_GET_FW_MEM_DUMP_CMDID) \ + OP(WMI_DEBUG_MESG_FLUSH_CMDID) \ + OP(WMI_PEER_SET_RATE_REPORT_CONDITION_CMDID) \ + OP(WMI_ROAM_SUBNET_CHANGE_CONFIG_CMDID) \ + OP(WMI_VDEV_SET_IE_CMDID) \ + OP(WMI_RSSI_BREACH_MONITOR_CONFIG_CMDID) \ + OP(WMI_SOC_SET_PCL_CMDID) \ + OP(WMI_SOC_SET_HW_MODE_CMDID) \ + OP(WMI_SOC_SET_DUAL_MAC_CONFIG_CMDID) \ + OP(WMI_WOW_ENABLE_ICMPV6_NA_FLT_CMDID) \ + OP(WMI_DIAG_EVENT_LOG_CONFIG_CMDID) \ + OP(WMI_PACKET_FILTER_CONFIG_CMDID) \ + OP(WMI_PACKET_FILTER_ENABLE_CMDID) \ + OP(WMI_SAP_SET_BLACKLIST_PARAM_CMDID) \ + OP(WMI_MGMT_TX_SEND_CMDID) \ + OP(WMI_SOC_SET_ANTENNA_MODE_CMDID) \ + OP(WMI_WOW_UDP_SVC_OFLD_CMDID) \ + OP(WMI_LRO_CONFIG_CMDID) \ + OP(WMI_MAWC_SENSOR_REPORT_IND_CMDID) \ + OP(WMI_ROAM_CONFIGURE_MAWC_CMDID) \ + OP(WMI_NLO_CONFIGURE_MAWC_CMDID) \ + OP(WMI_EXTSCAN_CONFIGURE_MAWC_CMDID) \ + OP(WMI_WOW_HOSTWAKEUP_GPIO_PIN_PATTERN_CONFIG_CMDID) \ + OP(WMI_AP_PS_EGAP_PARAM_CMDID) \ + OP(WMI_PMF_OFFLOAD_SET_SA_QUERY_CMDID) \ + OP(WMI_TRANSFER_DATA_TO_FLASH_CMDID) \ + OP(WMI_OEM_REQUEST_CMDID) \ + OP(WMI_BPF_GET_CAPABILITY_CMDID) \ + OP(WMI_BPF_GET_VDEV_STATS_CMDID) \ + OP(WMI_BPF_SET_VDEV_INSTRUCTIONS_CMDID) \ + OP(WMI_BPF_DEL_VDEV_INSTRUCTIONS_CMDID) \ + OP(WMI_PEER_UPDATE_WDS_ENTRY_CMDID) \ + OP(WMI_PEER_ADD_PROXY_STA_ENTRY_CMDID) \ + OP(WMI_PDEV_FIPS_CMDID) \ + OP(WMI_PDEV_SMART_ANT_ENABLE_CMDID) \ + OP(WMI_PDEV_SMART_ANT_SET_RX_ANTENNA_CMDID) \ + OP(WMI_PDEV_SET_ANTENNA_SWITCH_TABLE_CMDID) \ + OP(WMI_PDEV_SET_CTL_TABLE_CMDID) \ + OP(WMI_PDEV_SET_MIMOGAIN_TABLE_CMDID) \ + OP(WMI_PDEV_GET_TPC_CMDID) \ + OP(WMI_PDEV_GET_ANI_CCK_CONFIG_CMDID) \ + OP(WMI_PDEV_GET_ANI_OFDM_CONFIG_CMDID) \ + OP(WMI_VDEV_RATEMASK_CMDID) \ + OP(WMI_VDEV_ATF_REQUEST_CMDID) \ + OP(WMI_VDEV_SET_DSCP_TID_MAP_CMDID) \ + OP(WMI_VDEV_FILTER_NEIGHBOR_RX_PACKETS_CMDID) \ + OP(WMI_PEER_SMART_ANT_SET_TX_ANTENNA_CMDID) \ + OP(WMI_PEER_SMART_ANT_SET_TRAIN_INFO_CMDID) \ + OP(WMI_PEER_SMART_ANT_SET_NODE_CONFIG_OPS_CMDID) \ + OP(WMI_PEER_ATF_REQUEST_CMDID) \ + OP(WMI_FWTEST_CMDID) \ + OP(WMI_QBOOST_CFG_CMDID) \ + OP(WMI_ROAM_SET_MBO_PARAM_CMDID) \ + OP(WMI_MIB_STATS_ENABLE_CMDID) \ + OP(WMI_NDI_GET_CAP_REQ_CMDID) \ + OP(WMI_NDP_INITIATOR_REQ_CMDID) \ + OP(WMI_NDP_RESPONDER_REQ_CMDID) \ + OP(WMI_NDP_END_REQ_CMDID) \ + OP(WMI_PDEV_SET_PCL_CMDID) \ + OP(WMI_PDEV_SET_HW_MODE_CMDID) \ + OP(WMI_PDEV_SET_MAC_CONFIG_CMDID) \ + OP(WMI_PDEV_SET_ANTENNA_MODE_CMDID) \ + OP(WMI_VDEV_SET_QUIET_MODE_CMDID) \ + OP(WMI_COEX_CONFIG_CMDID) \ + OP(WMI_CONFIG_ENHANCED_MCAST_FILTER_CMDID) \ + OP(WMI_CHAN_AVOID_RPT_ALLOW_CMDID) \ + OP(WMI_SET_PERIODIC_CHANNEL_STATS_CONFIG_CMDID) \ + OP(WMI_VDEV_SET_CUSTOM_AGGR_SIZE_CMDID) \ + OP(WMI_PDEV_WAL_POWER_DEBUG_CMDID) \ + OP(WMI_VDEV_WISA_CMDID) \ + OP(WMI_SCAN_ADAPTIVE_DWELL_CONFIG_CMDID) \ + OP(WMI_WOW_SET_ACTION_WAKE_UP_CMDID) \ + OP(WMI_PEER_BWF_REQUEST_CMDID) \ + OP(WMI_DBGLOG_TIME_STAMP_SYNC_CMDID) \ + OP(WMI_RMC_SET_MANUAL_LEADER_CMDID) \ + OP(WMI_P2P_LISTEN_OFFLOAD_START_CMDID) \ + OP(WMI_P2P_LISTEN_OFFLOAD_STOP_CMDID) \ + OP(WMI_PEER_REORDER_QUEUE_SETUP_CMDID) \ + OP(WMI_PEER_REORDER_QUEUE_REMOVE_CMDID) \ + OP(WMI_SET_MULTIPLE_MCAST_FILTER_CMDID) \ + OP(WMI_READ_DATA_FROM_FLASH_CMDID) \ + OP(WMI_PDEV_SET_REORDER_TIMEOUT_VAL_CMDID) \ + OP(WMI_PEER_SET_RX_BLOCKSIZE_CMDID) \ + OP(WMI_PDEV_SET_WAKEUP_CONFIG_CMDID) \ + OP(WMI_PEER_ANTDIV_INFO_REQ_CMDID) \ + OP(WMI_PDEV_GET_ANTDIV_STATUS_CMDID) \ + OP(WMI_MNT_FILTER_CMDID) \ + OP(WMI_PDEV_GET_CHIP_POWER_STATS_CMDID) \ + OP(WMI_COEX_GET_ANTENNA_ISOLATION_CMDID) \ + OP(WMI_PDEV_SET_STATS_THRESHOLD_CMDID) \ + OP(WMI_REQUEST_WLAN_STATS_CMDID) \ + OP(WMI_VDEV_ENCRYPT_DECRYPT_DATA_REQ_CMDID) \ + OP(WMI_SAR_LIMITS_CMDID) \ + OP(WMI_PDEV_DFS_PHYERR_OFFLOAD_ENABLE_CMDID) \ + OP(WMI_PDEV_DFS_PHYERR_OFFLOAD_DISABLE_CMDID) \ + OP(WMI_VDEV_ADFS_CH_CFG_CMDID) \ + OP(WMI_VDEV_ADFS_OCAC_ABORT_CMDID) \ + OP(WMI_REQUEST_RCPI_CMDID) \ + OP(WMI_REQUEST_PEER_STATS_INFO_CMDID) \ + OP(WMI_SET_CURRENT_COUNTRY_CMDID) \ + OP(WMI_11D_SCAN_START_CMDID) \ + OP(WMI_11D_SCAN_STOP_CMDID) \ + /* add new CMD_LIST elements above this line */ + /* * IMPORTANT: Please add _ALL_ WMI Events Here. * Otherwise, these WMI TLV Functions will be process them. */ -#define WMITLV_ALL_EVT_LIST(OP) \ - OP(WMI_SERVICE_READY_EVENTID) \ - OP(WMI_SERVICE_READY_EXT_EVENTID) \ - OP(WMI_READY_EVENTID) \ - OP(WMI_SCAN_EVENTID) \ - OP(WMI_PDEV_TPC_CONFIG_EVENTID) \ - OP(WMI_CHAN_INFO_EVENTID) \ - OP(WMI_PHYERR_EVENTID) \ - OP(WMI_VDEV_START_RESP_EVENTID) \ - OP(WMI_VDEV_STOPPED_EVENTID) \ - OP(WMI_VDEV_INSTALL_KEY_COMPLETE_EVENTID) \ - OP(WMI_PEER_STA_KICKOUT_EVENTID) \ - OP(WMI_MGMT_RX_EVENTID) \ - OP(WMI_TBTTOFFSET_UPDATE_EVENTID) \ - OP(WMI_TX_DELBA_COMPLETE_EVENTID) \ - OP(WMI_TX_ADDBA_COMPLETE_EVENTID) \ - OP(WMI_ROAM_EVENTID) \ - OP(WMI_WOW_WAKEUP_HOST_EVENTID) \ - OP(WMI_RTT_ERROR_REPORT_EVENTID) \ - OP(WMI_OEM_MEASUREMENT_REPORT_EVENTID) \ - OP(WMI_OEM_ERROR_REPORT_EVENTID) \ - OP(WMI_OEM_CAPABILITY_EVENTID) \ - OP(WMI_ECHO_EVENTID) \ - OP(WMI_PDEV_FTM_INTG_EVENTID) \ - OP(WMI_VDEV_GET_KEEPALIVE_EVENTID) \ - OP(WMI_GPIO_INPUT_EVENTID) \ - OP(WMI_CSA_HANDLING_EVENTID) \ - OP(WMI_DEBUG_MESG_EVENTID) \ - OP(WMI_GTK_OFFLOAD_STATUS_EVENTID) \ - OP(WMI_DCS_INTERFERENCE_EVENTID) \ - OP(WMI_WLAN_PROFILE_DATA_EVENTID) \ - OP(WMI_PDEV_UTF_EVENTID) \ - OP(WMI_DEBUG_PRINT_EVENTID) \ - OP(WMI_RTT_MEASUREMENT_REPORT_EVENTID) \ - OP(WMI_HOST_SWBA_EVENTID) \ - OP(WMI_UPDATE_STATS_EVENTID) \ - OP(WMI_PDEV_QVIT_EVENTID) \ - OP(WMI_WLAN_FREQ_AVOID_EVENTID) \ - OP(WMI_GTK_REKEY_FAIL_EVENTID) \ - OP(WMI_NLO_MATCH_EVENTID) \ - OP(WMI_NLO_SCAN_COMPLETE_EVENTID) \ - OP(WMI_APFIND_EVENTID) \ - OP(WMI_CHATTER_PC_QUERY_EVENTID) \ - OP(WMI_UPLOADH_EVENTID) \ - OP(WMI_CAPTUREH_EVENTID) \ - OP(WMI_TDLS_PEER_EVENTID) \ - OP(WMI_VDEV_MCC_BCN_INTERVAL_CHANGE_REQ_EVENTID) \ - OP(WMI_BA_RSP_SSN_EVENTID) \ - OP(WMI_OFFLOAD_BCN_TX_STATUS_EVENTID) \ - OP(WMI_P2P_NOA_EVENTID) \ - OP(WMI_TX_PAUSE_EVENTID) \ - OP(WMI_RFKILL_STATE_CHANGE_EVENTID) \ - OP(WMI_PEER_INFO_EVENTID) \ - OP(WMI_PEER_TX_FAIL_CNT_THR_EVENTID) \ - OP(WMI_DFS_RADAR_EVENTID) \ - OP(WMI_BATCH_SCAN_ENABLED_EVENTID) \ - OP(WMI_BATCH_SCAN_RESULT_EVENTID) \ - OP(WMI_THERMAL_MGMT_EVENTID) \ - OP(WMI_NAN_EVENTID) \ - OP(WMI_PDEV_L1SS_TRACK_EVENTID) \ - OP(WMI_DIAG_DATA_CONTAINER_EVENTID) \ - OP(WMI_PEER_ESTIMATED_LINKSPEED_EVENTID) \ - OP(WMI_AGGR_STATE_TRIG_EVENTID) \ - OP(WMI_STATS_EXT_EVENTID) \ - OP(WMI_OFFLOAD_PROB_RESP_TX_STATUS_EVENTID) \ - OP(WMI_HOST_AUTO_SHUTDOWN_EVENTID) \ - OP(WMI_UPDATE_WHAL_MIB_STATS_EVENTID) \ - OP(WMI_IFACE_LINK_STATS_EVENTID) \ - OP(WMI_PEER_LINK_STATS_EVENTID) \ - OP(WMI_RADIO_LINK_STATS_EVENTID) \ - OP(WMI_LPI_RESULT_EVENTID) \ - OP(WMI_PEER_STATE_EVENTID) \ - OP(WMI_EXTSCAN_START_STOP_EVENTID) \ - OP(WMI_EXTSCAN_OPERATION_EVENTID) \ - OP(WMI_EXTSCAN_TABLE_USAGE_EVENTID) \ - OP(WMI_EXTSCAN_CACHED_RESULTS_EVENTID) \ - OP(WMI_EXTSCAN_WLAN_CHANGE_RESULTS_EVENTID) \ - OP(WMI_EXTSCAN_HOTLIST_MATCH_EVENTID) \ - OP(WMI_EXTSCAN_CAPABILITIES_EVENTID) \ - OP(WMI_EXTSCAN_HOTLIST_SSID_MATCH_EVENTID) \ - OP(WMI_D0_WOW_DISABLE_ACK_EVENTID) \ - OP(WMI_ROAM_SYNCH_EVENTID) \ - OP(WMI_LPI_STATUS_EVENTID) \ - OP(WMI_LPI_HANDOFF_EVENTID) \ - OP(WMI_UPDATE_VDEV_RATE_STATS_EVENTID) \ - OP(WMI_PDEV_TEMPERATURE_EVENTID) \ - OP(WMI_DIAG_EVENTID) \ - OP(WMI_MDNS_STATS_EVENTID) \ - OP(WMI_PDEV_RESUME_EVENTID) \ - OP(WMI_SAP_OFL_ADD_STA_EVENTID) \ - OP(WMI_SAP_OFL_DEL_STA_EVENTID) \ - OP(WMI_OCB_SET_SCHED_EVENTID) \ - OP(WMI_OCB_SET_CONFIG_RESP_EVENTID) \ - OP(WMI_OCB_GET_TSF_TIMER_RESP_EVENTID) \ - OP(WMI_DCC_GET_STATS_RESP_EVENTID) \ - OP(WMI_DCC_UPDATE_NDL_RESP_EVENTID) \ - OP(WMI_DCC_STATS_EVENTID) \ - OP(WMI_PASSPOINT_MATCH_EVENTID)\ - OP(WMI_VDEV_TSF_REPORT_EVENTID) \ - OP(WMI_UPDATE_FW_MEM_DUMP_EVENTID) \ - OP(WMI_DEBUG_MESG_FLUSH_COMPLETE_EVENTID) \ - OP(WMI_RSSI_BREACH_EVENTID) \ - OP(WMI_WOW_INITIAL_WAKEUP_EVENTID) \ - OP(WMI_SOC_SET_HW_MODE_RESP_EVENTID) \ - OP(WMI_SOC_HW_MODE_TRANSITION_EVENTID) \ - OP(WMI_SOC_SET_DUAL_MAC_CONFIG_RESP_EVENTID) \ - OP(WMI_DIAG_EVENT_LOG_SUPPORTED_EVENTID) \ - OP(WMI_MGMT_TX_COMPLETION_EVENTID) \ - OP(WMI_MAWC_ENABLE_SENSOR_EVENTID) \ - OP(WMI_PEER_ASSOC_CONF_EVENTID) \ - OP(WMI_AP_PS_EGAP_INFO_EVENTID) \ - OP(WMI_TRANSFER_DATA_TO_FLASH_COMPLETE_EVENTID) \ - OP(WMI_OEM_RESPONSE_EVENTID) \ - OP(WMI_PDEV_UTF_SCPC_EVENTID) \ - OP(WMI_STA_SMPS_FORCE_MODE_COMPLETE_EVENTID) \ - OP(WMI_BPF_CAPABILIY_INFO_EVENTID) \ - OP(WMI_BPF_VDEV_STATS_INFO_EVENTID) \ - OP(WMI_VDEV_DELETE_RESP_EVENTID) \ - OP(WMI_PEER_DELETE_RESP_EVENTID) \ - OP(WMI_PDEV_FIPS_EVENTID) \ - OP(WMI_PDEV_CHANNEL_HOPPING_EVENTID) \ - OP(WMI_PDEV_ANI_CCK_LEVEL_EVENTID) \ - OP(WMI_PDEV_ANI_OFDM_LEVEL_EVENTID) \ - OP(WMI_PDEV_TPC_EVENTID) \ - OP(WMI_PDEV_NFCAL_POWER_ALL_CHANNELS_EVENTID) \ - OP(WMI_PEER_RATECODE_LIST_EVENTID) \ - OP(WMI_WDS_PEER_EVENTID) \ - OP(WMI_PEER_STA_PS_STATECHG_EVENTID) \ - OP(WMI_INST_RSSI_STATS_EVENTID) \ - OP(WMI_NAN_DISC_IFACE_CREATED_EVENTID) \ - OP(WMI_NAN_DISC_IFACE_DELETED_EVENTID) \ - OP(WMI_NAN_STARTED_CLUSTER_EVENTID) \ - OP(WMI_NAN_JOINED_CLUSTER_EVENTID) \ - OP(WMI_NDI_CAP_RSP_EVENTID) \ - OP(WMI_NDP_INITIATOR_RSP_EVENTID) \ - OP(WMI_NDP_RESPONDER_RSP_EVENTID) \ - OP(WMI_NDP_END_RSP_EVENTID) \ - OP(WMI_NDP_INDICATION_EVENTID) \ - OP(WMI_NDP_CONFIRM_EVENTID) \ - OP(WMI_NDP_END_INDICATION_EVENTID) \ - OP(WMI_PDEV_SET_HW_MODE_RESP_EVENTID) \ - OP(WMI_PDEV_HW_MODE_TRANSITION_EVENTID) \ - OP(WMI_PDEV_SET_MAC_CONFIG_RESP_EVENTID) \ - OP(WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID) \ - OP(WMI_P2P_LISTEN_OFFLOAD_STOPPED_EVENTID) \ - OP(WMI_MGMT_TX_BUNDLE_COMPLETION_EVENTID) \ - OP(WMI_READ_DATA_FROM_FLASH_EVENTID) \ - OP(WMI_SERVICE_AVAILABLE_EVENTID) \ - OP(WMI_PEER_ANTDIV_INFO_EVENTID) \ - OP(WMI_PDEV_ANTDIV_STATUS_EVENTID) \ - OP(WMI_PDEV_CHIP_POWER_STATS_EVENTID) \ - OP(WMI_COEX_REPORT_ANTENNA_ISOLATION_EVENTID) \ - OP(WMI_REPORT_STATS_EVENTID) \ - OP(WMI_REPORT_RX_AGGR_FAILURE_EVENTID) \ - OP(WMI_VDEV_ENCRYPT_DECRYPT_DATA_RESP_EVENTID) \ - OP(WMI_TBTTOFFSET_EXT_UPDATE_EVENTID) \ - OP(WMI_PDEV_DFS_RADAR_DETECTION_EVENTID) \ - OP(WMI_VDEV_DFS_CAC_COMPLETE_EVENTID) \ - OP(WMI_VDEV_ADFS_OCAC_COMPLETE_EVENTID) \ - OP(WMI_UPDATE_RCPI_EVENTID) \ - /* add new EVT_LIST elements above this line */ +#define WMITLV_ALL_EVT_LIST(OP) \ + OP(WMI_SERVICE_READY_EVENTID) \ + OP(WMI_SERVICE_READY_EXT_EVENTID) \ + OP(WMI_READY_EVENTID) \ + OP(WMI_SCAN_EVENTID) \ + OP(WMI_PDEV_TPC_CONFIG_EVENTID) \ + OP(WMI_CHAN_INFO_EVENTID) \ + OP(WMI_PHYERR_EVENTID) \ + OP(WMI_VDEV_START_RESP_EVENTID) \ + OP(WMI_VDEV_STOPPED_EVENTID) \ + OP(WMI_VDEV_INSTALL_KEY_COMPLETE_EVENTID) \ + OP(WMI_PEER_STA_KICKOUT_EVENTID) \ + OP(WMI_MGMT_RX_EVENTID) \ + OP(WMI_TBTTOFFSET_UPDATE_EVENTID) \ + OP(WMI_TX_DELBA_COMPLETE_EVENTID) \ + OP(WMI_TX_ADDBA_COMPLETE_EVENTID) \ + OP(WMI_ROAM_EVENTID) \ + OP(WMI_WOW_WAKEUP_HOST_EVENTID) \ + OP(WMI_RTT_ERROR_REPORT_EVENTID) \ + OP(WMI_OEM_MEASUREMENT_REPORT_EVENTID) \ + OP(WMI_OEM_ERROR_REPORT_EVENTID) \ + OP(WMI_OEM_CAPABILITY_EVENTID) \ + OP(WMI_ECHO_EVENTID) \ + OP(WMI_PDEV_FTM_INTG_EVENTID) \ + OP(WMI_VDEV_GET_KEEPALIVE_EVENTID) \ + OP(WMI_GPIO_INPUT_EVENTID) \ + OP(WMI_CSA_HANDLING_EVENTID) \ + OP(WMI_DEBUG_MESG_EVENTID) \ + OP(WMI_GTK_OFFLOAD_STATUS_EVENTID) \ + OP(WMI_DCS_INTERFERENCE_EVENTID) \ + OP(WMI_WLAN_PROFILE_DATA_EVENTID) \ + OP(WMI_PDEV_UTF_EVENTID) \ + OP(WMI_DEBUG_PRINT_EVENTID) \ + OP(WMI_RTT_MEASUREMENT_REPORT_EVENTID) \ + OP(WMI_HOST_SWBA_EVENTID) \ + OP(WMI_UPDATE_STATS_EVENTID) \ + OP(WMI_PDEV_QVIT_EVENTID) \ + OP(WMI_WLAN_FREQ_AVOID_EVENTID) \ + OP(WMI_GTK_REKEY_FAIL_EVENTID) \ + OP(WMI_NLO_MATCH_EVENTID) \ + OP(WMI_NLO_SCAN_COMPLETE_EVENTID) \ + OP(WMI_APFIND_EVENTID) \ + OP(WMI_CHATTER_PC_QUERY_EVENTID) \ + OP(WMI_UPLOADH_EVENTID) \ + OP(WMI_CAPTUREH_EVENTID) \ + OP(WMI_TDLS_PEER_EVENTID) \ + OP(WMI_VDEV_MCC_BCN_INTERVAL_CHANGE_REQ_EVENTID) \ + OP(WMI_BA_RSP_SSN_EVENTID) \ + OP(WMI_OFFLOAD_BCN_TX_STATUS_EVENTID) \ + OP(WMI_P2P_NOA_EVENTID) \ + OP(WMI_TX_PAUSE_EVENTID) \ + OP(WMI_RFKILL_STATE_CHANGE_EVENTID) \ + OP(WMI_PEER_INFO_EVENTID) \ + OP(WMI_PEER_TX_FAIL_CNT_THR_EVENTID) \ + OP(WMI_DFS_RADAR_EVENTID) \ + OP(WMI_BATCH_SCAN_ENABLED_EVENTID) \ + OP(WMI_BATCH_SCAN_RESULT_EVENTID) \ + OP(WMI_THERMAL_MGMT_EVENTID) \ + OP(WMI_NAN_EVENTID) \ + OP(WMI_PDEV_L1SS_TRACK_EVENTID) \ + OP(WMI_DIAG_DATA_CONTAINER_EVENTID) \ + OP(WMI_PEER_ESTIMATED_LINKSPEED_EVENTID) \ + OP(WMI_AGGR_STATE_TRIG_EVENTID) \ + OP(WMI_STATS_EXT_EVENTID) \ + OP(WMI_OFFLOAD_PROB_RESP_TX_STATUS_EVENTID) \ + OP(WMI_HOST_AUTO_SHUTDOWN_EVENTID) \ + OP(WMI_UPDATE_WHAL_MIB_STATS_EVENTID) \ + OP(WMI_IFACE_LINK_STATS_EVENTID) \ + OP(WMI_PEER_LINK_STATS_EVENTID) \ + OP(WMI_RADIO_LINK_STATS_EVENTID) \ + OP(WMI_LPI_RESULT_EVENTID) \ + OP(WMI_PEER_STATE_EVENTID) \ + OP(WMI_EXTSCAN_START_STOP_EVENTID) \ + OP(WMI_EXTSCAN_OPERATION_EVENTID) \ + OP(WMI_EXTSCAN_TABLE_USAGE_EVENTID) \ + OP(WMI_EXTSCAN_CACHED_RESULTS_EVENTID) \ + OP(WMI_EXTSCAN_WLAN_CHANGE_RESULTS_EVENTID) \ + OP(WMI_EXTSCAN_HOTLIST_MATCH_EVENTID) \ + OP(WMI_EXTSCAN_CAPABILITIES_EVENTID) \ + OP(WMI_EXTSCAN_HOTLIST_SSID_MATCH_EVENTID) \ + OP(WMI_D0_WOW_DISABLE_ACK_EVENTID) \ + OP(WMI_ROAM_SYNCH_EVENTID) \ + OP(WMI_LPI_STATUS_EVENTID) \ + OP(WMI_LPI_HANDOFF_EVENTID) \ + OP(WMI_UPDATE_VDEV_RATE_STATS_EVENTID) \ + OP(WMI_PDEV_TEMPERATURE_EVENTID) \ + OP(WMI_DIAG_EVENTID) \ + OP(WMI_MDNS_STATS_EVENTID) \ + OP(WMI_PDEV_RESUME_EVENTID) \ + OP(WMI_SAP_OFL_ADD_STA_EVENTID) \ + OP(WMI_SAP_OFL_DEL_STA_EVENTID) \ + OP(WMI_OCB_SET_SCHED_EVENTID) \ + OP(WMI_OCB_SET_CONFIG_RESP_EVENTID) \ + OP(WMI_OCB_GET_TSF_TIMER_RESP_EVENTID) \ + OP(WMI_DCC_GET_STATS_RESP_EVENTID) \ + OP(WMI_DCC_UPDATE_NDL_RESP_EVENTID) \ + OP(WMI_DCC_STATS_EVENTID) \ + OP(WMI_PASSPOINT_MATCH_EVENTID) \ + OP(WMI_VDEV_TSF_REPORT_EVENTID) \ + OP(WMI_UPDATE_FW_MEM_DUMP_EVENTID) \ + OP(WMI_DEBUG_MESG_FLUSH_COMPLETE_EVENTID) \ + OP(WMI_RSSI_BREACH_EVENTID) \ + OP(WMI_WOW_INITIAL_WAKEUP_EVENTID) \ + OP(WMI_SOC_SET_HW_MODE_RESP_EVENTID) \ + OP(WMI_SOC_HW_MODE_TRANSITION_EVENTID) \ + OP(WMI_SOC_SET_DUAL_MAC_CONFIG_RESP_EVENTID) \ + OP(WMI_DIAG_EVENT_LOG_SUPPORTED_EVENTID) \ + OP(WMI_MGMT_TX_COMPLETION_EVENTID) \ + OP(WMI_MAWC_ENABLE_SENSOR_EVENTID) \ + OP(WMI_PEER_ASSOC_CONF_EVENTID) \ + OP(WMI_AP_PS_EGAP_INFO_EVENTID) \ + OP(WMI_TRANSFER_DATA_TO_FLASH_COMPLETE_EVENTID) \ + OP(WMI_OEM_RESPONSE_EVENTID) \ + OP(WMI_PDEV_UTF_SCPC_EVENTID) \ + OP(WMI_STA_SMPS_FORCE_MODE_COMPLETE_EVENTID) \ + OP(WMI_BPF_CAPABILIY_INFO_EVENTID) \ + OP(WMI_BPF_VDEV_STATS_INFO_EVENTID) \ + OP(WMI_VDEV_DELETE_RESP_EVENTID) \ + OP(WMI_PEER_DELETE_RESP_EVENTID) \ + OP(WMI_PDEV_FIPS_EVENTID) \ + OP(WMI_PDEV_CHANNEL_HOPPING_EVENTID) \ + OP(WMI_PDEV_ANI_CCK_LEVEL_EVENTID) \ + OP(WMI_PDEV_ANI_OFDM_LEVEL_EVENTID) \ + OP(WMI_PDEV_TPC_EVENTID) \ + OP(WMI_PDEV_NFCAL_POWER_ALL_CHANNELS_EVENTID) \ + OP(WMI_PEER_RATECODE_LIST_EVENTID) \ + OP(WMI_WDS_PEER_EVENTID) \ + OP(WMI_PEER_STA_PS_STATECHG_EVENTID) \ + OP(WMI_INST_RSSI_STATS_EVENTID) \ + OP(WMI_NAN_DISC_IFACE_CREATED_EVENTID) \ + OP(WMI_NAN_DISC_IFACE_DELETED_EVENTID) \ + OP(WMI_NAN_STARTED_CLUSTER_EVENTID) \ + OP(WMI_NAN_JOINED_CLUSTER_EVENTID) \ + OP(WMI_NDI_CAP_RSP_EVENTID) \ + OP(WMI_NDP_INITIATOR_RSP_EVENTID) \ + OP(WMI_NDP_RESPONDER_RSP_EVENTID) \ + OP(WMI_NDP_END_RSP_EVENTID) \ + OP(WMI_NDP_INDICATION_EVENTID) \ + OP(WMI_NDP_CONFIRM_EVENTID) \ + OP(WMI_NDP_END_INDICATION_EVENTID) \ + OP(WMI_PDEV_SET_HW_MODE_RESP_EVENTID) \ + OP(WMI_PDEV_HW_MODE_TRANSITION_EVENTID) \ + OP(WMI_PDEV_SET_MAC_CONFIG_RESP_EVENTID) \ + OP(WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID) \ + OP(WMI_RMC_NEW_LEADER_EVENTID) \ + OP(WMI_P2P_LISTEN_OFFLOAD_STOPPED_EVENTID) \ + OP(WMI_MGMT_TX_BUNDLE_COMPLETION_EVENTID) \ + OP(WMI_READ_DATA_FROM_FLASH_EVENTID) \ + OP(WMI_SERVICE_AVAILABLE_EVENTID) \ + OP(WMI_PEER_ANTDIV_INFO_EVENTID) \ + OP(WMI_PDEV_ANTDIV_STATUS_EVENTID) \ + OP(WMI_PDEV_CHIP_POWER_STATS_EVENTID) \ + OP(WMI_COEX_REPORT_ANTENNA_ISOLATION_EVENTID) \ + OP(WMI_REPORT_STATS_EVENTID) \ + OP(WMI_REPORT_RX_AGGR_FAILURE_EVENTID) \ + OP(WMI_VDEV_ENCRYPT_DECRYPT_DATA_RESP_EVENTID) \ + OP(WMI_TBTTOFFSET_EXT_UPDATE_EVENTID) \ + OP(WMI_PDEV_DFS_RADAR_DETECTION_EVENTID) \ + OP(WMI_VDEV_DFS_CAC_COMPLETE_EVENTID) \ + OP(WMI_VDEV_ADFS_OCAC_COMPLETE_EVENTID) \ + OP(WMI_UPDATE_RCPI_EVENTID) \ + OP(WMI_PEER_STATS_INFO_EVENTID) \ + OP(WMI_PKGID_EVENTID) \ + OP(WMI_REG_CHAN_LIST_CC_EVENTID) \ + OP(WMI_11D_NEW_COUNTRY_EVENTID) \ + /* add new EVT_LIST elements above this line */ + /* TLV definitions of WMI commands */ /* Init Cmd */ -#define WMITLV_TABLE_WMI_INIT_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_init_cmd_fixed_param, wmi_init_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_resource_config, wmi_resource_config, resource_config, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wlan_host_memory_chunk, host_mem_chunks, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_set_hw_mode_cmd_fixed_param, wmi_pdev_set_hw_mode_cmd_fixed_param, hw_mode, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_band_to_mac, wmi_pdev_band_to_mac, band_to_mac, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_INIT_CMDID(id,op,buf,len)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_init_cmd_fixed_param, wmi_init_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_resource_config, wmi_resource_config, resource_config, WMITLV_SIZE_FIX)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wlan_host_memory_chunk, host_mem_chunks, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_hw_mode_cmd_fixed_param, wmi_pdev_set_hw_mode_cmd_fixed_param, hw_mode, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_band_to_mac, wmi_pdev_band_to_mac, band_to_mac, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_INIT_CMDID); /* Peer create Cmd */ #define WMITLV_TABLE_WMI_PEER_CREATE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_create_cmd_fixed_param, wmi_peer_create_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_create_cmd_fixed_param, wmi_peer_create_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_CREATE_CMDID); /* Peer delete Cmd */ #define WMITLV_TABLE_WMI_PEER_DELETE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_delete_cmd_fixed_param, wmi_peer_delete_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_delete_cmd_fixed_param, wmi_peer_delete_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_DELETE_CMDID); /* Peer flush Cmd*/ #define WMITLV_TABLE_WMI_PEER_FLUSH_TIDS_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_flush_tids_cmd_fixed_param, wmi_peer_flush_tids_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_flush_tids_cmd_fixed_param, wmi_peer_flush_tids_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_FLUSH_TIDS_CMDID); /* Peer Set Param Cmd */ #define WMITLV_TABLE_WMI_PEER_SET_PARAM_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_set_param_cmd_fixed_param, wmi_peer_set_param_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_set_param_cmd_fixed_param, wmi_peer_set_param_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_SET_PARAM_CMDID); /* STA Powersave Mode Cmd */ #define WMITLV_TABLE_WMI_STA_POWERSAVE_MODE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sta_powersave_mode_cmd_fixed_param, wmi_sta_powersave_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sta_powersave_mode_cmd_fixed_param, wmi_sta_powersave_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_STA_POWERSAVE_MODE_CMDID); /* STA Powersave Param Cmd */ #define WMITLV_TABLE_WMI_STA_POWERSAVE_PARAM_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sta_powersave_param_cmd_fixed_param, wmi_sta_powersave_param_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sta_powersave_param_cmd_fixed_param, wmi_sta_powersave_param_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_STA_POWERSAVE_PARAM_CMDID); /* STA DTIM PS METHOD Cmd */ #define WMITLV_TABLE_WMI_STA_DTIM_PS_METHOD_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sta_dtim_ps_method_cmd_fixed_param, wmi_sta_dtim_ps_method_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sta_dtim_ps_method_cmd_fixed_param, wmi_sta_dtim_ps_method_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_STA_DTIM_PS_METHOD_CMDID); /* Pdev Set Reg Domain Cmd */ #define WMITLV_TABLE_WMI_PDEV_SET_REGDOMAIN_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_regdomain_cmd_fixed_param, wmi_pdev_set_regdomain_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_regdomain_cmd_fixed_param, wmi_pdev_set_regdomain_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_REGDOMAIN_CMDID); + /* Peer TID ADD BA Cmd */ #define WMITLV_TABLE_WMI_PEER_TID_ADDBA_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_tid_addba_cmd_fixed_param, wmi_peer_tid_addba_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_tid_addba_cmd_fixed_param, wmi_peer_tid_addba_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_TID_ADDBA_CMDID); /* Peer TID DEL BA Cmd */ #define WMITLV_TABLE_WMI_PEER_TID_DELBA_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_tid_delba_cmd_fixed_param, wmi_peer_tid_delba_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_tid_delba_cmd_fixed_param, wmi_peer_tid_delba_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_TID_DELBA_CMDID); + /* Peer Req Add BA Ssn for staId/tid pair Cmd */ #define WMITLV_TABLE_WMI_BA_REQ_SSN_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ba_req_ssn_cmd_fixed_param, wmi_ba_req_ssn_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len,WMITLV_TAG_ARRAY_STRUC, wmi_ba_req_ssn, ba_req_ssn_list, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ba_req_ssn_cmd_fixed_param, wmi_ba_req_ssn_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len,WMITLV_TAG_ARRAY_STRUC, wmi_ba_req_ssn, ba_req_ssn_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_BA_REQ_SSN_CMDID); + /* PDEV FTM integration Cmd */ #define WMITLV_TABLE_WMI_PDEV_FTM_INTG_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ftm_intg_cmd_fixed_param, wmi_ftm_intg_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ftm_intg_cmd_fixed_param, wmi_ftm_intg_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_FTM_INTG_CMDID); /* WOW Wakeup from sleep Cmd */ -#define WMITLV_TABLE_WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wow_hostwakeup_from_sleep_cmd_fixed_param, wmi_wow_hostwakeup_from_sleep_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wow_hostwakeup_from_sleep_cmd_fixed_param, wmi_wow_hostwakeup_from_sleep_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID); /* WOW Enable Cmd */ -#define WMITLV_TABLE_WMI_WOW_ENABLE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wow_enable_cmd_fixed_param, wmi_wow_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_WOW_ENABLE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wow_enable_cmd_fixed_param, wmi_wow_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_ENABLE_CMDID); /* WOW ICMPv6 NA filtering command */ -#define WMITLV_TABLE_WMI_WOW_ENABLE_ICMPV6_NA_FLT_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_wow_enable_icmpv6_na_flt_cmd_fixed_param, wmi_wow_enable_icmpv6_na_flt_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_WOW_ENABLE_ICMPV6_NA_FLT_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wow_enable_icmpv6_na_flt_cmd_fixed_param, wmi_wow_enable_icmpv6_na_flt_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_ENABLE_ICMPV6_NA_FLT_CMDID); /* Remove Bcn Filter Cmd */ #define WMITLV_TABLE_WMI_RMV_BCN_FILTER_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_rmv_bcn_filter_cmd_fixed_param, wmi_rmv_bcn_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_rmv_bcn_filter_cmd_fixed_param, wmi_rmv_bcn_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_RMV_BCN_FILTER_CMDID); /** Service bit WMI_SERVICE_ROAM_OFFLOAD for Roaming feature */ /* Roam scan mode Cmd */ #define WMITLV_TABLE_WMI_ROAM_SCAN_MODE(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_scan_mode_fixed_param, wmi_roam_scan_mode_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_start_scan_cmd_fixed_param, wmi_start_scan_cmd_fixed_param, scan_params, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_offload_tlv_param, offload_param, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_11i_offload_tlv_param, offload_11i_param, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_11r_offload_tlv_param, offload_11r_param, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_ese_offload_tlv_param, offload_ese_param, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_tlv_buf_len_param, assoc_ie_len_param, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, assoc_ie_buf, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_scan_mode_fixed_param, wmi_roam_scan_mode_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_start_scan_cmd_fixed_param, wmi_start_scan_cmd_fixed_param, scan_params, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_offload_tlv_param, offload_param, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_11i_offload_tlv_param, offload_11i_param, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_11r_offload_tlv_param, offload_11r_param, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_ese_offload_tlv_param, offload_ese_param, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_tlv_buf_len_param, assoc_ie_len_param, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, assoc_ie_buf, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SCAN_MODE); /* Roam scan Rssi Threshold Cmd */ #define WMITLV_TABLE_WMI_ROAM_SCAN_RSSI_THRESHOLD(id,op,buf,len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_roam_scan_rssi_threshold_fixed_param, wmi_roam_scan_rssi_threshold_fixed_param, fixed_param, WMITLV_SIZE_FIX)\ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_scan_extended_threshold_param, extended_param, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_earlystop_rssi_thres_param, earlystop_param, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_dense_thres_param, dense_param, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_scan_rssi_threshold_fixed_param, wmi_roam_scan_rssi_threshold_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_scan_extended_threshold_param, extended_param, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_earlystop_rssi_thres_param, earlystop_param, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_dense_thres_param, dense_param, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SCAN_RSSI_THRESHOLD); /* Roam Scan Period Cmd */ #define WMITLV_TABLE_WMI_ROAM_SCAN_PERIOD(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_scan_period_fixed_param, wmi_roam_scan_period_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_scan_period_fixed_param, wmi_roam_scan_period_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SCAN_PERIOD); /* Roam scan change Rssi Threshold Cmd */ -#define WMITLV_TABLE_WMI_ROAM_SCAN_RSSI_CHANGE_THRESHOLD(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_scan_rssi_change_threshold_fixed_param, wmi_roam_scan_rssi_change_threshold_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_ROAM_SCAN_RSSI_CHANGE_THRESHOLD(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_scan_rssi_change_threshold_fixed_param, wmi_roam_scan_rssi_change_threshold_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SCAN_RSSI_CHANGE_THRESHOLD); + /* Roam Scan Channel list Cmd */ #define WMITLV_TABLE_WMI_ROAM_CHAN_LIST(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_chan_list_fixed_param, wmi_roam_chan_list_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, channel_list, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_chan_list_fixed_param, wmi_roam_chan_list_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, channel_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_CHAN_LIST); /* Roam scan mode Cmd */ #define WMITLV_TABLE_WMI_ROAM_SCAN_CMD(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_scan_cmd_fixed_param, wmi_roam_scan_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_scan_cmd_fixed_param, wmi_roam_scan_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SCAN_CMD); /* Roam mbo configuration */ -#define WMITLV_TABLE_WMI_ROAM_SET_MBO_PARAM_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_roam_set_mbo_fixed_param, wmi_roam_set_mbo_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, cellular_cap, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_supported_operating_class_param, supp_op_class_param, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, supp_op_class_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_mbo_non_preferred_channel_report_param, non_prefer_ch_param, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, non_prefer_ch_attr, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_ROAM_SET_MBO_PARAM_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_set_mbo_fixed_param, wmi_roam_set_mbo_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, cellular_cap, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_supported_operating_class_param, supp_op_class_param, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, supp_op_class_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mbo_non_preferred_channel_report_param, non_prefer_ch_param, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, non_prefer_ch_attr, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SET_MBO_PARAM_CMDID); -#define WMITLV_TABLE_WMI_VDEV_PLMREQ_START_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_plmreq_start_cmd_fixed_param, wmi_vdev_plmreq_start_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, channel_list, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_VDEV_PLMREQ_START_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_plmreq_start_cmd_fixed_param, wmi_vdev_plmreq_start_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, channel_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_PLMREQ_START_CMDID); #define WMITLV_TABLE_WMI_VDEV_PLMREQ_STOP_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_plmreq_stop_cmd_fixed_param, wmi_vdev_plmreq_stop_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_plmreq_stop_cmd_fixed_param, wmi_vdev_plmreq_stop_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_PLMREQ_STOP_CMDID); - /* Start scan Cmd */ #define WMITLV_TABLE_WMI_START_SCAN_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_start_scan_cmd_fixed_param, wmi_start_scan_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, channel_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_ssid, ssid_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, bssid_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ie_data, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_vendor_oui, vendor_oui, WMITLV_SIZE_VAR) - + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_start_scan_cmd_fixed_param, wmi_start_scan_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, channel_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_ssid, ssid_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, bssid_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ie_data, WMITLV_SIZE_VAR)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vendor_oui, vendor_oui, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_START_SCAN_CMDID); /* Scan adaptive dwell mode configuration */ -#define WMITLV_TABLE_WMI_SCAN_ADAPTIVE_DWELL_CONFIG_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_scan_adaptive_dwell_config_fixed_param, wmi_scan_adaptive_dwell_config_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_scan_adaptive_dwell_parameters_tlv, param, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_SCAN_ADAPTIVE_DWELL_CONFIG_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_scan_adaptive_dwell_config_fixed_param, wmi_scan_adaptive_dwell_config_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_scan_adaptive_dwell_parameters_tlv, param, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_SCAN_ADAPTIVE_DWELL_CONFIG_CMDID); /* Start ExtScan Cmd */ #define WMITLV_TABLE_WMI_EXTSCAN_START_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_start_cmd_fixed_param, wmi_extscan_start_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_ssid, ssid_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, bssid_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ie_data, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_bucket, bucket_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_bucket_channel, channel_list, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_start_cmd_fixed_param, wmi_extscan_start_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_ssid, ssid_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, bssid_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ie_data, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_bucket, bucket_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_bucket_channel, channel_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_EXTSCAN_START_CMDID); /* Stop ExtScan Cmd */ #define WMITLV_TABLE_WMI_EXTSCAN_STOP_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_stop_cmd_fixed_param, wmi_extscan_stop_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_stop_cmd_fixed_param, wmi_extscan_stop_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_EXTSCAN_STOP_CMDID); /* Start ExtScan BSSID Monitoring Cmd */ #define WMITLV_TABLE_WMI_EXTSCAN_CONFIGURE_WLAN_CHANGE_MONITOR_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_configure_wlan_change_monitor_cmd_fixed_param, wmi_extscan_configure_wlan_change_monitor_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_wlan_change_bssid_param, wlan_change_descriptor_list, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_configure_wlan_change_monitor_cmd_fixed_param, wmi_extscan_configure_wlan_change_monitor_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_wlan_change_bssid_param, wlan_change_descriptor_list, WMITLV_SIZE_VAR) -WMITLV_CREATE_PARAM_STRUC - (WMI_EXTSCAN_CONFIGURE_WLAN_CHANGE_MONITOR_CMDID); +WMITLV_CREATE_PARAM_STRUC(WMI_EXTSCAN_CONFIGURE_WLAN_CHANGE_MONITOR_CMDID); /* Start Hot List Monitoring Cmd */ -#define WMITLV_TABLE_WMI_EXTSCAN_CONFIGURE_HOTLIST_MONITOR_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_configure_hotlist_monitor_cmd_fixed_param, wmi_extscan_configure_hotlist_monitor_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_hotlist_entry, hotlist, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_EXTSCAN_CONFIGURE_HOTLIST_MONITOR_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_configure_hotlist_monitor_cmd_fixed_param, wmi_extscan_configure_hotlist_monitor_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_hotlist_entry, hotlist, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_EXTSCAN_CONFIGURE_HOTLIST_MONITOR_CMDID); /* Get ExtScan BSSID/RSSI list Cmd */ #define WMITLV_TABLE_WMI_EXTSCAN_GET_CACHED_RESULTS_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_get_cached_results_cmd_fixed_param, wmi_extscan_get_cached_results_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_get_cached_results_cmd_fixed_param, wmi_extscan_get_cached_results_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_EXTSCAN_GET_CACHED_RESULTS_CMDID); /* Get ExtScan BSSID monitor results Cmd */ #define WMITLV_TABLE_WMI_EXTSCAN_GET_WLAN_CHANGE_RESULTS_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_get_wlan_change_results_cmd_fixed_param, wmi_extscan_get_wlan_change_results_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_get_wlan_change_results_cmd_fixed_param, wmi_extscan_get_wlan_change_results_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_EXTSCAN_GET_WLAN_CHANGE_RESULTS_CMDID); /* Set ExtScan Capabilities Cmd */ #define WMITLV_TABLE_WMI_EXTSCAN_SET_CAPABILITIES_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_set_capabilities_cmd_fixed_param, wmi_extscan_set_capabilities_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_cache_capabilities, extscan_cache_capabilities, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_wlan_change_monitor_capabilities, wlan_change_capabilities, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_hotlist_monitor_capabilities, hotlist_capabilities, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_set_capabilities_cmd_fixed_param, wmi_extscan_set_capabilities_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_cache_capabilities, extscan_cache_capabilities, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_wlan_change_monitor_capabilities, wlan_change_capabilities, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_hotlist_monitor_capabilities, hotlist_capabilities, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_EXTSCAN_SET_CAPABILITIES_CMDID); /* Get ExtScan Capabilities Cmd */ #define WMITLV_TABLE_WMI_EXTSCAN_GET_CAPABILITIES_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_get_capabilities_cmd_fixed_param, wmi_extscan_get_capabilities_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_get_capabilities_cmd_fixed_param, wmi_extscan_get_capabilities_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_EXTSCAN_GET_CAPABILITIES_CMDID); /* Start SSID Hot List Monitoring Cmd */ #define WMITLV_TABLE_WMI_EXTSCAN_CONFIGURE_HOTLIST_SSID_MONITOR_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_configure_hotlist_ssid_monitor_cmd_fixed_param, wmi_extscan_configure_hotlist_ssid_monitor_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_hotlist_ssid_entry, hotlist_ssid, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_configure_hotlist_ssid_monitor_cmd_fixed_param, wmi_extscan_configure_hotlist_ssid_monitor_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_hotlist_ssid_entry, hotlist_ssid, WMITLV_SIZE_VAR) + WMITLV_CREATE_PARAM_STRUC(WMI_EXTSCAN_CONFIGURE_HOTLIST_SSID_MONITOR_CMDID); /* P2P set vendor ID data Cmd */ #define WMITLV_TABLE_WMI_P2P_SET_VENDOR_IE_DATA_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_p2p_set_vendor_ie_data_cmd_fixed_param, wmi_p2p_set_vendor_ie_data_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_p2p_set_vendor_ie_data_cmd_fixed_param, wmi_p2p_set_vendor_ie_data_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_P2P_SET_VENDOR_IE_DATA_CMDID); + /* P2P set OppPS parameters Cmd */ #define WMITLV_TABLE_WMI_P2P_SET_OPPPS_PARAM_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_p2p_set_oppps_cmd_fixed_param, wmi_p2p_set_oppps_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_p2p_set_oppps_cmd_fixed_param, wmi_p2p_set_oppps_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_P2P_SET_OPPPS_PARAM_CMDID); /* P2P set listen offload start parameters Cmd */ -#define WMITLV_TABLE_WMI_P2P_LISTEN_OFFLOAD_START_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_p2p_lo_start_cmd_fixed_param, wmi_p2p_lo_start_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, device_types_data, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, prob_resp_data, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_P2P_LISTEN_OFFLOAD_START_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_p2p_lo_start_cmd_fixed_param, wmi_p2p_lo_start_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, device_types_data, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, prob_resp_data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_P2P_LISTEN_OFFLOAD_START_CMDID); /* P2P set listen offload stop parameters Cmd */ -#define WMITLV_TABLE_WMI_P2P_LISTEN_OFFLOAD_STOP_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_p2p_lo_stop_cmd_fixed_param, wmi_p2p_lo_stop_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_P2P_LISTEN_OFFLOAD_STOP_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_p2p_lo_stop_cmd_fixed_param, wmi_p2p_lo_stop_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_P2P_LISTEN_OFFLOAD_STOP_CMDID); /* P2P set listen offload stopped parameters Event */ -#define WMITLV_TABLE_WMI_P2P_LISTEN_OFFLOAD_STOPPED_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_p2p_lo_stopped_event_fixed_param, wmi_p2p_lo_stopped_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_P2P_LISTEN_OFFLOAD_STOPPED_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_p2p_lo_stopped_event_fixed_param, wmi_p2p_lo_stopped_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_P2P_LISTEN_OFFLOAD_STOPPED_EVENTID); /* Pdev set channel Cmd */ #define WMITLV_TABLE_WMI_PDEV_SET_CHANNEL_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_channel, wmi_channel, chan, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_channel, wmi_channel, chan, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_CHANNEL_CMDID); /* Echo Cmd */ -#define WMITLV_TABLE_WMI_ECHO_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_echo_cmd_fixed_param, wmi_echo_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_ECHO_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_echo_cmd_fixed_param, wmi_echo_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_ECHO_CMDID); /* Pdev set wmm params */ #define WMITLV_TABLE_WMI_PDEV_SET_WMM_PARAMS_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_wmm_params_cmd_fixed_param, wmi_pdev_set_wmm_params_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wmm_params, wmi_wmm_params, wmm_params_ac_be, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wmm_params, wmi_wmm_params, wmm_params_ac_bk, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wmm_params, wmi_wmm_params, wmm_params_ac_vi, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wmm_params, wmi_wmm_params, wmm_params_ac_vo, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_wmm_params_cmd_fixed_param, wmi_pdev_set_wmm_params_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wmm_params, wmi_wmm_params, wmm_params_ac_be, WMITLV_SIZE_FIX)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wmm_params, wmi_wmm_params, wmm_params_ac_bk, WMITLV_SIZE_FIX)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wmm_params, wmi_wmm_params, wmm_params_ac_vi, WMITLV_SIZE_FIX)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wmm_params, wmi_wmm_params, wmm_params_ac_vo, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_WMM_PARAMS_CMDID); /* Vdev start request Cmd */ #define WMITLV_TABLE_WMI_VDEV_START_REQUEST_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_start_request_cmd_fixed_param, wmi_vdev_start_request_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_channel, wmi_channel, chan, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_p2p_noa_descriptor, noa_descriptors, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_start_request_cmd_fixed_param, wmi_vdev_start_request_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_channel, wmi_channel, chan, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_p2p_noa_descriptor, noa_descriptors, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_START_REQUEST_CMDID); /* Vdev restart request cmd */ #define WMITLV_TABLE_WMI_VDEV_RESTART_REQUEST_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_start_request_cmd_fixed_param, wmi_vdev_start_request_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_channel, wmi_channel, chan, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_p2p_noa_descriptor, noa_descriptors, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_start_request_cmd_fixed_param, wmi_vdev_start_request_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_channel, wmi_channel, chan, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_p2p_noa_descriptor, noa_descriptors, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_RESTART_REQUEST_CMDID); /* P2P Go set beacon IE cmd */ #define WMITLV_TABLE_WMI_P2P_GO_SET_BEACON_IE(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_p2p_go_set_beacon_ie_fixed_param, wmi_p2p_go_set_beacon_ie_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ie_data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_p2p_go_set_beacon_ie_fixed_param, wmi_p2p_go_set_beacon_ie_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ie_data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_P2P_GO_SET_BEACON_IE); /* GTK offload Cmd */ #define WMITLV_TABLE_WMI_GTK_OFFLOAD_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_GTK_OFFLOAD_CMD_fixed_param, WMI_GTK_OFFLOAD_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_GTK_OFFLOAD_CMD_fixed_param, WMI_GTK_OFFLOAD_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_GTK_OFFLOAD_CMDID); /* PMF 11w offload Set SA query cmd */ -#define WMITLV_TABLE_WMI_PMF_OFFLOAD_SET_SA_QUERY_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, \ - WMITLV_TAG_STRUC_WMI_PMF_OFFLOAD_SET_SA_QUERY_CMD_fixed_param, \ - WMI_PMF_OFFLOAD_SET_SA_QUERY_CMD_fixed_param, fixed_param, \ - WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PMF_OFFLOAD_SET_SA_QUERY_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_PMF_OFFLOAD_SET_SA_QUERY_CMD_fixed_param, WMI_PMF_OFFLOAD_SET_SA_QUERY_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PMF_OFFLOAD_SET_SA_QUERY_CMDID); /* Scan channel list Cmd */ #define WMITLV_TABLE_WMI_SCAN_CHAN_LIST_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_scan_chan_list_cmd_fixed_param, wmi_scan_chan_list_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_channel, chan_info, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_scan_chan_list_cmd_fixed_param, wmi_scan_chan_list_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_channel, chan_info, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_SCAN_CHAN_LIST_CMDID); /* STA UAPSD Auto trigger Cmd */ #define WMITLV_TABLE_WMI_STA_UAPSD_AUTO_TRIG_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sta_uapsd_auto_trig_cmd_fixed_param, wmi_sta_uapsd_auto_trig_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_sta_uapsd_auto_trig_param, ac_param, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sta_uapsd_auto_trig_cmd_fixed_param, wmi_sta_uapsd_auto_trig_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_sta_uapsd_auto_trig_param, ac_param, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_STA_UAPSD_AUTO_TRIG_CMDID); /* Probe template Cmd */ #define WMITLV_TABLE_WMI_PRB_TMPL_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_prb_tmpl_cmd_fixed_param, wmi_prb_tmpl_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bcn_prb_info, wmi_bcn_prb_info, bcn_prb_info, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_prb_tmpl_cmd_fixed_param, wmi_prb_tmpl_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bcn_prb_info, wmi_bcn_prb_info, bcn_prb_info, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PRB_TMPL_CMDID); /* Beacon template Cmd */ #define WMITLV_TABLE_WMI_BCN_TMPL_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bcn_tmpl_cmd_fixed_param, wmi_bcn_tmpl_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bcn_prb_info, wmi_bcn_prb_info, bcn_prb_info, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bcn_tmpl_cmd_fixed_param, wmi_bcn_tmpl_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bcn_prb_info, wmi_bcn_prb_info, bcn_prb_info, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_BCN_TMPL_CMDID); /* VDEV install key complete Cmd */ #define WMITLV_TABLE_WMI_VDEV_INSTALL_KEY_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_install_key_cmd_fixed_param, wmi_vdev_install_key_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, key_data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_install_key_cmd_fixed_param, wmi_vdev_install_key_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, key_data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_INSTALL_KEY_CMDID); + /* VDEV WNM SLEEP MODE Cmd */ #define WMITLV_TABLE_WMI_VDEV_WNM_SLEEPMODE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_VDEV_WNM_SLEEPMODE_CMD_fixed_param, WMI_VDEV_WNM_SLEEPMODE_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_VDEV_WNM_SLEEPMODE_CMD_fixed_param, WMI_VDEV_WNM_SLEEPMODE_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_WNM_SLEEPMODE_CMDID); #define WMITLV_TABLE_WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMD_fixed_param, WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMD_fixed_param, WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMDID); /* Peer Assoc Cmd */ #define WMITLV_TABLE_WMI_PEER_ASSOC_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_assoc_complete_cmd_fixed_param, wmi_peer_assoc_complete_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, peer_legacy_rates, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, peer_ht_rates, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vht_rate_set, wmi_vht_rate_set, peer_vht_rates, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_assoc_complete_cmd_fixed_param, wmi_peer_assoc_complete_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, peer_legacy_rates, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, peer_ht_rates, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vht_rate_set, wmi_vht_rate_set, peer_vht_rates, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ASSOC_CMDID); /* Peer Set Rate Report Condition Cmd */ -#define WMITLV_TABLE_WMI_PEER_SET_RATE_REPORT_CONDITION_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_set_rate_report_condition_fixed_param, wmi_peer_set_rate_report_condition_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PEER_SET_RATE_REPORT_CONDITION_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_set_rate_report_condition_fixed_param, wmi_peer_set_rate_report_condition_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_SET_RATE_REPORT_CONDITION_CMDID); /* Add Beacon filter Cmd */ #define WMITLV_TABLE_WMI_ADD_BCN_FILTER_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_add_bcn_filter_cmd_fixed_param, wmi_add_bcn_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_FXAR(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ie_map, WMITLV_SIZE_FIX, BCN_FLT_MAX_ELEMS_IE_LIST) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_add_bcn_filter_cmd_fixed_param, wmi_add_bcn_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_FXAR(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ie_map, WMITLV_SIZE_FIX, BCN_FLT_MAX_ELEMS_IE_LIST) WMITLV_CREATE_PARAM_STRUC(WMI_ADD_BCN_FILTER_CMDID); /* Sta keepalive cmd */ -#define WMITLV_TABLE_WMI_STA_KEEPALIVE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_STA_KEEPALIVE_CMD_fixed_param, WMI_STA_KEEPALIVE_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_STA_KEEPALVE_ARP_RESPONSE, WMI_STA_KEEPALVE_ARP_RESPONSE, arp_resp, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_STA_KEEPALIVE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_STA_KEEPALIVE_CMD_fixed_param, WMI_STA_KEEPALIVE_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_STA_KEEPALVE_ARP_RESPONSE, WMI_STA_KEEPALVE_ARP_RESPONSE, arp_resp, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_STA_KEEPALIVE_CMDID); /* ARP NS offload Cmd */ #define WMITLV_TABLE_WMI_SET_ARP_NS_OFFLOAD_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_SET_ARP_NS_OFFLOAD_CMD_fixed_param, WMI_SET_ARP_NS_OFFLOAD_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_FXAR(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_NS_OFFLOAD_TUPLE, ns_tuples, WMITLV_SIZE_FIX, WMI_MAX_NS_OFFLOADS) \ - WMITLV_FXAR(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_ARP_OFFLOAD_TUPLE, arp_tuples, WMITLV_SIZE_FIX, WMI_MAX_ARP_OFFLOADS) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_NS_OFFLOAD_TUPLE, ns_ext_tuples, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_SET_ARP_NS_OFFLOAD_CMD_fixed_param, WMI_SET_ARP_NS_OFFLOAD_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_FXAR(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_NS_OFFLOAD_TUPLE, ns_tuples, WMITLV_SIZE_FIX, WMI_MAX_NS_OFFLOADS) \ + WMITLV_FXAR(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_ARP_OFFLOAD_TUPLE, arp_tuples, WMITLV_SIZE_FIX, WMI_MAX_ARP_OFFLOADS) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_NS_OFFLOAD_TUPLE, ns_ext_tuples, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_SET_ARP_NS_OFFLOAD_CMDID); /* AP PS peer param Cmd */ #define WMITLV_TABLE_WMI_AP_PS_PEER_PARAM_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ap_ps_peer_cmd_fixed_param, wmi_ap_ps_peer_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ap_ps_peer_cmd_fixed_param, wmi_ap_ps_peer_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_AP_PS_PEER_PARAM_CMDID); /* AP PS enhanced green ap param Cmd */ -#define WMITLV_TABLE_WMI_AP_PS_EGAP_PARAM_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len,\ - WMITLV_TAG_STRUC_wmi_ap_ps_egap_param_cmd_fixed_param,\ - wmi_ap_ps_egap_param_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_AP_PS_EGAP_PARAM_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ap_ps_egap_param_cmd_fixed_param, wmi_ap_ps_egap_param_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_AP_PS_EGAP_PARAM_CMDID); /* Profile Trigger Cmd */ #define WMITLV_TABLE_WMI_WLAN_PROFILE_TRIGGER_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wlan_profile_trigger_cmd_fixed_param, wmi_wlan_profile_trigger_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wlan_profile_trigger_cmd_fixed_param, wmi_wlan_profile_trigger_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_WLAN_PROFILE_TRIGGER_CMDID); /* WLAN Profile set hist interval Cmd */ #define WMITLV_TABLE_WMI_WLAN_PROFILE_SET_HIST_INTVL_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wlan_profile_set_hist_intvl_cmd_fixed_param, wmi_wlan_profile_set_hist_intvl_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wlan_profile_set_hist_intvl_cmd_fixed_param, wmi_wlan_profile_set_hist_intvl_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_WLAN_PROFILE_SET_HIST_INTVL_CMDID); /* WLAN Profile get profile data Cmd */ #define WMITLV_TABLE_WMI_WLAN_PROFILE_GET_PROFILE_DATA_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wlan_profile_get_prof_data_cmd_fixed_param, wmi_wlan_profile_get_prof_data_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wlan_profile_get_prof_data_cmd_fixed_param, wmi_wlan_profile_get_prof_data_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_WLAN_PROFILE_GET_PROFILE_DATA_CMDID); /* WLAN Profile enable profile ID Cmd */ #define WMITLV_TABLE_WMI_WLAN_PROFILE_ENABLE_PROFILE_ID_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wlan_profile_enable_profile_id_cmd_fixed_param, wmi_wlan_profile_enable_profile_id_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wlan_profile_enable_profile_id_cmd_fixed_param, wmi_wlan_profile_enable_profile_id_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_WLAN_PROFILE_ENABLE_PROFILE_ID_CMDID); /* WOW Delete Wake Pattern Cmd */ #define WMITLV_TABLE_WMI_WOW_DEL_WAKE_PATTERN_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_DEL_PATTERN_CMD_fixed_param, WMI_WOW_DEL_PATTERN_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_DEL_PATTERN_CMD_fixed_param, WMI_WOW_DEL_PATTERN_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_DEL_WAKE_PATTERN_CMDID); -#define WMITLV_TABLE_WMI_WOW_UDP_SVC_OFLD_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_WMI_WOW_UDP_SVC_OFLD_CMD_fixed_param, WMI_WOW_UDP_SVC_OFLD_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, pattern, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, response, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_WOW_UDP_SVC_OFLD_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_UDP_SVC_OFLD_CMD_fixed_param, WMI_WOW_UDP_SVC_OFLD_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, pattern, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, response, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_UDP_SVC_OFLD_CMDID); -#define WMITLV_TABLE_WMI_WOW_HOSTWAKEUP_GPIO_PIN_PATTERN_CONFIG_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len,\ - WMITLV_TAG_STRUC_wmi_wow_hostwakeup_gpio_pin_pattern_config_cmd_fixed_param,\ - WMI_WOW_HOSTWAKEUP_GPIO_PIN_PATTERN_CONFIG_CMD_fixed_param, fixed_param,\ - WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_WOW_HOSTWAKEUP_GPIO_PIN_PATTERN_CONFIG_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wow_hostwakeup_gpio_pin_pattern_config_cmd_fixed_param, WMI_WOW_HOSTWAKEUP_GPIO_PIN_PATTERN_CONFIG_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_HOSTWAKEUP_GPIO_PIN_PATTERN_CONFIG_CMDID); -#define WMITLV_TABLE_WMI_WOW_SET_ACTION_WAKE_UP_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_wow_set_action_wake_up_cmd_fixed_param, WMI_WOW_SET_ACTION_WAKE_UP_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_WOW_SET_ACTION_WAKE_UP_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wow_set_action_wake_up_cmd_fixed_param, WMI_WOW_SET_ACTION_WAKE_UP_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_SET_ACTION_WAKE_UP_CMDID); /* Wow enable/disable wake up Cmd */ #define WMITLV_TABLE_WMI_WOW_ENABLE_DISABLE_WAKE_EVENT_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_ADD_DEL_EVT_CMD_fixed_param, WMI_WOW_ADD_DEL_EVT_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_ADD_DEL_EVT_CMD_fixed_param, WMI_WOW_ADD_DEL_EVT_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_ENABLE_DISABLE_WAKE_EVENT_CMDID); /* RTT measurement request Cmd */ #define WMITLV_TABLE_WMI_RTT_MEASREQ_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) + + WMITLV_CREATE_PARAM_STRUC(WMI_RTT_MEASREQ_CMDID); /* RTT TSF Cmd */ #define WMITLV_TABLE_WMI_RTT_TSF_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) + WMITLV_CREATE_PARAM_STRUC(WMI_RTT_TSF_CMDID); /* RTT OEM req Cmd */ #define WMITLV_TABLE_WMI_OEM_REQ_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_OEM_REQ_CMDID); /* RTT OEM request Cmd - DEPRECATED */ -#define WMITLV_TABLE_WMI_OEM_REQUEST_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_OEM_REQUEST_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) + WMITLV_CREATE_PARAM_STRUC(WMI_OEM_REQUEST_CMDID); /* Spectral scan configure Cmd */ #define WMITLV_TABLE_WMI_VDEV_SPECTRAL_SCAN_CONFIGURE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_spectral_configure_cmd_fixed_param, wmi_vdev_spectral_configure_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_spectral_configure_cmd_fixed_param, wmi_vdev_spectral_configure_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SPECTRAL_SCAN_CONFIGURE_CMDID); /* Spectral scan enable Cmd */ -#define WMITLV_TABLE_WMI_VDEV_SPECTRAL_SCAN_ENABLE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_spectral_enable_cmd_fixed_param, wmi_vdev_spectral_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_VDEV_SPECTRAL_SCAN_ENABLE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_spectral_enable_cmd_fixed_param, wmi_vdev_spectral_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SPECTRAL_SCAN_ENABLE_CMDID); /* Request stats Cmd */ #define WMITLV_TABLE_WMI_REQUEST_STATS_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_request_stats_cmd_fixed_param, wmi_request_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_request_stats_cmd_fixed_param, wmi_request_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_STATS_CMDID); -/* flush debug messages */ +/* Request for memory dump stats Cmd */ #define WMITLV_TABLE_WMI_GET_FW_MEM_DUMP_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_get_fw_mem_dump_fixed_param, wmi_get_fw_mem_dump_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_fw_mem_dump,fw_mem_dump_params, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_get_fw_mem_dump_fixed_param, wmi_get_fw_mem_dump_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_fw_mem_dump, fw_mem_dump_params, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_GET_FW_MEM_DUMP_CMDID); -/* Request for memory dump stats Cmd */ -#define WMITLV_TABLE_WMI_DEBUG_MESG_FLUSH_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_debug_mesg_flush_fixed_param, wmi_debug_mesg_flush_fixed_param, fixed_param, WMITLV_SIZE_FIX) +/* flush debug messages */ +#define WMITLV_TABLE_WMI_DEBUG_MESG_FLUSH_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_debug_mesg_flush_fixed_param, wmi_debug_mesg_flush_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_DEBUG_MESG_FLUSH_CMDID); -/* Request to config the DIAG Events and LOGs */ -#define WMITLV_TABLE_WMI_DIAG_EVENT_LOG_CONFIG_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_diag_event_log_config_fixed_param, wmi_diag_event_log_config_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, diag_events_logs_list, WMITLV_SIZE_VAR) +/* Request to config the DIAG Events and LOGs*/ +#define WMITLV_TABLE_WMI_DIAG_EVENT_LOG_CONFIG_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_diag_event_log_config_fixed_param, wmi_diag_event_log_config_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, diag_events_logs_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_DIAG_EVENT_LOG_CONFIG_CMDID); /* Set config params */ #define WMITLV_TABLE_WMI_START_LINK_STATS_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_start_link_stats_cmd_fixed_param, wmi_start_link_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_start_link_stats_cmd_fixed_param, wmi_start_link_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_START_LINK_STATS_CMDID); /* Request to clear link stats */ #define WMITLV_TABLE_WMI_CLEAR_LINK_STATS_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_clear_link_stats_cmd_fixed_param, wmi_clear_link_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_clear_link_stats_cmd_fixed_param, wmi_clear_link_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_CLEAR_LINK_STATS_CMDID); -/* Request Link stats Cmd */ +/* Request stats Cmd */ #define WMITLV_TABLE_WMI_REQUEST_LINK_STATS_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_request_link_stats_cmd_fixed_param, wmi_request_link_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_request_link_stats_cmd_fixed_param, wmi_request_link_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_LINK_STATS_CMDID); /* Network list offload config Cmd */ #define WMITLV_TABLE_WMI_NETWORK_LIST_OFFLOAD_CONFIG_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_nlo_config_cmd_fixed_param, wmi_nlo_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, nlo_configured_parameters, nlo_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, channel_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, nlo_channel_prediction_cfg, channel_prediction_param, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_enlo_candidate_score_param, enlo_candidate_score_params, candidate_score_params, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_vendor_oui, vendor_oui, WMITLV_SIZE_VAR) - + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nlo_config_cmd_fixed_param, wmi_nlo_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, nlo_configured_parameters, nlo_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, channel_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, nlo_channel_prediction_cfg, channel_prediction_param, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_enlo_candidate_score_param, enlo_candidate_score_params, candidate_score_params, WMITLV_SIZE_FIX)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vendor_oui, vendor_oui, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_connected_nlo_rssi_params, connected_nlo_rssi_params, cnlo_rssi_params, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_NETWORK_LIST_OFFLOAD_CONFIG_CMDID); /* Passpoint list offload config Cmd */ #define WMITLV_TABLE_WMI_PASSPOINT_LIST_CONFIG_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len,WMITLV_TAG_STRUC_wmi_passpoint_config_cmd_fixed_param, wmi_passpoint_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_passpoint_config_cmd_fixed_param, wmi_passpoint_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_CREATE_PARAM_STRUC(WMI_PASSPOINT_LIST_CONFIG_CMDID); /* CSA offload enable Cmd */ #define WMITLV_TABLE_WMI_CSA_OFFLOAD_ENABLE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_csa_offload_enable_cmd_fixed_param, wmi_csa_offload_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_csa_offload_enable_cmd_fixed_param, wmi_csa_offload_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_CSA_OFFLOAD_ENABLE_CMDID); /* CSA offload channel switch Cmd */ #define WMITLV_TABLE_WMI_CSA_OFFLOAD_CHANSWITCH_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_csa_offload_chanswitch_cmd_fixed_param, wmi_csa_offload_chanswitch_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_channel, wmi_channel, chan, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_csa_offload_chanswitch_cmd_fixed_param, wmi_csa_offload_chanswitch_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_channel, wmi_channel, chan, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_CSA_OFFLOAD_CHANSWITCH_CMDID); /* Chatter set mode Cmd */ #define WMITLV_TABLE_WMI_CHATTER_SET_MODE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_chatter_set_mode_cmd_fixed_param, wmi_chatter_set_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_chatter_set_mode_cmd_fixed_param, wmi_chatter_set_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_CHATTER_SET_MODE_CMDID); + /* PDEV UTF Cmd */ -#define WMITLV_TABLE_WMI_PDEV_UTF_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_PDEV_UTF_CMDID(id,op,buf,len)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_UTF_CMDID); /* PDEV QVIT Cmd */ -#define WMITLV_TABLE_WMI_PDEV_QVIT_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_PDEV_QVIT_CMDID(id,op,buf,len)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_QVIT_CMDID); -#define WMITLV_TABLE_WMI_PDEV_SET_WAKEUP_CONFIG_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_WMI_PDEV_SET_WAKEUP_CONFIG_CMDID_fixed_param, WMI_PDEV_SET_WAKEUP_CONFIG_CMDID_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PDEV_SET_WAKEUP_CONFIG_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_PDEV_SET_WAKEUP_CONFIG_CMDID_fixed_param, WMI_PDEV_SET_WAKEUP_CONFIG_CMDID_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_WAKEUP_CONFIG_CMDID); /* Vdev Set keep alive Cmd */ -#define WMITLV_TABLE_WMI_VDEV_SET_KEEPALIVE_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_set_keepalive_cmd_fixed_param, wmi_vdev_set_keepalive_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_VDEV_SET_KEEPALIVE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_set_keepalive_cmd_fixed_param, wmi_vdev_set_keepalive_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_KEEPALIVE_CMDID); /* Vdev Get keep alive Cmd */ #define WMITLV_TABLE_WMI_VDEV_GET_KEEPALIVE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_get_keepalive_cmd_fixed_param, wmi_vdev_get_keepalive_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_get_keepalive_cmd_fixed_param, wmi_vdev_get_keepalive_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_GET_KEEPALIVE_CMDID); + /*FWTEST Set TBTT mode Cmd*/ #define WMITLV_TABLE_WMI_FWTEST_VDEV_MCC_SET_TBTT_MODE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_mcc_set_tbtt_mode_cmd_fixed_param, wmi_vdev_mcc_set_tbtt_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_mcc_set_tbtt_mode_cmd_fixed_param, wmi_vdev_mcc_set_tbtt_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_FWTEST_VDEV_MCC_SET_TBTT_MODE_CMDID); /* FWTEST set NoA parameters Cmd */ #define WMITLV_TABLE_WMI_FWTEST_P2P_SET_NOA_PARAM_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_p2p_set_noa_cmd_fixed_param, wmi_p2p_set_noa_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_p2p_noa_descriptor, noa_descriptor, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_p2p_set_noa_cmd_fixed_param, wmi_p2p_set_noa_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_p2p_noa_descriptor, noa_descriptor, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_FWTEST_P2P_SET_NOA_PARAM_CMDID); /* Unit test FW */ -#define WMITLV_TABLE_WMI_UNIT_TEST_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_unit_test_cmd_fixed_param, wmi_unit_test_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, args, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_UNIT_TEST_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_unit_test_cmd_fixed_param, wmi_unit_test_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, args, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_UNIT_TEST_CMDID); /* Force Fw Hang Cmd */ #define WMITLV_TABLE_WMI_FORCE_FW_HANG_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_FORCE_FW_HANG_CMD_fixed_param, WMI_FORCE_FW_HANG_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_FORCE_FW_HANG_CMD_fixed_param, WMI_FORCE_FW_HANG_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_FORCE_FW_HANG_CMDID); + /* Set Mcast address Cmd */ #define WMITLV_TABLE_WMI_SET_MCASTBCAST_FILTER_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_SET_MCASTBCAST_FILTER_CMD_fixed_param, WMI_SET_MCASTBCAST_FILTER_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_SET_MCASTBCAST_FILTER_CMD_fixed_param, WMI_SET_MCASTBCAST_FILTER_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_SET_MCASTBCAST_FILTER_CMDID); /* Enhanced Mcast add/delete filter list cmd */ -#define WMITLV_TABLE_WMI_SET_MULTIPLE_MCAST_FILTER_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_set_multiple_mcast_filter_cmd_fixed_param, WMI_SET_MULTIPLE_MCAST_FILTER_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, mcast_list, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_SET_MULTIPLE_MCAST_FILTER_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_set_multiple_mcast_filter_cmd_fixed_param, WMI_SET_MULTIPLE_MCAST_FILTER_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, mcast_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_SET_MULTIPLE_MCAST_FILTER_CMDID); /* Set dbglog time stamp sync cmd */ -#define WMITLV_TABLE_WMI_DBGLOG_TIME_STAMP_SYNC_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_dbglog_time_stamp_sync_cmd_fixed_param, WMI_DBGLOG_TIME_STAMP_SYNC_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_DBGLOG_TIME_STAMP_SYNC_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dbglog_time_stamp_sync_cmd_fixed_param, WMI_DBGLOG_TIME_STAMP_SYNC_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_DBGLOG_TIME_STAMP_SYNC_CMDID); /* GPIO config Cmd */ #define WMITLV_TABLE_WMI_GPIO_CONFIG_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_gpio_config_cmd_fixed_param, wmi_gpio_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_gpio_config_cmd_fixed_param, wmi_gpio_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_GPIO_CONFIG_CMDID); /* GPIO output Cmd */ #define WMITLV_TABLE_WMI_GPIO_OUTPUT_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_gpio_output_cmd_fixed_param, wmi_gpio_output_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_gpio_output_cmd_fixed_param, wmi_gpio_output_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_GPIO_OUTPUT_CMDID); /* Peer add WDA entry Cmd */ #define WMITLV_TABLE_WMI_PEER_ADD_WDS_ENTRY_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_add_wds_entry_cmd_fixed_param, wmi_peer_add_wds_entry_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_add_wds_entry_cmd_fixed_param, wmi_peer_add_wds_entry_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ADD_WDS_ENTRY_CMDID); /*Peer remove WDS entry Cmd */ #define WMITLV_TABLE_WMI_PEER_REMOVE_WDS_ENTRY_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_remove_wds_entry_cmd_fixed_param, wmi_peer_remove_wds_entry_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_remove_wds_entry_cmd_fixed_param, wmi_peer_remove_wds_entry_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_REMOVE_WDS_ENTRY_CMDID); /* Beacon tx Cmd */ -#define WMITLV_TABLE_WMI_BCN_TX_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bcn_tx_hdr, wmi_bcn_tx_hdr, hdr, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_BCN_TX_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bcn_tx_hdr, wmi_bcn_tx_hdr, hdr, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_BCN_TX_CMDID); /* PDEV send Beacon Cmd */ #define WMITLV_TABLE_WMI_PDEV_SEND_BCN_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bcn_send_from_host_cmd_fixed_param, wmi_bcn_send_from_host_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bcn_send_from_host_cmd_fixed_param, wmi_bcn_send_from_host_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SEND_BCN_CMDID); /* Management tx Cmd */ -#define WMITLV_TABLE_WMI_MGMT_TX_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_tx_hdr, wmi_mgmt_tx_hdr, hdr, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_MGMT_TX_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_tx_hdr, wmi_mgmt_tx_hdr, hdr, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_TX_CMDID); /* Management tx send cmd */ -#define WMITLV_TABLE_WMI_MGMT_TX_SEND_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_mgmt_tx_send_cmd_fixed_param, wmi_mgmt_tx_send_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_MGMT_TX_SEND_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_tx_send_cmd_fixed_param, wmi_mgmt_tx_send_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) + WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_TX_SEND_CMDID); /* ADD clear response Cmd */ #define WMITLV_TABLE_WMI_ADDBA_CLEAR_RESP_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_addba_clear_resp_cmd_fixed_param, wmi_addba_clear_resp_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_addba_clear_resp_cmd_fixed_param, wmi_addba_clear_resp_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_ADDBA_CLEAR_RESP_CMDID); /* ADD BA send Cmd */ #define WMITLV_TABLE_WMI_ADDBA_SEND_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_addba_send_cmd_fixed_param, wmi_addba_send_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_addba_send_cmd_fixed_param, wmi_addba_send_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_ADDBA_SEND_CMDID); /* DEL BA send Cmd */ #define WMITLV_TABLE_WMI_DELBA_SEND_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_delba_send_cmd_fixed_param, wmi_delba_send_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_delba_send_cmd_fixed_param, wmi_delba_send_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_DELBA_SEND_CMDID); /* ADD BA set response Cmd */ #define WMITLV_TABLE_WMI_ADDBA_SET_RESP_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_addba_setresponse_cmd_fixed_param, wmi_addba_setresponse_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_addba_setresponse_cmd_fixed_param, wmi_addba_setresponse_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_ADDBA_SET_RESP_CMDID); /* Send single AMSDU Cmd */ #define WMITLV_TABLE_WMI_SEND_SINGLEAMSDU_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_send_singleamsdu_cmd_fixed_param, wmi_send_singleamsdu_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_send_singleamsdu_cmd_fixed_param, wmi_send_singleamsdu_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_SEND_SINGLEAMSDU_CMDID); /* PDev Packet Log enable Cmd */ #define WMITLV_TABLE_WMI_PDEV_PKTLOG_ENABLE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_pktlog_enable_cmd_fixed_param, wmi_pdev_pktlog_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_pktlog_enable_cmd_fixed_param, wmi_pdev_pktlog_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_PKTLOG_ENABLE_CMDID); /* PDev Packet Log disable Cmd */ #define WMITLV_TABLE_WMI_PDEV_PKTLOG_DISABLE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_pktlog_disable_cmd_fixed_param, wmi_pdev_pktlog_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_pktlog_disable_cmd_fixed_param, wmi_pdev_pktlog_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_PKTLOG_DISABLE_CMDID); /* PDev set HT Cap IE Cmd */ #define WMITLV_TABLE_WMI_PDEV_SET_HT_CAP_IE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_ht_ie_cmd_fixed_param, wmi_pdev_set_ht_ie_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ie_data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_ht_ie_cmd_fixed_param, wmi_pdev_set_ht_ie_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ie_data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_HT_CAP_IE_CMDID); /* PDev set VHT Cap IE Cmd */ #define WMITLV_TABLE_WMI_PDEV_SET_VHT_CAP_IE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_vht_ie_cmd_fixed_param, wmi_pdev_set_vht_ie_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ie_data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_vht_ie_cmd_fixed_param, wmi_pdev_set_vht_ie_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ie_data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_VHT_CAP_IE_CMDID); /* PDev Set DSCP to TID map Cmd */ #define WMITLV_TABLE_WMI_PDEV_SET_DSCP_TID_MAP_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_dscp_tid_map_cmd_fixed_param, wmi_pdev_set_dscp_tid_map_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_dscp_tid_map_cmd_fixed_param, wmi_pdev_set_dscp_tid_map_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_DSCP_TID_MAP_CMDID); /* PDev Green AP PS enable Cmd */ #define WMITLV_TABLE_WMI_PDEV_GREEN_AP_PS_ENABLE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_green_ap_ps_enable_cmd_fixed_param, wmi_pdev_green_ap_ps_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_green_ap_ps_enable_cmd_fixed_param, wmi_pdev_green_ap_ps_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GREEN_AP_PS_ENABLE_CMDID); /* PDEV Get TPC Config Cmd */ #define WMITLV_TABLE_WMI_PDEV_GET_TPC_CONFIG_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_get_tpc_config_cmd_fixed_param, wmi_pdev_get_tpc_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_get_tpc_config_cmd_fixed_param, wmi_pdev_get_tpc_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GET_TPC_CONFIG_CMDID); /* PDEV Set Base Mac Address Cmd */ #define WMITLV_TABLE_WMI_PDEV_SET_BASE_MACADDR_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_base_macaddr_cmd_fixed_param, wmi_pdev_set_base_macaddr_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_base_macaddr_cmd_fixed_param, wmi_pdev_set_base_macaddr_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_BASE_MACADDR_CMDID); /* MIB Stats*/ -#define WMITLV_TABLE_WMI_MIB_STATS_ENABLE_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_mib_stats_enable_cmd_fixed_param, wmi_mib_stats_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_MIB_STATS_ENABLE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mib_stats_enable_cmd_fixed_param, wmi_mib_stats_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_MIB_STATS_ENABLE_CMDID); /* Peer multicast group Cmd */ #define WMITLV_TABLE_WMI_PEER_MCAST_GROUP_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_mcast_group_cmd_fixed_param, wmi_peer_mcast_group_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_mcast_group_cmd_fixed_param, wmi_peer_mcast_group_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_MCAST_GROUP_CMDID); /* Roam AP profile Cmd */ -#define WMITLV_TABLE_WMI_ROAM_AP_PROFILE(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_ap_profile_fixed_param, wmi_roam_ap_profile_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ap_profile, wmi_ap_profile, ap_profile, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_ROAM_AP_PROFILE(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_ap_profile_fixed_param, wmi_roam_ap_profile_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ap_profile, wmi_ap_profile, ap_profile, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_AP_PROFILE); /* Roam sync complete Cmd */ #define WMITLV_TABLE_WMI_ROAM_SYNCH_COMPLETE(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_synch_complete_fixed_param, wmi_roam_synch_complete_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_synch_complete_fixed_param, wmi_roam_synch_complete_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SYNCH_COMPLETE); #define WMITLV_TABLE_WMI_ROAM_SET_RIC_REQUEST_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ric_request_fixed_param, wmi_ric_request_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ric_tspec, ric_tspec_list, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ric_request_fixed_param, wmi_ric_request_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ric_tspec, ric_tspec_list, WMITLV_SIZE_VAR) + WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SET_RIC_REQUEST_CMDID); /* Scan scheduler priority Table Cmd */ -#define WMITLV_TABLE_WMI_SCAN_SCH_PRIO_TBL_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_scan_sch_priority_table_cmd_fixed_param, wmi_scan_sch_priority_table_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, mapping_table, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_SCAN_SCH_PRIO_TBL_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_scan_sch_priority_table_cmd_fixed_param, wmi_scan_sch_priority_table_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, mapping_table, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_SCAN_SCH_PRIO_TBL_CMDID); /* PDEV DFS enable Cmd */ #define WMITLV_TABLE_WMI_PDEV_DFS_ENABLE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_dfs_enable_cmd_fixed_param, wmi_pdev_dfs_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_dfs_enable_cmd_fixed_param, wmi_pdev_dfs_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_DFS_ENABLE_CMDID); /* PDEV DFS disable Cmd */ #define WMITLV_TABLE_WMI_PDEV_DFS_DISABLE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_dfs_disable_cmd_fixed_param, wmi_pdev_dfs_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_dfs_disable_cmd_fixed_param, wmi_pdev_dfs_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_DFS_DISABLE_CMDID); /* DFS phyerr parse/filter offload enable Cmd */ #define WMITLV_TABLE_WMI_DFS_PHYERR_FILTER_ENA_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dfs_phyerr_filter_ena_cmd_fixed_param, wmi_dfs_phyerr_filter_ena_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dfs_phyerr_filter_ena_cmd_fixed_param, wmi_dfs_phyerr_filter_ena_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_DFS_PHYERR_FILTER_ENA_CMDID); /* DFS phyerr parse/filter offload disable Cmd */ #define WMITLV_TABLE_WMI_DFS_PHYERR_FILTER_DIS_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dfs_phyerr_filter_dis_cmd_fixed_param, wmi_dfs_phyerr_filter_dis_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dfs_phyerr_filter_dis_cmd_fixed_param, wmi_dfs_phyerr_filter_dis_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_DFS_PHYERR_FILTER_DIS_CMDID); /* DFS phyerr processing offload enable cmd */ -#define WMITLV_TABLE_WMI_PDEV_DFS_PHYERR_OFFLOAD_ENABLE_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_dfs_phyerr_offload_enable_cmd_fixed_param, wmi_pdev_dfs_phyerr_offload_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PDEV_DFS_PHYERR_OFFLOAD_ENABLE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_dfs_phyerr_offload_enable_cmd_fixed_param, wmi_pdev_dfs_phyerr_offload_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_DFS_PHYERR_OFFLOAD_ENABLE_CMDID); /* DFS phyerr processing offload disble cmd */ -#define WMITLV_TABLE_WMI_PDEV_DFS_PHYERR_OFFLOAD_DISABLE_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_dfs_phyerr_offload_disable_cmd_fixed_param, wmi_pdev_dfs_phyerr_offload_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PDEV_DFS_PHYERR_OFFLOAD_DISABLE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_dfs_phyerr_offload_disable_cmd_fixed_param, wmi_pdev_dfs_phyerr_offload_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_DFS_PHYERR_OFFLOAD_DISABLE_CMDID); /* set ADFS channel config cmd */ -#define WMITLV_TABLE_WMI_VDEV_ADFS_CH_CFG_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_adfs_ch_cfg_cmd_fixed_param, wmi_vdev_adfs_ch_cfg_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_VDEV_ADFS_CH_CFG_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_adfs_ch_cfg_cmd_fixed_param, wmi_vdev_adfs_ch_cfg_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_ADFS_CH_CFG_CMDID); /* DFS abort ADFS ocac currently in progress */ -#define WMITLV_TABLE_WMI_VDEV_ADFS_OCAC_ABORT_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_adfs_ocac_abort_cmd_fixed_param, wmi_vdev_adfs_ocac_abort_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_VDEV_ADFS_OCAC_ABORT_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_adfs_ocac_abort_cmd_fixed_param, wmi_vdev_adfs_ocac_abort_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_ADFS_OCAC_ABORT_CMDID); /* WOW Add Wake Pattern Cmd */ #define WMITLV_TABLE_WMI_WOW_ADD_WAKE_PATTERN_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_ADD_PATTERN_CMD_fixed_param, WMI_WOW_ADD_PATTERN_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WOW_BITMAP_PATTERN_T, pattern_info_bitmap, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WOW_IPV4_SYNC_PATTERN_T, pattern_info_ipv4, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WOW_IPV6_SYNC_PATTERN_T, pattern_info_ipv6, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WOW_MAGIC_PATTERN_CMD, pattern_info_magic_pattern, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, pattern_info_timeout, WMITLV_SIZE_VAR) \ - WMITLV_FXAR(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ra_ratelimit_interval, WMITLV_SIZE_FIX, 1) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_ADD_PATTERN_CMD_fixed_param, WMI_WOW_ADD_PATTERN_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WOW_BITMAP_PATTERN_T, pattern_info_bitmap, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WOW_IPV4_SYNC_PATTERN_T, pattern_info_ipv4, WMITLV_SIZE_VAR)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WOW_IPV6_SYNC_PATTERN_T, pattern_info_ipv6, WMITLV_SIZE_VAR)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WOW_MAGIC_PATTERN_CMD, pattern_info_magic_pattern, WMITLV_SIZE_VAR)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, pattern_info_timeout, WMITLV_SIZE_VAR) \ + WMITLV_FXAR(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ra_ratelimit_interval, WMITLV_SIZE_FIX, 1) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_ADD_WAKE_PATTERN_CMDID); /* IOAC add keep alive cmd. */ #define WMITLV_TABLE_WMI_WOW_IOAC_ADD_KEEPALIVE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_IOAC_ADD_KEEPALIVE_CMD_fixed_param, WMI_WOW_IOAC_ADD_KEEPALIVE_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_WOW_IOAC_KEEPALIVE_T, keepalive_set, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_IOAC_ADD_KEEPALIVE_CMD_fixed_param, WMI_WOW_IOAC_ADD_KEEPALIVE_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_WOW_IOAC_KEEPALIVE_T, keepalive_set, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_IOAC_ADD_KEEPALIVE_CMDID); /* IOAC del keep alive cmd. */ #define WMITLV_TABLE_WMI_WOW_IOAC_DEL_KEEPALIVE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_IOAC_DEL_KEEPALIVE_CMD_fixed_param, WMI_WOW_IOAC_DEL_KEEPALIVE_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_IOAC_DEL_KEEPALIVE_CMD_fixed_param, WMI_WOW_IOAC_DEL_KEEPALIVE_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_IOAC_DEL_KEEPALIVE_CMDID); /* WOW IOAC Add Wake Pattern Cmd */ -#define WMITLV_TABLE_WMI_WOW_IOAC_ADD_WAKE_PATTERN_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_WMI_WOW_IOAC_ADD_PATTERN_CMD_fixed_param, WMI_WOW_IOAC_ADD_PATTERN_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, WOW_IOAC_PKT_PATTERN_T, pattern_info_pkt, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, WOW_IOAC_TMR_PATTERN_T, pattern_info_tmr, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, WOW_IOAC_SOCK_PATTERN_T, pattern_info_sock, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_WOW_IOAC_ADD_WAKE_PATTERN_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_IOAC_ADD_PATTERN_CMD_fixed_param, WMI_WOW_IOAC_ADD_PATTERN_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WOW_IOAC_PKT_PATTERN_T, pattern_info_pkt, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WOW_IOAC_TMR_PATTERN_T, pattern_info_tmr, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WOW_IOAC_SOCK_PATTERN_T, pattern_info_sock, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_IOAC_ADD_WAKE_PATTERN_CMDID); /* WOW IOAC Delete Wake Pattern Cmd */ -#define WMITLV_TABLE_WMI_WOW_IOAC_DEL_WAKE_PATTERN_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_IOAC_DEL_PATTERN_CMD_fixed_param, WMI_WOW_IOAC_DEL_PATTERN_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_WOW_IOAC_DEL_WAKE_PATTERN_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_WOW_IOAC_DEL_PATTERN_CMD_fixed_param, WMI_WOW_IOAC_DEL_PATTERN_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_IOAC_DEL_WAKE_PATTERN_CMDID); /* extwow enable Cmd */ #define WMITLV_TABLE_WMI_EXTWOW_ENABLE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extwow_enable_cmd_fixed_param, wmi_extwow_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extwow_enable_cmd_fixed_param, wmi_extwow_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_EXTWOW_ENABLE_CMDID); /* extwow set wakeup params cmd for app type1 */ #define WMITLV_TABLE_WMI_EXTWOW_SET_APP_TYPE1_PARAMS_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extwow_set_app_type1_params_cmd_fixed_param, wmi_extwow_set_app_type1_params_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extwow_set_app_type1_params_cmd_fixed_param, wmi_extwow_set_app_type1_params_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_EXTWOW_SET_APP_TYPE1_PARAMS_CMDID); /* extwow set wakeup params cmd for app type2 */ #define WMITLV_TABLE_WMI_EXTWOW_SET_APP_TYPE2_PARAMS_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extwow_set_app_type2_params_cmd_fixed_param, wmi_extwow_set_app_type2_params_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extwow_set_app_type2_params_cmd_fixed_param, wmi_extwow_set_app_type2_params_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_EXTWOW_SET_APP_TYPE2_PARAMS_CMDID); /* Stop scan Cmd */ -#define WMITLV_TABLE_WMI_STOP_SCAN_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_stop_scan_cmd_fixed_param, wmi_stop_scan_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_STOP_SCAN_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_stop_scan_cmd_fixed_param, wmi_stop_scan_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_STOP_SCAN_CMDID); #define WMITLV_TABLE_WMI_PDEV_SET_PARAM_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_param_cmd_fixed_param, wmi_pdev_set_param_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_param_cmd_fixed_param, wmi_pdev_set_param_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_PARAM_CMDID); /* PDev set quiet Cmd */ #define WMITLV_TABLE_WMI_PDEV_SET_QUIET_MODE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_quiet_cmd_fixed_param, wmi_pdev_set_quiet_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_quiet_cmd_fixed_param, wmi_pdev_set_quiet_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_QUIET_MODE_CMDID); /* VDev set quiet Cmd */ -#define WMITLV_TABLE_WMI_VDEV_SET_QUIET_MODE_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_set_quiet_cmd_fixed_param, wmi_vdev_set_quiet_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_VDEV_SET_QUIET_MODE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_set_quiet_cmd_fixed_param, wmi_vdev_set_quiet_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_QUIET_MODE_CMDID); /* Setting custom aggregation size using command */ -#define WMITLV_TABLE_WMI_VDEV_SET_CUSTOM_AGGR_SIZE_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_set_custom_aggr_size_cmd_fixed_param, wmi_vdev_set_custom_aggr_size_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_VDEV_SET_CUSTOM_AGGR_SIZE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_set_custom_aggr_size_cmd_fixed_param, wmi_vdev_set_custom_aggr_size_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_CUSTOM_AGGR_SIZE_CMDID); /* Vdev create Cmd */ -#define WMITLV_TABLE_WMI_VDEV_CREATE_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_create_cmd_fixed_param, wmi_vdev_create_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_txrx_streams, cfg_txrx_streams, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_VDEV_CREATE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_create_cmd_fixed_param, wmi_vdev_create_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_txrx_streams, cfg_txrx_streams, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_CREATE_CMDID); /* Vdev delete Cmd */ #define WMITLV_TABLE_WMI_VDEV_DELETE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_delete_cmd_fixed_param, wmi_vdev_delete_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_delete_cmd_fixed_param, wmi_vdev_delete_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_DELETE_CMDID); /* Vdev up Cmd */ -#define WMITLV_TABLE_WMI_VDEV_UP_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_up_cmd_fixed_param, wmi_vdev_up_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_VDEV_UP_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_up_cmd_fixed_param, wmi_vdev_up_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_UP_CMDID); /* Vdev stop cmd */ -#define WMITLV_TABLE_WMI_VDEV_STOP_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_stop_cmd_fixed_param, wmi_vdev_stop_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_VDEV_STOP_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_stop_cmd_fixed_param, wmi_vdev_stop_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_STOP_CMDID); /* Vdev down Cmd */ -#define WMITLV_TABLE_WMI_VDEV_DOWN_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_down_cmd_fixed_param, wmi_vdev_down_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_VDEV_DOWN_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_down_cmd_fixed_param, wmi_vdev_down_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_DOWN_CMDID); /* Vdev set param Cmd */ #define WMITLV_TABLE_WMI_VDEV_SET_PARAM_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_set_param_cmd_fixed_param, wmi_vdev_set_param_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_set_param_cmd_fixed_param, wmi_vdev_set_param_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_PARAM_CMDID); /* Pdev suspend Cmd */ -#define WMITLV_TABLE_WMI_PDEV_SUSPEND_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_suspend_cmd_fixed_param, wmi_pdev_suspend_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PDEV_SUSPEND_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_suspend_cmd_fixed_param, wmi_pdev_suspend_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SUSPEND_CMDID); /* Pdev Resume Cmd */ -#define WMITLV_TABLE_WMI_PDEV_RESUME_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_resume_cmd_fixed_param, wmi_pdev_resume_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PDEV_RESUME_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_resume_cmd_fixed_param, wmi_pdev_resume_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_RESUME_CMDID); #define WMITLV_TABLE_WMI_SCAN_UPDATE_REQUEST_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_scan_update_request_cmd_fixed_param, wmi_scan_update_request_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_scan_update_request_cmd_fixed_param, wmi_scan_update_request_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_SCAN_UPDATE_REQUEST_CMDID); -#define WMITLV_TABLE_WMI_SCAN_PROB_REQ_OUI_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_scan_prob_req_oui_cmd_fixed_param, wmi_scan_prob_req_oui_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_vendor_oui, vendor_oui, WMITLV_SIZE_VAR) - +#define WMITLV_TABLE_WMI_SCAN_PROB_REQ_OUI_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_scan_prob_req_oui_cmd_fixed_param, wmi_scan_prob_req_oui_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vendor_oui, vendor_oui, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_SCAN_PROB_REQ_OUI_CMDID); #define WMITLV_TABLE_WMI_CHATTER_ADD_COALESCING_FILTER_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len,WMITLV_TAG_STRUC_wmi_chatter_coalescing_add_filter_cmd_fixed_param, wmi_chatter_coalescing_add_filter_cmd_fixed_param, fixed_param,WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, chatter_pkt_coalescing_filter, coalescing_filter, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len,WMITLV_TAG_STRUC_wmi_chatter_coalescing_add_filter_cmd_fixed_param, wmi_chatter_coalescing_add_filter_cmd_fixed_param, fixed_param,WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, chatter_pkt_coalescing_filter, coalescing_filter, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_CHATTER_ADD_COALESCING_FILTER_CMDID); #define WMITLV_TABLE_WMI_CHATTER_DELETE_COALESCING_FILTER_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_chatter_coalescing_delete_filter_cmd_fixed_param,wmi_chatter_coalescing_delete_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_chatter_coalescing_delete_filter_cmd_fixed_param,wmi_chatter_coalescing_delete_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_CREATE_PARAM_STRUC(WMI_CHATTER_DELETE_COALESCING_FILTER_CMDID); #define WMITLV_TABLE_WMI_CHATTER_COALESCING_QUERY_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_chatter_coalescing_query_cmd_fixed_param, wmi_chatter_coalescing_query_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_chatter_coalescing_query_cmd_fixed_param, wmi_chatter_coalescing_query_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_CREATE_PARAM_STRUC(WMI_CHATTER_COALESCING_QUERY_CMDID); #define WMITLV_TABLE_WMI_TXBF_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len,WMITLV_TAG_STRUC_wmi_txbf_cmd_fixed_param, wmi_txbf_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len,WMITLV_TAG_STRUC_wmi_txbf_cmd_fixed_param, wmi_txbf_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_CREATE_PARAM_STRUC(WMI_TXBF_CMDID); #define WMITLV_TABLE_WMI_DBGLOG_CFG_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_debug_log_config_cmd_fixed_param, wmi_debug_log_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_FXAR(id,op,buf,len,WMITLV_TAG_ARRAY_UINT32, A_UINT32, module_id_bitmap, WMITLV_SIZE_FIX, MAX_MODULE_ID_BITMAP_WORDS) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_debug_log_config_cmd_fixed_param, wmi_debug_log_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_FXAR(id,op,buf,len,WMITLV_TAG_ARRAY_UINT32, A_UINT32, module_id_bitmap, WMITLV_SIZE_FIX, MAX_MODULE_ID_BITMAP_WORDS) \ WMITLV_CREATE_PARAM_STRUC(WMI_DBGLOG_CFG_CMDID); -#define WMITLV_TABLE_WMI_VDEV_WMM_ADDTS_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_wmm_addts_cmd_fixed_param, wmi_vdev_wmm_addts_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_VDEV_WMM_ADDTS_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_wmm_addts_cmd_fixed_param, wmi_vdev_wmm_addts_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_WMM_ADDTS_CMDID); -#define WMITLV_TABLE_WMI_VDEV_WMM_DELTS_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_wmm_delts_cmd_fixed_param, wmi_vdev_wmm_delts_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_VDEV_WMM_DELTS_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_wmm_delts_cmd_fixed_param, wmi_vdev_wmm_delts_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_WMM_DELTS_CMDID); -#define WMITLV_TABLE_WMI_VDEV_SET_WMM_PARAMS_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_set_wmm_params_cmd_fixed_param, wmi_vdev_set_wmm_params_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_VDEV_SET_WMM_PARAMS_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_set_wmm_params_cmd_fixed_param, wmi_vdev_set_wmm_params_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_WMM_PARAMS_CMDID); -#define WMITLV_TABLE_WMI_VDEV_SET_GTX_PARAMS_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_set_gtx_params_cmd_fixed_param, wmi_vdev_set_gtx_params_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_VDEV_SET_GTX_PARAMS_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_set_gtx_params_cmd_fixed_param, wmi_vdev_set_gtx_params_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_GTX_PARAMS_CMDID); /* TDLS Enable/Disable Cmd */ #define WMITLV_TABLE_WMI_TDLS_SET_STATE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tdls_set_state_cmd_fixed_param, \ - wmi_tdls_set_state_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tdls_set_state_cmd_fixed_param, \ + wmi_tdls_set_state_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_TDLS_SET_STATE_CMDID); /* TDLS Peer Update Cmd */ #define WMITLV_TABLE_WMI_TDLS_PEER_UPDATE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tdls_peer_update_cmd_fixed_param, wmi_tdls_peer_update_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tdls_peer_capabilities, wmi_tdls_peer_capabilities, peer_caps, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_channel, peer_chan_list, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tdls_peer_update_cmd_fixed_param, wmi_tdls_peer_update_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tdls_peer_capabilities, wmi_tdls_peer_capabilities, peer_caps, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_channel, peer_chan_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_TDLS_PEER_UPDATE_CMDID); /* Enable/Disable TDLS Offchannel Cmd */ #define WMITLV_TABLE_WMI_TDLS_SET_OFFCHAN_MODE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tdls_set_offchan_mode_cmd_fixed_param, \ - wmi_tdls_set_offchan_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tdls_set_offchan_mode_cmd_fixed_param, \ + wmi_tdls_set_offchan_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_TDLS_SET_OFFCHAN_MODE_CMDID); + /* Resmgr Enable/Disable Adaptive OCS CMD */ #define WMITLV_TABLE_WMI_RESMGR_ADAPTIVE_OCS_ENABLE_DISABLE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_resmgr_adaptive_ocs_enable_disable_cmd_fixed_param, \ - wmi_resmgr_adaptive_ocs_enable_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_resmgr_adaptive_ocs_enable_disable_cmd_fixed_param, \ + wmi_resmgr_adaptive_ocs_enable_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC - (WMI_RESMGR_ADAPTIVE_OCS_ENABLE_DISABLE_CMDID); +WMITLV_CREATE_PARAM_STRUC(WMI_RESMGR_ADAPTIVE_OCS_ENABLE_DISABLE_CMDID); /* Resmgr Set Channel Time Quota CMD */ #define WMITLV_TABLE_WMI_RESMGR_SET_CHAN_TIME_QUOTA_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_resmgr_set_chan_time_quota_cmd_fixed_param, \ - wmi_resmgr_set_chan_time_quota_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_resmgr_set_chan_time_quota_cmd_fixed_param, \ + wmi_resmgr_set_chan_time_quota_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_RESMGR_SET_CHAN_TIME_QUOTA_CMDID); /* Resmgr Set Channel Latency CMD */ #define WMITLV_TABLE_WMI_RESMGR_SET_CHAN_LATENCY_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_resmgr_set_chan_latency_cmd_fixed_param, \ - wmi_resmgr_set_chan_latency_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_resmgr_set_chan_latency_cmd_fixed_param, \ + wmi_resmgr_set_chan_latency_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_RESMGR_SET_CHAN_LATENCY_CMDID); /* STA SMPS Force Mode CMD */ #define WMITLV_TABLE_WMI_STA_SMPS_FORCE_MODE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sta_smps_force_mode_cmd_fixed_param, \ - wmi_sta_smps_force_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sta_smps_force_mode_cmd_fixed_param, \ + wmi_sta_smps_force_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_STA_SMPS_FORCE_MODE_CMDID); /* wlan hb enable/disable CMD */ #define WMITLV_TABLE_WMI_HB_SET_ENABLE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_hb_set_enable_cmd_fixed_param, \ - wmi_hb_set_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_hb_set_enable_cmd_fixed_param, \ + wmi_hb_set_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_HB_SET_ENABLE_CMDID); /* wlan hb set tcp params CMD */ -#define WMITLV_TABLE_WMI_HB_SET_TCP_PARAMS_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_hb_set_tcp_params_cmd_fixed_param, \ - wmi_hb_set_tcp_params_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_HB_SET_TCP_PARAMS_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_hb_set_tcp_params_cmd_fixed_param, \ + wmi_hb_set_tcp_params_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_HB_SET_TCP_PARAMS_CMDID); /* wlan hb set tcp pkt filter CMD */ #define WMITLV_TABLE_WMI_HB_SET_TCP_PKT_FILTER_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_hb_set_tcp_pkt_filter_cmd_fixed_param, \ - wmi_hb_set_tcp_pkt_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_hb_set_tcp_pkt_filter_cmd_fixed_param, \ + wmi_hb_set_tcp_pkt_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_HB_SET_TCP_PKT_FILTER_CMDID); /* wlan set udp params CMD */ -#define WMITLV_TABLE_WMI_HB_SET_UDP_PARAMS_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_hb_set_udp_params_cmd_fixed_param, \ - wmi_hb_set_udp_params_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_HB_SET_UDP_PARAMS_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_hb_set_udp_params_cmd_fixed_param, \ + wmi_hb_set_udp_params_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_HB_SET_UDP_PARAMS_CMDID); /* wlan hb set udp pkt filter CMD */ #define WMITLV_TABLE_WMI_HB_SET_UDP_PKT_FILTER_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_hb_set_udp_pkt_filter_cmd_fixed_param, \ - wmi_hb_set_udp_pkt_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_hb_set_udp_pkt_filter_cmd_fixed_param, \ + wmi_hb_set_udp_pkt_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_HB_SET_UDP_PKT_FILTER_CMDID); /* STA SMPS Param CMD */ #define WMITLV_TABLE_WMI_STA_SMPS_PARAM_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sta_smps_param_cmd_fixed_param, \ - wmi_sta_smps_param_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sta_smps_param_cmd_fixed_param, \ + wmi_sta_smps_param_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_STA_SMPS_PARAM_CMDID); /* MCC Adaptive Scheduler Traffic Stats */ #define WMITLV_TABLE_WMI_MCC_SCHED_TRAFFIC_STATS_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mcc_sched_traffic_stats_cmd_fixed_param, wmi_mcc_sched_traffic_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_mcc_sched_sta_traffic_stats, mcc_sched_sta_traffic_stats_list, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mcc_sched_traffic_stats_cmd_fixed_param, wmi_mcc_sched_traffic_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_mcc_sched_sta_traffic_stats, mcc_sched_sta_traffic_stats_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_MCC_SCHED_TRAFFIC_STATS_CMDID); -#define WMITLV_TABLE_WMI_BATCH_SCAN_ENABLE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_batch_scan_enable_cmd_fixed_param, wmi_batch_scan_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_BATCH_SCAN_ENABLE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_batch_scan_enable_cmd_fixed_param, wmi_batch_scan_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_CREATE_PARAM_STRUC(WMI_BATCH_SCAN_ENABLE_CMDID); #define WMITLV_TABLE_WMI_PEER_INFO_REQ_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_info_req_cmd_fixed_param, \ - wmi_peer_info_req_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_info_req_cmd_fixed_param, \ + wmi_peer_info_req_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_INFO_REQ_CMDID); -#define WMITLV_TABLE_WMI_PEER_ANTDIV_INFO_REQ_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_antdiv_info_req_cmd_fixed_param, \ - wmi_peer_antdiv_info_req_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PEER_ANTDIV_INFO_REQ_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_antdiv_info_req_cmd_fixed_param, \ + wmi_peer_antdiv_info_req_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ANTDIV_INFO_REQ_CMDID); #define WMITLV_TABLE_WMI_RMC_SET_MODE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_rmc_set_mode_cmd_fixed_param, \ - wmi_rmc_set_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_rmc_set_mode_cmd_fixed_param, \ + wmi_rmc_set_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_RMC_SET_MODE_CMDID); #define WMITLV_TABLE_WMI_RMC_SET_ACTION_PERIOD_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_rmc_set_action_period_cmd_fixed_param, \ - wmi_rmc_set_action_period_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_rmc_set_action_period_cmd_fixed_param, \ + wmi_rmc_set_action_period_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_RMC_SET_ACTION_PERIOD_CMDID); #define WMITLV_TABLE_WMI_RMC_CONFIG_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_rmc_config_cmd_fixed_param, \ - wmi_rmc_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_rmc_config_cmd_fixed_param, \ + wmi_rmc_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_RMC_CONFIG_CMDID); #define WMITLV_TABLE_WMI_MHF_OFFLOAD_SET_MODE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mhf_offload_set_mode_cmd_fixed_param, \ - wmi_mhf_offload_set_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mhf_offload_set_mode_cmd_fixed_param, \ + wmi_mhf_offload_set_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_MHF_OFFLOAD_SET_MODE_CMDID); #define WMITLV_TABLE_WMI_MHF_OFFLOAD_PLUMB_ROUTING_TBL_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mhf_offload_plumb_routing_table_cmd_fixed_param, \ - wmi_mhf_offload_plumb_routing_table_cmd, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mhf_offload_routing_table_entry, \ - routing_tbl_entries, WMITLV_SIZE_VAR) -WMITLV_CREATE_PARAM_STRUC(WMI_MHF_OFFLOAD_PLUMB_ROUTING_TBL_CMDID) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mhf_offload_plumb_routing_table_cmd_fixed_param, \ + wmi_mhf_offload_plumb_routing_table_cmd, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mhf_offload_routing_table_entry, \ + routing_tbl_entries, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_MHF_OFFLOAD_PLUMB_ROUTING_TBL_CMDID); + #define WMITLV_TABLE_WMI_BATCH_SCAN_DISABLE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_batch_scan_disable_cmd_fixed_param, wmi_batch_scan_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_batch_scan_disable_cmd_fixed_param, wmi_batch_scan_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_CREATE_PARAM_STRUC(WMI_BATCH_SCAN_DISABLE_CMDID); -#define WMITLV_TABLE_WMI_BATCH_SCAN_TRIGGER_RESULT_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_batch_scan_trigger_result_cmd_fixed_param, wmi_batch_scan_trigger_result_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_BATCH_SCAN_TRIGGER_RESULT_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_batch_scan_trigger_result_cmd_fixed_param, wmi_batch_scan_trigger_result_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_BATCH_SCAN_TRIGGER_RESULT_CMDID); /* LPI mgmt snooping config Cmd */ #define WMITLV_TABLE_WMI_LPI_MGMT_SNOOPING_CONFIG_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_lpi_mgmt_snooping_config_cmd_fixed_param, wmi_lpi_mgmt_snooping_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_lpi_mgmt_snooping_config_cmd_fixed_param, wmi_lpi_mgmt_snooping_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_LPI_MGMT_SNOOPING_CONFIG_CMDID); /* LPI start scan Cmd */ #define WMITLV_TABLE_WMI_LPI_START_SCAN_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_lpi_start_scan_cmd_fixed_param, wmi_lpi_start_scan_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, channel_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_ssid, ssid_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, bssid_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ie_data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_lpi_start_scan_cmd_fixed_param, wmi_lpi_start_scan_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, channel_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_ssid, ssid_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, bssid_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ie_data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_LPI_START_SCAN_CMDID); /* LPI stop scan Cmd */ #define WMITLV_TABLE_WMI_LPI_STOP_SCAN_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_lpi_stop_scan_cmd_fixed_param, wmi_lpi_stop_scan_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_lpi_stop_scan_cmd_fixed_param, wmi_lpi_stop_scan_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_LPI_STOP_SCAN_CMDID); #define WMITLV_TABLE_WMI_LPI_RESULT_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_lpi_result_event_fixed_param, wmi_lpi_result_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_lpi_result_event_fixed_param, wmi_lpi_result_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_LPI_RESULT_EVENTID); /* LPI Status Event */ -#define WMITLV_TABLE_WMI_LPI_STATUS_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_lpi_status_event_fixed_param, wmi_lpi_status_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_LPI_STATUS_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_lpi_status_event_fixed_param, wmi_lpi_status_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_LPI_STATUS_EVENTID); /* LPI Handoff Event */ -#define WMITLV_TABLE_WMI_LPI_HANDOFF_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_lpi_handoff_event_fixed_param, wmi_lpi_handoff_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_LPI_HANDOFF_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_lpi_handoff_event_fixed_param, wmi_lpi_handoff_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_LPI_HANDOFF_EVENTID); /* Thermal Manager Params*/ #define WMITLV_TABLE_WMI_THERMAL_MGMT_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_thermal_mgmt_cmd_fixed_param, wmi_thermal_mgmt_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_thermal_mgmt_cmd_fixed_param, wmi_thermal_mgmt_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_THERMAL_MGMT_CMDID); + #define WMITLV_TABLE_WMI_ADD_PROACTIVE_ARP_RSP_PATTERN_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_ADD_PROACTIVE_ARP_RSP_PATTERN_CMD_fixed_param, WMI_ADD_PROACTIVE_ARP_RSP_PATTERN_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, pattern, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_ADD_PROACTIVE_ARP_RSP_PATTERN_CMD_fixed_param, WMI_ADD_PROACTIVE_ARP_RSP_PATTERN_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, pattern, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_ADD_PROACTIVE_ARP_RSP_PATTERN_CMDID); #define WMITLV_TABLE_WMI_DEL_PROACTIVE_ARP_RSP_PATTERN_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_DEL_PROACTIVE_ARP_RSP_PATTERN_CMD_fixed_param, WMI_DEL_PROACTIVE_ARP_RSP_PATTERN_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_DEL_PROACTIVE_ARP_RSP_PATTERN_CMD_fixed_param, WMI_DEL_PROACTIVE_ARP_RSP_PATTERN_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_DEL_PROACTIVE_ARP_RSP_PATTERN_CMDID); /* NaN Request */ #define WMITLV_TABLE_WMI_NAN_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_cmd_param, wmi_nan_cmd_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_cmd_param, wmi_nan_cmd_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_NAN_CMDID); /* NAN Data Get Capabilities Cmd */ -#define WMITLV_TABLE_WMI_NDI_GET_CAP_REQ_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_ndi_get_cap_req_fixed_param, wmi_ndi_get_cap_req_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_NDI_GET_CAP_REQ_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndi_get_cap_req_fixed_param, wmi_ndi_get_cap_req_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_NDI_GET_CAP_REQ_CMDID); -/* - * NAN Data Initiator Request Cmd +/** NAN Data Initiator Request Cmd * * TLV (tag length value ) parameters follow the ndp_initiator_req * structure. The TLV's are: @@ -2539,1318 +2577,1338 @@ WMITLV_CREATE_PARAM_STRUC(WMI_NDI_GET_CAP_REQ_CMDID); * A_UINT8 ndp_cfg[]; * A_UINT8 ndp_app_info[]; */ -#define WMITLV_TABLE_WMI_NDP_INITIATOR_REQ_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_ndp_initiator_req_fixed_param, wmi_ndp_initiator_req_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_channel, wmi_channel, channel, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_cfg, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_app_info, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_pmk, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_NDP_INITIATOR_REQ_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndp_initiator_req_fixed_param, wmi_ndp_initiator_req_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_channel, wmi_channel, channel, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_cfg, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_app_info, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_pmk, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_NDP_INITIATOR_REQ_CMDID); -/* - * NAN Data Responder Request Cmd +/** NAN Data Responder Request Cmd * TLV (tag length value ) parameters follow the ndp_responder_req * structure. The TLV's are: * A_UINT8 ndp_cfg[]; * A_UINT8 ndp_app_info[]; */ -#define WMITLV_TABLE_WMI_NDP_RESPONDER_REQ_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_ndp_responder_rsp_event_fixed_param, wmi_ndp_responder_req_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_cfg, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_app_info, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_pmk, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_NDP_RESPONDER_REQ_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndp_responder_req_fixed_param, wmi_ndp_responder_req_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_cfg, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_app_info, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_pmk, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_NDP_RESPONDER_REQ_CMDID); -/* - * NAN Data End Request Cmd +/** NAN Data End Request Cmd * * TLV (tag length value ) parameters follow the ndp_end_req * structure. The TLV's are: * wmi_ndp_end_req wmi_ndp_end_req_list[]; */ -#define WMITLV_TABLE_WMI_NDP_END_REQ_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_ndp_end_req_fixed_param, wmi_ndp_end_req_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_ndp_end_req_PROTOTYPE, ndp_end_req_list, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_NDP_END_REQ_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndp_end_req_fixed_param, wmi_ndp_end_req_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ndp_end_req_PROTOTYPE, ndp_end_req_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_NDP_END_REQ_CMDID); /* RCPI Info Request Cmd */ #define WMITLV_TABLE_WMI_REQUEST_RCPI_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_request_rcpi_cmd_fixed_param, wmi_request_rcpi_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_request_rcpi_cmd_fixed_param, wmi_request_rcpi_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_RCPI_CMDID); /* Modem power state cmd */ -#define WMITLV_TABLE_WMI_MODEM_POWER_STATE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_modem_power_state_cmd_param, wmi_modem_power_state_cmd_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_MODEM_POWER_STATE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_modem_power_state_cmd_param, wmi_modem_power_state_cmd_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_MODEM_POWER_STATE_CMDID); /* SAR limit update cmd */ -#define WMITLV_TABLE_WMI_SAR_LIMITS_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_sar_limits_cmd_fixed_param, wmi_sar_limits_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_sar_limit_cmd_row, sar_limits, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_SAR_LIMITS_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sar_limits_cmd_fixed_param, wmi_sar_limits_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_sar_limit_cmd_row, sar_limits, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_SAR_LIMITS_CMDID); /* get estimated link speed cmd */ #define WMITLV_TABLE_WMI_PEER_GET_ESTIMATED_LINKSPEED_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_get_estimated_linkspeed_cmd_fixed_param, wmi_peer_get_estimated_linkspeed_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_get_estimated_linkspeed_cmd_fixed_param, wmi_peer_get_estimated_linkspeed_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_GET_ESTIMATED_LINKSPEED_CMDID); /* ext stats Request */ -#define WMITLV_TABLE_WMI_REQUEST_STATS_EXT_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_req_stats_ext_cmd_fixed_param, wmi_req_stats_ext_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_REQUEST_STATS_EXT_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_req_stats_ext_cmd_fixed_param, wmi_req_stats_ext_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_STATS_EXT_CMDID); /* 2.4Ghz HT40 OBSS scan enable */ #define WMITLV_TABLE_WMI_OBSS_SCAN_ENABLE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_obss_scan_enable_cmd_fixed_param, wmi_obss_scan_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, channels, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ie_field, WMITLV_SIZE_VAR) + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_obss_scan_enable_cmd_fixed_param, wmi_obss_scan_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, channels, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ie_field, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_OBSS_SCAN_ENABLE_CMDID); /* 2.4Ghz HT40 OBSS scan disable */ -#define WMITLV_TABLE_WMI_OBSS_SCAN_DISABLE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_obss_scan_disable_cmd_fixed_param, wmi_obss_scan_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_OBSS_SCAN_DISABLE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_obss_scan_disable_cmd_fixed_param, wmi_obss_scan_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_OBSS_SCAN_DISABLE_CMDID); /* Pdev Set LED Config Cmd */ #define WMITLV_TABLE_WMI_PDEV_SET_LED_CONFIG_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_led_config_cmd_fixed_param, wmi_pdev_set_led_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_led_config_cmd_fixed_param, wmi_pdev_set_led_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_LED_CONFIG_CMDID); /* host auto shut down config cmd */ #define WMITLV_TABLE_WMI_HOST_AUTO_SHUTDOWN_CFG_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_host_auto_shutdown_cfg_cmd_fixed_param, wmi_host_auto_shutdown_cfg_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_host_auto_shutdown_cfg_cmd_fixed_param, wmi_host_auto_shutdown_cfg_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_HOST_AUTO_SHUTDOWN_CFG_CMDID); /* tpc chainmask config cmd */ #define WMITLV_TABLE_WMI_TPC_CHAINMASK_CONFIG_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tpc_chainmask_config_cmd_fixed_param, wmi_tpc_chainmask_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_tpc_chainmask_config, config_list, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tpc_chainmask_config_cmd_fixed_param, wmi_tpc_chainmask_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_tpc_chainmask_config, config_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_TPC_CHAINMASK_CONFIG_CMDID); + /* Ch avoidance update cmd */ -#define WMITLV_TABLE_WMI_CHAN_AVOID_UPDATE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_chan_avoid_update_cmd_param, wmi_chan_avoid_update_cmd_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_CHAN_AVOID_UPDATE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_chan_avoid_update_cmd_param, wmi_chan_avoid_update_cmd_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_CHAN_AVOID_UPDATE_CMDID); /* Ch avoidance report allow/disallow cmd*/ -#define WMITLV_TABLE_WMI_CHAN_AVOID_RPT_ALLOW_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_WMI_CHAN_AVOID_RPT_ALLOW_CMD_fixed_param, WMI_CHAN_AVOID_RPT_ALLOW_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_CHAN_AVOID_RPT_ALLOW_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_CHAN_AVOID_RPT_ALLOW_CMD_fixed_param, WMI_CHAN_AVOID_RPT_ALLOW_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_CHAN_AVOID_RPT_ALLOW_CMDID); - /* D0-WOW Enable Disable Cmd */ -#define WMITLV_TABLE_WMI_D0_WOW_ENABLE_DISABLE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_d0_wow_enable_disable_cmd_fixed_param, wmi_d0_wow_enable_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_D0_WOW_ENABLE_DISABLE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_d0_wow_enable_disable_cmd_fixed_param, wmi_d0_wow_enable_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_D0_WOW_ENABLE_DISABLE_CMDID); /* Pdev get chip temperature Cmd */ #define WMITLV_TABLE_WMI_PDEV_GET_TEMPERATURE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_get_temperature_cmd_fixed_param, wmi_pdev_get_temperature_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_get_temperature_cmd_fixed_param, wmi_pdev_get_temperature_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GET_TEMPERATURE_CMDID); /* Pdev get ANT DIV feature status Cmd */ -#define WMITLV_TABLE_WMI_PDEV_GET_ANTDIV_STATUS_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_get_antdiv_status_cmd_fixed_param, wmi_pdev_get_antdiv_status_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PDEV_GET_ANTDIV_STATUS_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_get_antdiv_status_cmd_fixed_param, wmi_pdev_get_antdiv_status_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GET_ANTDIV_STATUS_CMDID); /* DISA feature : vdev encrypt decrypt request */ -#define WMITLV_TABLE_WMI_VDEV_ENCRYPT_DECRYPT_DATA_REQ_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_encrypt_decrypt_data_req_cmd_fixed_param, wmi_vdev_encrypt_decrypt_data_req_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_VDEV_ENCRYPT_DECRYPT_DATA_REQ_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_encrypt_decrypt_data_req_cmd_fixed_param, wmi_vdev_encrypt_decrypt_data_req_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_ENCRYPT_DECRYPT_DATA_REQ_CMDID); /* Set antenna diversity Cmd */ #define WMITLV_TABLE_WMI_SET_ANTENNA_DIVERSITY_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_set_antenna_diversity_cmd_fixed_param, wmi_pdev_set_antenna_diversity_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_set_antenna_diversity_cmd_fixed_param, wmi_pdev_set_antenna_diversity_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_SET_ANTENNA_DIVERSITY_CMDID); -#define WMITLV_TABLE_WMI_LRO_CONFIG_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_lro_info_cmd_fixed_param, wmi_lro_info_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_LRO_CONFIG_CMDID); - -#define WMITLV_TABLE_WMI_TRANSFER_DATA_TO_FLASH_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_transfer_data_to_flash_cmd_fixed_param, wmi_transfer_data_to_flash_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) -WMITLV_CREATE_PARAM_STRUC(WMI_TRANSFER_DATA_TO_FLASH_CMDID); - -#define WMITLV_TABLE_WMI_READ_DATA_FROM_FLASH_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_read_data_from_flash_cmd_fixed_param, wmi_read_data_from_flash_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_READ_DATA_FROM_FLASH_CMDID); - -#define WMITLV_TABLE_WMI_CONFIG_ENHANCED_MCAST_FILTER_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_config_enhanced_mcast_filter_fixed_param, wmi_config_enhanced_mcast_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_CONFIG_ENHANCED_MCAST_FILTER_CMDID); - -#define WMITLV_TABLE_WMI_VDEV_WISA_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_wisa_cmd_fixed_param, wmi_vdev_wisa_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_WISA_CMDID); - -/* MAWC sensor report indication cmd */ -#define WMITLV_TABLE_WMI_MAWC_SENSOR_REPORT_IND_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_mawc_sensor_report_ind_cmd_fixed_param, wmi_mawc_sensor_report_ind_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_MAWC_SENSOR_REPORT_IND_CMDID); - -/* Roam configure MAWC cmd */ -#define WMITLV_TABLE_WMI_ROAM_CONFIGURE_MAWC_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_roam_configure_mawc_cmd_fixed_param, wmi_roam_configure_mawc_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_CONFIGURE_MAWC_CMDID); - -/* NLO configure MAWC cmd */ -#define WMITLV_TABLE_WMI_NLO_CONFIGURE_MAWC_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_nlo_configure_mawc_cmd_fixed_param, wmi_nlo_configure_mawc_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_NLO_CONFIGURE_MAWC_CMDID); - -/* Extscan configure MAWC cmd */ -#define WMITLV_TABLE_WMI_EXTSCAN_CONFIGURE_MAWC_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_extscan_configure_mawc_cmd_fixed_param, wmi_extscan_configure_mawc_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_EXTSCAN_CONFIGURE_MAWC_CMDID); - -/* COEX config cmd */ -#define WMITLV_TABLE_WMI_COEX_CONFIG_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_WMI_COEX_CONFIG_CMD_fixed_param, WMI_COEX_CONFIG_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_COEX_CONFIG_CMDID); - -/* Coex get antenna isolation cmd */ -#define WMITLV_TABLE_WMI_COEX_GET_ANTENNA_ISOLATION_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_coex_get_antenna_isolation_cmd_fixed_param, wmi_coex_get_antenna_isolation_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_COEX_GET_ANTENNA_ISOLATION_CMDID); - -/* bpf offload capability get cmd */ -#define WMITLV_TABLE_WMI_BPF_GET_CAPABILITY_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_bpf_get_capability_cmd_fixed_param, wmi_bpf_get_capability_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_BPF_GET_CAPABILITY_CMDID); - -/* bpf offload get vdev status cmd */ -#define WMITLV_TABLE_WMI_BPF_GET_VDEV_STATS_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_bpf_get_vdev_stats_cmd_fixed_param, wmi_bpf_get_vdev_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_BPF_GET_VDEV_STATS_CMDID); - -/* bpf offload set vdev instructions cmd */ -#define WMITLV_TABLE_WMI_BPF_SET_VDEV_INSTRUCTIONS_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_bpf_set_vdev_instructions_cmd_fixed_param, wmi_bpf_set_vdev_instructions_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, buf_inst, WMITLV_SIZE_VAR) -WMITLV_CREATE_PARAM_STRUC(WMI_BPF_SET_VDEV_INSTRUCTIONS_CMDID); - -/* bpf offload delete vdev instructions cmd */ -#define WMITLV_TABLE_WMI_BPF_DEL_VDEV_INSTRUCTIONS_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_bpf_del_vdev_instructions_cmd_fixed_param, wmi_bpf_del_vdev_instructions_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_BPF_DEL_VDEV_INSTRUCTIONS_CMDID); - -/* Enable/Disable Smart Antenna */ -#define WMITLV_TABLE_WMI_PDEV_SMART_ANT_ENABLE_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_smart_ant_enable_cmd_fixed_param, wmi_pdev_smart_ant_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ -WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_smart_ant_gpio_handle, gpio_handle, WMITLV_SIZE_VAR) -WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SMART_ANT_ENABLE_CMDID); - -/* Set Smart Antenna RX antenna */ -#define WMITLV_TABLE_WMI_PDEV_SMART_ANT_SET_RX_ANTENNA_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_smart_ant_set_rx_antenna_cmd_fixed_param, wmi_pdev_smart_ant_set_rx_antenna_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SMART_ANT_SET_RX_ANTENNA_CMDID); - -/* Override the antenna switch table */ -#define WMITLV_TABLE_WMI_PDEV_SET_ANTENNA_SWITCH_TABLE_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_set_ant_switch_tbl_cmd_fixed_param, wmi_pdev_set_ant_switch_tbl_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ -WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_set_ant_ctrl_chain, ant_ctrl_chain, WMITLV_SIZE_VAR) -WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_ANTENNA_SWITCH_TABLE_CMDID); - -/* Override the CTL table */ -#define WMITLV_TABLE_WMI_PDEV_SET_CTL_TABLE_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_set_ctl_table_cmd_fixed_param, wmi_pdev_set_ctl_table_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ -WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ctl_info, WMITLV_SIZE_VAR) -WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_CTL_TABLE_CMDID); - -/* Override the array gain table */ -#define WMITLV_TABLE_WMI_PDEV_SET_MIMOGAIN_TABLE_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_set_mimogain_table_cmd_fixed_param, wmi_pdev_set_mimogain_table_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ -WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, arraygain_tbl, WMITLV_SIZE_VAR) -WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_MIMOGAIN_TABLE_CMDID); - -/* FIPS cmd */ -#define WMITLV_TABLE_WMI_PDEV_FIPS_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_fips_cmd_fixed_param, wmi_pdev_fips_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ -WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) -WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_FIPS_CMDID); - -/* get CCK ANI level */ -#define WMITLV_TABLE_WMI_PDEV_GET_ANI_CCK_CONFIG_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_get_ani_cck_config_cmd_fixed_param, wmi_pdev_get_ani_cck_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GET_ANI_CCK_CONFIG_CMDID); - -/* get OFDM ANI level */ -#define WMITLV_TABLE_WMI_PDEV_GET_ANI_OFDM_CONFIG_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_get_ani_ofdm_config_cmd_fixed_param, wmi_pdev_get_ani_ofdm_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GET_ANI_OFDM_CONFIG_CMDID); - -/* TxPPDU TPC cmd */ -#define WMITLV_TABLE_WMI_PDEV_GET_TPC_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_get_tpc_cmd_fixed_param, wmi_pdev_get_tpc_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GET_TPC_CMDID); - -#define WMITLV_TABLE_WMI_VDEV_RATEMASK_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_config_ratemask_fixed_param, wmi_vdev_config_ratemask_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_RATEMASK_CMDID); - -/* ATF VDEV REQUEST commands */ -#define WMITLV_TABLE_WMI_VDEV_ATF_REQUEST_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_atf_request_fixed_param, wmi_vdev_atf_request_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_ATF_REQUEST_CMDID); - -/* Command to send the DSCP-to-TID map to the target for VAP */ -#define WMITLV_TABLE_WMI_VDEV_SET_DSCP_TID_MAP_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_set_dscp_tid_map_cmd_fixed_param, wmi_vdev_set_dscp_tid_map_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_DSCP_TID_MAP_CMDID); - -/* Configure filter for Neighbor Rx Pkt (smart mesh selective listening) */ -#define WMITLV_TABLE_WMI_VDEV_FILTER_NEIGHBOR_RX_PACKETS_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_filter_nrp_config_cmd_fixed_param, wmi_vdev_filter_nrp_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_FILTER_NEIGHBOR_RX_PACKETS_CMDID); - -/* update a wds (4 address) entry */ -#define WMITLV_TABLE_WMI_PEER_UPDATE_WDS_ENTRY_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_update_wds_entry_cmd_fixed_param, wmi_peer_update_wds_entry_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_PEER_UPDATE_WDS_ENTRY_CMDID); - -/* add a proxy sta entry */ -#define WMITLV_TABLE_WMI_PEER_ADD_PROXY_STA_ENTRY_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_create_cmd_fixed_param, wmi_peer_create_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ADD_PROXY_STA_ENTRY_CMDID); - -/* Set Smart Antenna TX antenna */ -#define WMITLV_TABLE_WMI_PEER_SMART_ANT_SET_TX_ANTENNA_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len,WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_tx_antenna_cmd_fixed_param, wmi_peer_smart_ant_set_tx_antenna_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ -WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_smart_ant_set_tx_antenna_series, antenna_series, WMITLV_SIZE_VAR) -WMITLV_CREATE_PARAM_STRUC(WMI_PEER_SMART_ANT_SET_TX_ANTENNA_CMDID); - -/* Set Smart Antenna TX train info */ -#define WMITLV_TABLE_WMI_PEER_SMART_ANT_SET_TRAIN_INFO_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_train_antenna_cmd_fixed_param, wmi_peer_smart_ant_set_train_antenna_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ -WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_smart_ant_set_train_antenna_param, antenna_param, WMITLV_SIZE_VAR) -WMITLV_CREATE_PARAM_STRUC(WMI_PEER_SMART_ANT_SET_TRAIN_INFO_CMDID); - -/* Set SA node config options */ -#define WMITLV_TABLE_WMI_PEER_SMART_ANT_SET_NODE_CONFIG_OPS_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_node_config_ops_cmd_fixed_param, wmi_peer_smart_ant_set_node_config_ops_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ -WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, args, WMITLV_SIZE_VAR) -WMITLV_CREATE_PARAM_STRUC(WMI_PEER_SMART_ANT_SET_NODE_CONFIG_OPS_CMDID); - -/* Q-Boost configuration test commands */ -#define WMITLV_TABLE_WMI_QBOOST_CFG_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_WMI_QBOOST_CFG_CMD_fixed_param, WMI_QBOOST_CFG_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_QBOOST_CFG_CMDID); - -/* set debug and tuning parameters */ -#define WMITLV_TABLE_WMI_FWTEST_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_fwtest_set_param_cmd_fixed_param, wmi_fwtest_set_param_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_FWTEST_CMDID); - -/* ATF PEER REQUEST commands. */ -#define WMITLV_TABLE_WMI_PEER_ATF_REQUEST_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_atf_request_fixed_param, wmi_peer_atf_request_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_atf_peer_info, peer_info, WMITLV_SIZE_VAR) -WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ATF_REQUEST_CMDID) - /* Set rssi monitoring config Cmd */ -#define WMITLV_TABLE_WMI_RSSI_BREACH_MONITOR_CONFIG_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_rssi_breach_monitor_config_fixed_param, wmi_rssi_breach_monitor_config_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_RSSI_BREACH_MONITOR_CONFIG_CMDID(id,op,buf,len) \ +WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_rssi_breach_monitor_config_fixed_param, wmi_rssi_breach_monitor_config_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_RSSI_BREACH_MONITOR_CONFIG_CMDID); /* DHCP server offload param Cmd */ #define WMITLV_TABLE_WMI_SET_DHCP_SERVER_OFFLOAD_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_set_dhcp_server_offload_cmd_fixed_param, wmi_set_dhcp_server_offload_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_set_dhcp_server_offload_cmd_fixed_param, wmi_set_dhcp_server_offload_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_SET_DHCP_SERVER_OFFLOAD_CMDID); /* IPA Offload Enable Disable Cmd */ -#define WMITLV_TABLE_WMI_IPA_OFFLOAD_ENABLE_DISABLE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUCT_wmi_ipa_offload_enable_disable_cmd_fixed_param, wmi_ipa_offload_enable_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_IPA_OFFLOAD_ENABLE_DISABLE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUCT_wmi_ipa_offload_enable_disable_cmd_fixed_param, wmi_ipa_offload_enable_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_IPA_OFFLOAD_ENABLE_DISABLE_CMDID); /* Set LED flashing parameter Cmd */ #define WMITLV_TABLE_WMI_PDEV_SET_LED_FLASHING_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_set_led_flashing_cmd_fixed_param, wmi_set_led_flashing_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_set_led_flashing_cmd_fixed_param, wmi_set_led_flashing_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_LED_FLASHING_CMDID); /* mDNS responder offload param Cmd */ #define WMITLV_TABLE_WMI_MDNS_OFFLOAD_ENABLE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mdns_offload_cmd_fixed_param, wmi_mdns_offload_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mdns_offload_cmd_fixed_param, wmi_mdns_offload_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_MDNS_OFFLOAD_ENABLE_CMDID); #define WMITLV_TABLE_WMI_MDNS_SET_FQDN_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mdns_set_fqdn_cmd_fixed_param, wmi_mdns_set_fqdn_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, fqdn_data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mdns_set_fqdn_cmd_fixed_param, wmi_mdns_set_fqdn_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, fqdn_data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_MDNS_SET_FQDN_CMDID); #define WMITLV_TABLE_WMI_MDNS_SET_RESPONSE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mdns_set_resp_cmd_fixed_param, wmi_mdns_set_resp_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, resp_data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mdns_set_resp_cmd_fixed_param, wmi_mdns_set_resp_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, resp_data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_MDNS_SET_RESPONSE_CMDID); #define WMITLV_TABLE_WMI_MDNS_GET_STATS_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mdns_get_stats_cmd_fixed_param, wmi_mdns_get_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mdns_get_stats_cmd_fixed_param, wmi_mdns_get_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_MDNS_GET_STATS_CMDID); /* roam invoke Cmd */ #define WMITLV_TABLE_WMI_ROAM_INVOKE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_invoke_cmd_fixed_param, wmi_roam_invoke_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, channel_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, bssid_list, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_invoke_cmd_fixed_param, wmi_roam_invoke_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, channel_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, bssid_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_INVOKE_CMDID); /* SAP Authentication offload param Cmd */ #define WMITLV_TABLE_WMI_SAP_OFL_ENABLE_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sap_ofl_enable_cmd_fixed_param, wmi_sap_ofl_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, psk, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sap_ofl_enable_cmd_fixed_param, wmi_sap_ofl_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, psk, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_SAP_OFL_ENABLE_CMDID); /* SAP set blacklist param cmd */ -#define WMITLV_TABLE_WMI_SAP_SET_BLACKLIST_PARAM_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_sap_set_blacklist_param_cmd_fixed_param, wmi_sap_set_blacklist_param_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_SAP_SET_BLACKLIST_PARAM_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sap_set_blacklist_param_cmd_fixed_param, wmi_sap_set_blacklist_param_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_SAP_SET_BLACKLIST_PARAM_CMDID); /* APFIND Request */ #define WMITLV_TABLE_WMI_APFIND_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_apfind_cmd_param, wmi_apfind_cmd_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_apfind_cmd_param, wmi_apfind_cmd_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_APFIND_CMDID); /* Set OCB schedule cmd, DEPRECATED */ #define WMITLV_TABLE_WMI_OCB_SET_SCHED_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_ocb_set_sched_cmd_fixed_param, wmi_ocb_set_sched_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_ocb_set_sched_cmd_fixed_param, wmi_ocb_set_sched_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_OCB_SET_SCHED_CMDID); /* Set OCB configuration cmd */ #define WMITLV_TABLE_WMI_OCB_SET_CONFIG_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ocb_set_config_cmd_fixed_param, wmi_ocb_set_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_channel, chan_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ocb_channel, ocb_chan_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_qos_parameter, qos_parameter_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dcc_ndl_chan, chan_cfg, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dcc_ndl_active_state_config, ndl_active_state_config_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ocb_schedule_element, schedule_list, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ocb_set_config_cmd_fixed_param, wmi_ocb_set_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_channel, chan_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ocb_channel, ocb_chan_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_qos_parameter, qos_parameter_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dcc_ndl_chan, chan_cfg, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dcc_ndl_active_state_config, ndl_active_state_config_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ocb_schedule_element, schedule_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_OCB_SET_CONFIG_CMDID); /* Set UTC time cmd */ #define WMITLV_TABLE_WMI_OCB_SET_UTC_TIME_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ocb_set_utc_time_cmd_fixed_param, wmi_ocb_set_utc_time_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ocb_set_utc_time_cmd_fixed_param, wmi_ocb_set_utc_time_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_OCB_SET_UTC_TIME_CMDID); /* Start timing advertisement cmd */ #define WMITLV_TABLE_WMI_OCB_START_TIMING_ADVERT_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ocb_start_timing_advert_cmd_fixed_param, wmi_ocb_start_timing_advert_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ocb_start_timing_advert_cmd_fixed_param, wmi_ocb_start_timing_advert_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_OCB_START_TIMING_ADVERT_CMDID); /* Stop timing advertisement cmd */ #define WMITLV_TABLE_WMI_OCB_STOP_TIMING_ADVERT_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ocb_stop_timing_advert_cmd_fixed_param, wmi_ocb_stop_timing_advert_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ocb_stop_timing_advert_cmd_fixed_param, wmi_ocb_stop_timing_advert_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_OCB_STOP_TIMING_ADVERT_CMDID); /* Get TSF timer cmd */ #define WMITLV_TABLE_WMI_OCB_GET_TSF_TIMER_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ocb_get_tsf_timer_cmd_fixed_param, wmi_ocb_get_tsf_timer_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ocb_get_tsf_timer_cmd_fixed_param, wmi_ocb_get_tsf_timer_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_OCB_GET_TSF_TIMER_CMDID); /* Get DCC stats cmd */ #define WMITLV_TABLE_WMI_DCC_GET_STATS_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dcc_get_stats_cmd_fixed_param, wmi_dcc_get_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dcc_channel_stats_request, channel_stats_request, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dcc_get_stats_cmd_fixed_param, wmi_dcc_get_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dcc_channel_stats_request, channel_stats_request, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_DCC_GET_STATS_CMDID); /* Clear DCC stats cmd */ #define WMITLV_TABLE_WMI_DCC_CLEAR_STATS_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dcc_clear_stats_cmd_fixed_param, wmi_dcc_clear_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dcc_clear_stats_cmd_fixed_param, wmi_dcc_clear_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_DCC_CLEAR_STATS_CMDID); /* Update DCC NDL cmd */ #define WMITLV_TABLE_WMI_DCC_UPDATE_NDL_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dcc_update_ndl_cmd_fixed_param, wmi_dcc_update_ndl_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dcc_ndl_chan, chan_ndl_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dcc_ndl_active_state_config, ndl_active_state_config_list, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dcc_update_ndl_cmd_fixed_param, wmi_dcc_update_ndl_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dcc_ndl_chan, chan_ndl_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dcc_ndl_active_state_config, ndl_active_state_config_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_DCC_UPDATE_NDL_CMDID); +/* Roam filter cmd */ #define WMITLV_TABLE_WMI_ROAM_FILTER_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_filter_fixed_param, wmi_roam_filter_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, bssid_black_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_ssid, ssid_white_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, bssid_preferred_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, bssid_preferred_factor, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_filter_fixed_param, wmi_roam_filter_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, bssid_black_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_ssid, ssid_white_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, bssid_preferred_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, bssid_preferred_factor, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_FILTER_CMDID); + /* TSF timestamp action cmd */ #define WMITLV_TABLE_WMI_VDEV_TSF_TSTAMP_ACTION_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_tsf_tstamp_action_cmd_fixed_param, wmi_vdev_tsf_tstamp_action_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_TSF_TSTAMP_ACTION_CMDID); /* LFR subnet change config Cmd */ -#define WMITLV_TABLE_WMI_ROAM_SUBNET_CHANGE_CONFIG_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_roam_subnet_change_config_fixed_param, wmi_roam_subnet_change_config_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, skip_subnet_change_detection_bssid_list, WMITLV_SIZE_VAR) - +#define WMITLV_TABLE_WMI_ROAM_SUBNET_CHANGE_CONFIG_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_subnet_change_config_fixed_param, wmi_roam_subnet_change_config_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, skip_subnet_change_detection_bssid_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SUBNET_CHANGE_CONFIG_CMDID); /* Set the SOC Preferred Channel List (PCL) Cmd - DEPRECATED */ -#define WMITLV_TABLE_WMI_SOC_SET_PCL_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_soc_set_pcl_cmd_fixed_param, wmi_soc_set_pcl_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, channel_list, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_SOC_SET_PCL_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_soc_set_pcl_cmd_fixed_param, wmi_soc_set_pcl_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, channel_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_SOC_SET_PCL_CMDID); /* Set the PDEV Preferred Channel List (PCL) Cmd */ -#define WMITLV_TABLE_WMI_PDEV_SET_PCL_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_set_pcl_cmd_fixed_param, wmi_pdev_set_pcl_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, channel_weight, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_PDEV_SET_PCL_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_pcl_cmd_fixed_param, wmi_pdev_set_pcl_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, channel_weight, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_PCL_CMDID); /* Set the SOC Hardware Mode Cmd - DEPRECATED */ -#define WMITLV_TABLE_WMI_SOC_SET_HW_MODE_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_soc_set_hw_mode_cmd_fixed_param, wmi_soc_set_hw_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_SOC_SET_HW_MODE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_soc_set_hw_mode_cmd_fixed_param, wmi_soc_set_hw_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_SOC_SET_HW_MODE_CMDID); /* Set the PDEV Hardware Mode Cmd */ -#define WMITLV_TABLE_WMI_PDEV_SET_HW_MODE_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_set_hw_mode_cmd_fixed_param, wmi_pdev_set_hw_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PDEV_SET_HW_MODE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_hw_mode_cmd_fixed_param, wmi_pdev_set_hw_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_HW_MODE_CMDID); /* Set the SOC Dual MAC Config Cmd - DEPRECATED */ -#define WMITLV_TABLE_WMI_SOC_SET_DUAL_MAC_CONFIG_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_soc_set_dual_mac_config_cmd_fixed_param, wmi_soc_set_dual_mac_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_SOC_SET_DUAL_MAC_CONFIG_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_soc_set_dual_mac_config_cmd_fixed_param, wmi_soc_set_dual_mac_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_SOC_SET_DUAL_MAC_CONFIG_CMDID); /* Set the PDEV MAC Config Cmd */ -#define WMITLV_TABLE_WMI_PDEV_SET_MAC_CONFIG_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_set_mac_config_cmd_fixed_param, wmi_pdev_set_mac_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PDEV_SET_MAC_CONFIG_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_mac_config_cmd_fixed_param, wmi_pdev_set_mac_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_MAC_CONFIG_CMDID); /* Set the SOC Antenna Mode Cmd - DEPRECATED */ -#define WMITLV_TABLE_WMI_SOC_SET_ANTENNA_MODE_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_soc_set_antenna_mode_cmd_fixed_param, wmi_soc_set_antenna_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_SOC_SET_ANTENNA_MODE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_soc_set_antenna_mode_cmd_fixed_param, wmi_soc_set_antenna_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_SOC_SET_ANTENNA_MODE_CMDID); /* Set the PDEV Antenna Mode Cmd */ -#define WMITLV_TABLE_WMI_PDEV_SET_ANTENNA_MODE_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_set_antenna_mode_cmd_fixed_param, wmi_pdev_set_antenna_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PDEV_SET_ANTENNA_MODE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_antenna_mode_cmd_fixed_param, wmi_pdev_set_antenna_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_ANTENNA_MODE_CMDID); +#define WMITLV_TABLE_WMI_LRO_CONFIG_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_lro_info_cmd_fixed_param, wmi_lro_info_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_LRO_CONFIG_CMDID); + +#define WMITLV_TABLE_WMI_TRANSFER_DATA_TO_FLASH_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_transfer_data_to_flash_cmd_fixed_param, wmi_transfer_data_to_flash_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_TRANSFER_DATA_TO_FLASH_CMDID); + +#define WMITLV_TABLE_WMI_READ_DATA_FROM_FLASH_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_read_data_from_flash_cmd_fixed_param, wmi_read_data_from_flash_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_READ_DATA_FROM_FLASH_CMDID); + +#define WMITLV_TABLE_WMI_CONFIG_ENHANCED_MCAST_FILTER_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_config_enhanced_mcast_filter_fixed_param, wmi_config_enhanced_mcast_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_CONFIG_ENHANCED_MCAST_FILTER_CMDID); + +#define WMITLV_TABLE_WMI_VDEV_WISA_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_wisa_cmd_fixed_param, wmi_vdev_wisa_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_WISA_CMDID); + +/* MAWC sensor report indication cmd */ +#define WMITLV_TABLE_WMI_MAWC_SENSOR_REPORT_IND_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mawc_sensor_report_ind_cmd_fixed_param, wmi_mawc_sensor_report_ind_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_MAWC_SENSOR_REPORT_IND_CMDID); + +/* Roam configure MAWC cmd */ +#define WMITLV_TABLE_WMI_ROAM_CONFIGURE_MAWC_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_configure_mawc_cmd_fixed_param, wmi_roam_configure_mawc_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_CONFIGURE_MAWC_CMDID); + +/* NLO configure MAWC cmd */ +#define WMITLV_TABLE_WMI_NLO_CONFIGURE_MAWC_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nlo_configure_mawc_cmd_fixed_param, wmi_nlo_configure_mawc_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_NLO_CONFIGURE_MAWC_CMDID); + +/* Extscan configure MAWC cmd */ +#define WMITLV_TABLE_WMI_EXTSCAN_CONFIGURE_MAWC_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_configure_mawc_cmd_fixed_param, wmi_extscan_configure_mawc_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_EXTSCAN_CONFIGURE_MAWC_CMDID); + +/* COEX config cmd */ +#define WMITLV_TABLE_WMI_COEX_CONFIG_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_COEX_CONFIG_CMD_fixed_param, WMI_COEX_CONFIG_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_COEX_CONFIG_CMDID); + +/* Coex get antenna isolation cmd */ +#define WMITLV_TABLE_WMI_COEX_GET_ANTENNA_ISOLATION_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_coex_get_antenna_isolation_cmd_fixed_param, wmi_coex_get_antenna_isolation_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_COEX_GET_ANTENNA_ISOLATION_CMDID); + +/* bpf offload capability get cmd */ +#define WMITLV_TABLE_WMI_BPF_GET_CAPABILITY_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bpf_get_capability_cmd_fixed_param, wmi_bpf_get_capability_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_BPF_GET_CAPABILITY_CMDID); + +/* bpf offload get vdev status cmd */ +#define WMITLV_TABLE_WMI_BPF_GET_VDEV_STATS_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bpf_get_vdev_stats_cmd_fixed_param, wmi_bpf_get_vdev_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_BPF_GET_VDEV_STATS_CMDID); + +/* bpf offload set vdev instructions cmd */ +#define WMITLV_TABLE_WMI_BPF_SET_VDEV_INSTRUCTIONS_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bpf_set_vdev_instructions_cmd_fixed_param, wmi_bpf_set_vdev_instructions_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, buf_inst, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_BPF_SET_VDEV_INSTRUCTIONS_CMDID); + +/* bpf offload delete vdev instructions cmd */ +#define WMITLV_TABLE_WMI_BPF_DEL_VDEV_INSTRUCTIONS_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bpf_del_vdev_instructions_cmd_fixed_param, wmi_bpf_del_vdev_instructions_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_BPF_DEL_VDEV_INSTRUCTIONS_CMDID); + +/* Enable/Disable Smart Antenna */ +#define WMITLV_TABLE_WMI_PDEV_SMART_ANT_ENABLE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_smart_ant_enable_cmd_fixed_param, wmi_pdev_smart_ant_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_smart_ant_gpio_handle, gpio_handle, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SMART_ANT_ENABLE_CMDID); + +/* Set Smart Antenna RX antenna */ +#define WMITLV_TABLE_WMI_PDEV_SMART_ANT_SET_RX_ANTENNA_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_smart_ant_set_rx_antenna_cmd_fixed_param, wmi_pdev_smart_ant_set_rx_antenna_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SMART_ANT_SET_RX_ANTENNA_CMDID); + +/* Override the antenna switch table */ +#define WMITLV_TABLE_WMI_PDEV_SET_ANTENNA_SWITCH_TABLE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_ant_switch_tbl_cmd_fixed_param, wmi_pdev_set_ant_switch_tbl_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_set_ant_ctrl_chain, ant_ctrl_chain, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_ANTENNA_SWITCH_TABLE_CMDID); + +/* Override the CTL table */ +#define WMITLV_TABLE_WMI_PDEV_SET_CTL_TABLE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_ctl_table_cmd_fixed_param, wmi_pdev_set_ctl_table_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ctl_info, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_CTL_TABLE_CMDID); + +/* Override the array gain table */ +#define WMITLV_TABLE_WMI_PDEV_SET_MIMOGAIN_TABLE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_mimogain_table_cmd_fixed_param, wmi_pdev_set_mimogain_table_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, arraygain_tbl, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_MIMOGAIN_TABLE_CMDID); + +/* FIPS cmd */ +#define WMITLV_TABLE_WMI_PDEV_FIPS_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_fips_cmd_fixed_param, wmi_pdev_fips_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_FIPS_CMDID); + +/* get CCK ANI level */ +#define WMITLV_TABLE_WMI_PDEV_GET_ANI_CCK_CONFIG_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_get_ani_cck_config_cmd_fixed_param, wmi_pdev_get_ani_cck_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GET_ANI_CCK_CONFIG_CMDID); + +/* get OFDM ANI level */ +#define WMITLV_TABLE_WMI_PDEV_GET_ANI_OFDM_CONFIG_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_get_ani_ofdm_config_cmd_fixed_param, wmi_pdev_get_ani_ofdm_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GET_ANI_OFDM_CONFIG_CMDID); + +/* TxPPDU TPC cmd */ +#define WMITLV_TABLE_WMI_PDEV_GET_TPC_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_get_tpc_cmd_fixed_param, wmi_pdev_get_tpc_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GET_TPC_CMDID); + +#define WMITLV_TABLE_WMI_VDEV_RATEMASK_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_config_ratemask_fixed_param, wmi_vdev_config_ratemask_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_RATEMASK_CMDID); + +/* ATF VDEV REQUEST commands */ +#define WMITLV_TABLE_WMI_VDEV_ATF_REQUEST_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_atf_request_fixed_param, wmi_vdev_atf_request_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_ATF_REQUEST_CMDID); + +/* Command to send the DSCP-to-TID map to the target for VAP */ +#define WMITLV_TABLE_WMI_VDEV_SET_DSCP_TID_MAP_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_set_dscp_tid_map_cmd_fixed_param, wmi_vdev_set_dscp_tid_map_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_DSCP_TID_MAP_CMDID); + +/* Configure filter for Neighbor Rx Pkt (smart mesh selective listening) */ +#define WMITLV_TABLE_WMI_VDEV_FILTER_NEIGHBOR_RX_PACKETS_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_filter_nrp_config_cmd_fixed_param, wmi_vdev_filter_nrp_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_FILTER_NEIGHBOR_RX_PACKETS_CMDID); + +/* update a wds (4 address) entry */ +#define WMITLV_TABLE_WMI_PEER_UPDATE_WDS_ENTRY_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_update_wds_entry_cmd_fixed_param, wmi_peer_update_wds_entry_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_PEER_UPDATE_WDS_ENTRY_CMDID); + +/* add a proxy sta entry */ +#define WMITLV_TABLE_WMI_PEER_ADD_PROXY_STA_ENTRY_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_create_cmd_fixed_param, wmi_peer_create_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ADD_PROXY_STA_ENTRY_CMDID); + +/* Set Smart Antenna TX antenna */ +#define WMITLV_TABLE_WMI_PEER_SMART_ANT_SET_TX_ANTENNA_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len,WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_tx_antenna_cmd_fixed_param, wmi_peer_smart_ant_set_tx_antenna_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_smart_ant_set_tx_antenna_series, antenna_series, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_PEER_SMART_ANT_SET_TX_ANTENNA_CMDID); + +/* Set Smart Antenna TX train info */ +#define WMITLV_TABLE_WMI_PEER_SMART_ANT_SET_TRAIN_INFO_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_train_antenna_cmd_fixed_param, wmi_peer_smart_ant_set_train_antenna_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_smart_ant_set_train_antenna_param, antenna_param, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_PEER_SMART_ANT_SET_TRAIN_INFO_CMDID); + +/* Set SA node config options */ +#define WMITLV_TABLE_WMI_PEER_SMART_ANT_SET_NODE_CONFIG_OPS_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_node_config_ops_cmd_fixed_param, wmi_peer_smart_ant_set_node_config_ops_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, args, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_PEER_SMART_ANT_SET_NODE_CONFIG_OPS_CMDID); + +/* Q-Boost configuration test commands */ +#define WMITLV_TABLE_WMI_QBOOST_CFG_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_QBOOST_CFG_CMD_fixed_param, WMI_QBOOST_CFG_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_QBOOST_CFG_CMDID); + +/* set debug and tuning parameters */ +#define WMITLV_TABLE_WMI_FWTEST_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_fwtest_set_param_cmd_fixed_param, wmi_fwtest_set_param_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_FWTEST_CMDID); + +/* ATF PEER REQUEST commands. */ +#define WMITLV_TABLE_WMI_PEER_ATF_REQUEST_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_atf_request_fixed_param, wmi_peer_atf_request_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ +WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_atf_peer_info, peer_info, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ATF_REQUEST_CMDID); + /* enable/disable and set the periodicity of periodic channel stats */ -#define WMITLV_TABLE_WMI_SET_PERIODIC_CHANNEL_STATS_CONFIG_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_set_periodic_channel_stats_config_fixed_param, wmi_set_periodic_channel_stats_config_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_SET_PERIODIC_CHANNEL_STATS_CONFIG_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_set_periodic_channel_stats_config_fixed_param, wmi_set_periodic_channel_stats_config_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_SET_PERIODIC_CHANNEL_STATS_CONFIG_CMDID); /* wal power debug command per pdev */ -#define WMITLV_TABLE_WMI_PDEV_WAL_POWER_DEBUG_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_wal_power_debug_cmd_fixed_param, wmi_pdev_wal_power_debug_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, args, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_PDEV_WAL_POWER_DEBUG_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_wal_power_debug_cmd_fixed_param, wmi_pdev_wal_power_debug_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, args, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_WAL_POWER_DEBUG_CMDID); /* pdev set reorder timeout val */ -#define WMITLV_TABLE_WMI_PDEV_SET_REORDER_TIMEOUT_VAL_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_set_reorder_timeout_val_cmd_fixed_param, wmi_pdev_set_reorder_timeout_val_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PDEV_SET_REORDER_TIMEOUT_VAL_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_reorder_timeout_val_cmd_fixed_param, wmi_pdev_set_reorder_timeout_val_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_REORDER_TIMEOUT_VAL_CMDID); /* peer set rx blocksize cmd */ -#define WMITLV_TABLE_WMI_PEER_SET_RX_BLOCKSIZE_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_set_rx_blocksize_cmd_fixed_param, wmi_peer_set_rx_blocksize_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PEER_SET_RX_BLOCKSIZE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_set_rx_blocksize_cmd_fixed_param, wmi_peer_set_rx_blocksize_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_SET_RX_BLOCKSIZE_CMDID); /* Bandwidth Fairness (BWF) peer configure commands */ -#define WMITLV_TABLE_WMI_PEER_BWF_REQUEST_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_bwf_request_fixed_param, wmi_peer_bwf_request_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_bwf_peer_info, peer_info, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_PEER_BWF_REQUEST_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_bwf_request_fixed_param, wmi_peer_bwf_request_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_bwf_peer_info, peer_info, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_BWF_REQUEST_CMDID); +#define WMITLV_TABLE_WMI_RMC_SET_MANUAL_LEADER_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_rmc_set_leader_cmd_fixed_param, wmi_rmc_set_leader_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_RMC_SET_MANUAL_LEADER_CMDID); + /* peer reorder queue setup cmd */ -#define WMITLV_TABLE_WMI_PEER_REORDER_QUEUE_SETUP_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_reorder_queue_setup_cmd_fixed_param, wmi_peer_reorder_queue_setup_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PEER_REORDER_QUEUE_SETUP_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_reorder_queue_setup_cmd_fixed_param, wmi_peer_reorder_queue_setup_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_REORDER_QUEUE_SETUP_CMDID); /* peer reorder queue remove cmd */ -#define WMITLV_TABLE_WMI_PEER_REORDER_QUEUE_REMOVE_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_reorder_queue_remove_cmd_fixed_param, wmi_peer_reorder_queue_remove_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PEER_REORDER_QUEUE_REMOVE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_reorder_queue_remove_cmd_fixed_param, wmi_peer_reorder_queue_remove_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_REORDER_QUEUE_REMOVE_CMDID); /* Filter in monitor mode paramters Cmd */ -#define WMITLV_TABLE_WMI_MNT_FILTER_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_mnt_filter_cmd_fixed_param, wmi_mnt_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_MNT_FILTER_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mnt_filter_cmd_fixed_param, wmi_mnt_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_MNT_FILTER_CMDID); /* WLAN GET Chip power Stats*/ -#define WMITLV_TABLE_WMI_PDEV_GET_CHIP_POWER_STATS_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_get_chip_power_stats_cmd_fixed_param, wmi_pdev_get_chip_power_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PDEV_GET_CHIP_POWER_STATS_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_get_chip_power_stats_cmd_fixed_param, wmi_pdev_get_chip_power_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GET_CHIP_POWER_STATS_CMDID); /* pdev set stats threshold cmd*/ -#define WMITLV_TABLE_WMI_PDEV_SET_STATS_THRESHOLD_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_set_stats_threshold_cmd_fixed_param, wmi_pdev_set_stats_threshold_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_chan_cca_stats_thresh, wmi_chan_cca_stats_thresh, cca_thresh, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_signal_stats_thresh, wmi_peer_signal_stats_thresh, signal_thresh, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_tx_stats_thresh, wmi_tx_stats_thresh, tx_thresh, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_rx_stats_thresh, wmi_rx_stats_thresh, rx_thresh, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PDEV_SET_STATS_THRESHOLD_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_stats_threshold_cmd_fixed_param, wmi_pdev_set_stats_threshold_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_chan_cca_stats_thresh, wmi_chan_cca_stats_thresh, cca_thresh, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_signal_stats_thresh, wmi_peer_signal_stats_thresh, signal_thresh, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tx_stats_thresh, wmi_tx_stats_thresh, tx_thresh, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_rx_stats_thresh, wmi_rx_stats_thresh, rx_thresh, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_STATS_THRESHOLD_CMDID); /* Request wlan stats cmd */ -#define WMITLV_TABLE_WMI_REQUEST_WLAN_STATS_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id , op, buf, len, WMITLV_TAG_STRUC_wmi_request_wlan_stats_cmd_fixed_param, wmi_request_wlan_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_REQUEST_WLAN_STATS_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_request_wlan_stats_cmd_fixed_param, wmi_request_wlan_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_WLAN_STATS_CMDID); +/* Request peer stats info cmd */ +#define WMITLV_TABLE_WMI_REQUEST_PEER_STATS_INFO_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_request_peer_stats_info_cmd_fixed_param, wmi_request_peer_stats_info_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_PEER_STATS_INFO_CMDID); + +/* Host sets the current country code */ +#define WMITLV_TABLE_WMI_SET_CURRENT_COUNTRY_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_set_current_country_cmd_fixed_param, wmi_set_current_country_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_SET_CURRENT_COUNTRY_CMDID); + +/* Start 11d scan in FW */ +#define WMITLV_TABLE_WMI_11D_SCAN_START_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_11d_scan_start_cmd_fixed_param, wmi_11d_scan_start_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_11D_SCAN_START_CMDID); + +/* Stop 11d scan in FW */ +#define WMITLV_TABLE_WMI_11D_SCAN_STOP_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_11d_scan_stop_cmd_fixed_param, wmi_11d_scan_stop_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_11D_SCAN_STOP_CMDID); + + /************************** TLV definitions of WMI events *******************************/ /* Service Ready event */ -#define WMITLV_TABLE_WMI_SERVICE_READY_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_service_ready_event_fixed_param, wmi_service_ready_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_HAL_REG_CAPABILITIES, HAL_REG_CAPABILITIES, hal_reg_capabilities, WMITLV_SIZE_FIX) \ - WMITLV_FXAR(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, wmi_service_bitmap, WMITLV_SIZE_FIX, WMI_SERVICE_BM_SIZE) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wlan_host_mem_req, mem_reqs, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, wlan_dbs_hw_mode_list, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_SERVICE_READY_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_service_ready_event_fixed_param, wmi_service_ready_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_HAL_REG_CAPABILITIES, HAL_REG_CAPABILITIES, hal_reg_capabilities, WMITLV_SIZE_FIX) \ + WMITLV_FXAR(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, wmi_service_bitmap, WMITLV_SIZE_FIX, WMI_SERVICE_BM_SIZE) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wlan_host_mem_req, mem_reqs, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, wlan_dbs_hw_mode_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_READY_EVENTID); /* service available event */ -#define WMITLV_TABLE_WMI_SERVICE_AVAILABLE_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_service_available_event_fixed_param, wmi_service_available_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_SERVICE_AVAILABLE_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_service_available_event_fixed_param, wmi_service_available_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_AVAILABLE_EVENTID); /* Service Ready Extension event */ -#define WMITLV_TABLE_WMI_SERVICE_READY_EXT_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_service_ready_ext_event_fixed_param, wmi_service_ready_ext_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_WMI_SOC_MAC_PHY_HW_MODE_CAPS, WMI_SOC_MAC_PHY_HW_MODE_CAPS, soc_hw_mode_caps, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, WMI_HW_MODE_CAPABILITIES, hw_mode_caps, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, WMI_MAC_PHY_CAPABILITIES, mac_phy_caps, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_WMI_SOC_HAL_REG_CAPABILITIES, WMI_SOC_HAL_REG_CAPABILITIES, soc_hal_reg_caps, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, WMI_HAL_REG_CAPABILITIES_EXT, hal_reg_caps, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_SERVICE_READY_EXT_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_service_ready_ext_event_fixed_param, wmi_service_ready_ext_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_SOC_MAC_PHY_HW_MODE_CAPS, WMI_SOC_MAC_PHY_HW_MODE_CAPS, soc_hw_mode_caps, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_HW_MODE_CAPABILITIES, hw_mode_caps, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_MAC_PHY_CAPABILITIES, mac_phy_caps, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_SOC_HAL_REG_CAPABILITIES, WMI_SOC_HAL_REG_CAPABILITIES, soc_hal_reg_caps, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_HAL_REG_CAPABILITIES_EXT, hal_reg_caps, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_READY_EXT_EVENTID); /* Ready event */ -#define WMITLV_TABLE_WMI_READY_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ready_event_fixed_param, wmi_ready_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_READY_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ready_event_fixed_param, wmi_ready_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_READY_EVENTID); /* Scan Event */ -#define WMITLV_TABLE_WMI_SCAN_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_scan_event_fixed_param, wmi_scan_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_SCAN_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_scan_event_fixed_param, wmi_scan_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_SCAN_EVENTID); /* ExtScan Start/Stop Event */ -#define WMITLV_TABLE_WMI_EXTSCAN_START_STOP_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_start_stop_event_fixed_param, wmi_extscan_start_stop_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_EXTSCAN_START_STOP_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_start_stop_event_fixed_param, wmi_extscan_start_stop_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_EXTSCAN_START_STOP_EVENTID); /* ExtScan Event */ -#define WMITLV_TABLE_WMI_EXTSCAN_OPERATION_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_operation_event_fixed_param, wmi_extscan_operation_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, bucket_id, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_EXTSCAN_OPERATION_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_operation_event_fixed_param, wmi_extscan_operation_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, bucket_id, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_EXTSCAN_OPERATION_EVENTID); /* ExtScan Table Usage Event */ -#define WMITLV_TABLE_WMI_EXTSCAN_TABLE_USAGE_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_table_usage_event_fixed_param, wmi_extscan_table_usage_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_EXTSCAN_TABLE_USAGE_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_table_usage_event_fixed_param, wmi_extscan_table_usage_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_EXTSCAN_TABLE_USAGE_EVENTID); /* ExtScan Result Event */ -#define WMITLV_TABLE_WMI_EXTSCAN_CACHED_RESULTS_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_cached_results_event_fixed_param, wmi_extscan_cached_results_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_wlan_descriptor, bssid_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_rssi_info, rssi_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ie_list, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_EXTSCAN_CACHED_RESULTS_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_cached_results_event_fixed_param, wmi_extscan_cached_results_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_wlan_descriptor, bssid_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_rssi_info, rssi_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ie_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_EXTSCAN_CACHED_RESULTS_EVENTID); /* ExtScan Monitor RSSI List Event */ -#define WMITLV_TABLE_WMI_EXTSCAN_WLAN_CHANGE_RESULTS_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_wlan_change_results_event_fixed_param, wmi_extscan_wlan_change_results_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_wlan_change_result_bssid, bssid_signal_descriptor_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, rssi_list, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_EXTSCAN_WLAN_CHANGE_RESULTS_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_wlan_change_results_event_fixed_param, wmi_extscan_wlan_change_results_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_wlan_change_result_bssid, bssid_signal_descriptor_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, rssi_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_EXTSCAN_WLAN_CHANGE_RESULTS_EVENTID); /* ExtScan Hot List Match Event */ -#define WMITLV_TABLE_WMI_EXTSCAN_HOTLIST_MATCH_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_hotlist_match_event_fixed_param, wmi_extscan_hotlist_match_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_wlan_descriptor, hotlist_match, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_EXTSCAN_HOTLIST_MATCH_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_hotlist_match_event_fixed_param, wmi_extscan_hotlist_match_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_wlan_descriptor, hotlist_match, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_EXTSCAN_HOTLIST_MATCH_EVENTID); /* ExtScan Hot List Match Event */ -#define WMITLV_TABLE_WMI_EXTSCAN_CAPABILITIES_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_capabilities_event_fixed_param, wmi_extscan_capabilities_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_cache_capabilities, extscan_cache_capabilities, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_wlan_change_monitor_capabilities, wlan_change_capabilities, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_hotlist_monitor_capabilities, hotlist_capabilities, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_EXTSCAN_CAPABILITIES_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_capabilities_event_fixed_param, wmi_extscan_capabilities_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_cache_capabilities, extscan_cache_capabilities, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_wlan_change_monitor_capabilities, wlan_change_capabilities, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_hotlist_monitor_capabilities, hotlist_capabilities, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_EXTSCAN_CAPABILITIES_EVENTID); /* ExtScan Hot List Match Event */ -#define WMITLV_TABLE_WMI_EXTSCAN_HOTLIST_SSID_MATCH_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_hotlist_ssid_match_event_fixed_param, wmi_extscan_hotlist_ssid_match_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_wlan_descriptor, hotlist_ssid_match, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_EXTSCAN_HOTLIST_SSID_MATCH_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_hotlist_ssid_match_event_fixed_param, wmi_extscan_hotlist_ssid_match_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_extscan_wlan_descriptor, hotlist_ssid_match, WMITLV_SIZE_VAR) + WMITLV_CREATE_PARAM_STRUC(WMI_EXTSCAN_HOTLIST_SSID_MATCH_EVENTID); /* Update_whal_mib_stats Event */ -#define WMITLV_TABLE_WMI_UPDATE_WHAL_MIB_STATS_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_update_whal_mib_stats_event_fixed_param, wmi_update_whal_mib_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_UPDATE_WHAL_MIB_STATS_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_update_whal_mib_stats_event_fixed_param, wmi_update_whal_mib_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_UPDATE_WHAL_MIB_STATS_EVENTID); /* PDEV TPC Config Event */ -#define WMITLV_TABLE_WMI_PDEV_TPC_CONFIG_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_tpc_config_event_fixed_param, wmi_pdev_tpc_config_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ratesArray, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_PDEV_TPC_CONFIG_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_tpc_config_event_fixed_param, wmi_pdev_tpc_config_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ratesArray, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_TPC_CONFIG_EVENTID); /* Channel Info Event */ -#define WMITLV_TABLE_WMI_CHAN_INFO_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_chan_info_event_fixed_param, wmi_chan_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_CHAN_INFO_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_chan_info_event_fixed_param, wmi_chan_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_CHAN_INFO_EVENTID); /* Phy Error Event */ -#define WMITLV_TABLE_WMI_PHYERR_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_comb_phyerr_rx_hdr, wmi_comb_phyerr_rx_hdr, hdr, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_PHYERR_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_comb_phyerr_rx_hdr, wmi_comb_phyerr_rx_hdr, hdr, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PHYERR_EVENTID); /* TX Pause/Unpause event */ -#define WMITLV_TABLE_WMI_TX_PAUSE_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tx_pause_event_fixed_param, wmi_tx_pause_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_TX_PAUSE_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tx_pause_event_fixed_param, wmi_tx_pause_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_TX_PAUSE_EVENTID); /* Mgmt TX completion event */ -#define WMITLV_TABLE_WMI_MGMT_TX_COMPLETION_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_mgmt_tx_compl_event_fixed_param, wmi_mgmt_tx_compl_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_MGMT_TX_COMPLETION_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_tx_compl_event_fixed_param, wmi_mgmt_tx_compl_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_TX_COMPLETION_EVENTID); /* Bundled Mgmt TX completion event */ -#define WMITLV_TABLE_WMI_MGMT_TX_BUNDLE_COMPLETION_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_mgmt_tx_compl_bundle_event_fixed_param, wmi_mgmt_tx_compl_bundle_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, desc_ids, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, status, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_MGMT_TX_BUNDLE_COMPLETION_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_tx_compl_bundle_event_fixed_param, wmi_mgmt_tx_compl_bundle_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, desc_ids, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, status, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_TX_BUNDLE_COMPLETION_EVENTID); /* VDEV Start response Event */ -#define WMITLV_TABLE_WMI_VDEV_START_RESP_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_start_response_event_fixed_param, wmi_vdev_start_response_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_VDEV_START_RESP_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_start_response_event_fixed_param, wmi_vdev_start_response_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_START_RESP_EVENTID); /* VDEV Stopped Event */ -#define WMITLV_TABLE_WMI_VDEV_STOPPED_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_stopped_event_fixed_param, wmi_vdev_stopped_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_VDEV_STOPPED_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_stopped_event_fixed_param, wmi_vdev_stopped_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_STOPPED_EVENTID); /* VDEV delete response Event */ -#define WMITLV_TABLE_WMI_VDEV_DELETE_RESP_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_delete_resp_event_fixed_param, wmi_vdev_delete_resp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_VDEV_DELETE_RESP_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_delete_resp_event_fixed_param, wmi_vdev_delete_resp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_DELETE_RESP_EVENTID); /* VDEV Install Key Complete Event */ -#define WMITLV_TABLE_WMI_VDEV_INSTALL_KEY_COMPLETE_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_install_key_complete_event_fixed_param, wmi_vdev_install_key_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_VDEV_INSTALL_KEY_COMPLETE_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_install_key_complete_event_fixed_param, wmi_vdev_install_key_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_INSTALL_KEY_COMPLETE_EVENTID); /* Peer STA Kickout Event */ -#define WMITLV_TABLE_WMI_PEER_STA_KICKOUT_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_sta_kickout_event_fixed_param, wmi_peer_sta_kickout_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PEER_STA_KICKOUT_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_sta_kickout_event_fixed_param, wmi_peer_sta_kickout_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STA_KICKOUT_EVENTID); /* Management Rx Event */ -#define WMITLV_TABLE_WMI_MGMT_RX_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_rx_hdr, wmi_mgmt_rx_hdr, hdr, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_MGMT_RX_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_rx_hdr, wmi_mgmt_rx_hdr, hdr, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_RX_EVENTID); /* TBTT offset Event */ -#define WMITLV_TABLE_WMI_TBTTOFFSET_UPDATE_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tbtt_offset_event_fixed_param, wmi_tbtt_offset_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_FXAR(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tbttoffset_list, WMITLV_SIZE_FIX, WMI_MAX_AP_VDEV) +#define WMITLV_TABLE_WMI_TBTTOFFSET_UPDATE_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tbtt_offset_event_fixed_param, wmi_tbtt_offset_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_FXAR(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tbttoffset_list, WMITLV_SIZE_FIX, WMI_MAX_AP_VDEV) WMITLV_CREATE_PARAM_STRUC(WMI_TBTTOFFSET_UPDATE_EVENTID); /* TBTT EXT offset Event */ -#define WMITLV_TABLE_WMI_TBTTOFFSET_EXT_UPDATE_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_tbtt_offset_ext_event_fixed_param, wmi_tbtt_offset_ext_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_tbtt_offset_info, tbtt_offset_info, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_TBTTOFFSET_EXT_UPDATE_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tbtt_offset_ext_event_fixed_param, wmi_tbtt_offset_ext_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_tbtt_offset_info, tbtt_offset_info, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_TBTTOFFSET_EXT_UPDATE_EVENTID); /* TX DELBA Complete Event */ -#define WMITLV_TABLE_WMI_TX_DELBA_COMPLETE_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tx_delba_complete_event_fixed_param, wmi_tx_delba_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_TX_DELBA_COMPLETE_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tx_delba_complete_event_fixed_param, wmi_tx_delba_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_TX_DELBA_COMPLETE_EVENTID); /* Tx ADDBA Complete Event */ -#define WMITLV_TABLE_WMI_TX_ADDBA_COMPLETE_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tx_addba_complete_event_fixed_param, wmi_tx_addba_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_TX_ADDBA_COMPLETE_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tx_addba_complete_event_fixed_param, wmi_tx_addba_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_TX_ADDBA_COMPLETE_EVENTID); /* ADD BA Req ssn Event */ -#define WMITLV_TABLE_WMI_BA_RSP_SSN_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ba_rsp_ssn_event_fixed_param, wmi_ba_rsp_ssn_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_ba_event_ssn, ba_event_ssn_list, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_BA_RSP_SSN_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ba_rsp_ssn_event_fixed_param, wmi_ba_rsp_ssn_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_ba_event_ssn, ba_event_ssn_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_BA_RSP_SSN_EVENTID); /* Aggregation Request event */ -#define WMITLV_TABLE_WMI_AGGR_STATE_TRIG_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_aggr_state_trig_event_fixed_param, wmi_aggr_state_trig_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_AGGR_STATE_TRIG_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_aggr_state_trig_event_fixed_param, wmi_aggr_state_trig_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_AGGR_STATE_TRIG_EVENTID); /* Roam Event */ -#define WMITLV_TABLE_WMI_ROAM_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_event_fixed_param, wmi_roam_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_ROAM_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_event_fixed_param, wmi_roam_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_EVENTID); /* Roam Synch Event */ -#define WMITLV_TABLE_WMI_ROAM_SYNCH_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_synch_event_fixed_param, wmi_roam_synch_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bcn_probe_rsp_frame, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, reassoc_rsp_frame, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_channel, wmi_channel, chan, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_key_material, key, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, status, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, reassoc_req_frame, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_hw_mode_transition_event_fixed_param, hw_mode_transition_fixed_param, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_set_hw_mode_response_vdev_mac_entry, wmi_pdev_set_hw_mode_response_vdev_mac_mapping, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_ROAM_SYNCH_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_synch_event_fixed_param, wmi_roam_synch_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bcn_probe_rsp_frame, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, reassoc_rsp_frame, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_channel, wmi_channel, chan, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_key_material, key, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, status, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, reassoc_req_frame, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_hw_mode_transition_event_fixed_param, hw_mode_transition_fixed_param, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_set_hw_mode_response_vdev_mac_entry, wmi_pdev_set_hw_mode_response_vdev_mac_mapping, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SYNCH_EVENTID); /* WOW Wakeup Host Event */ /* NOTE: Make sure wow_bitmap_info can be zero or one elements only */ -#define WMITLV_TABLE_WMI_WOW_WAKEUP_HOST_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WOW_EVENT_INFO_fixed_param, WOW_EVENT_INFO_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WOW_EVENT_INFO_SECTION_BITMAP, wow_bitmap_info, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, wow_packet_buffer, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_hb_ind_event_fixed_param, hb_indevt, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_GTK_OFFLOAD_STATUS_EVENT_fixed_param, wow_gtkigtk, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_WOW_WAKEUP_HOST_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WOW_EVENT_INFO_fixed_param, WOW_EVENT_INFO_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WOW_EVENT_INFO_SECTION_BITMAP, wow_bitmap_info, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, wow_packet_buffer, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_hb_ind_event_fixed_param, hb_indevt, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_GTK_OFFLOAD_STATUS_EVENT_fixed_param, wow_gtkigtk, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_WAKEUP_HOST_EVENTID); -#define WMITLV_TABLE_WMI_WOW_INITIAL_WAKEUP_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_WOW_EVENT_INITIAL_WAKEUP_fixed_param, WOW_INITIAL_WAKEUP_EVENT_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_WOW_INITIAL_WAKEUP_EVENTID(id,op,buf,len) \ +WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WOW_EVENT_INITIAL_WAKEUP_fixed_param, WOW_INITIAL_WAKEUP_EVENT_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_WOW_INITIAL_WAKEUP_EVENTID); - /* RTT error report Event */ -#define WMITLV_TABLE_WMI_RTT_ERROR_REPORT_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_RTT_ERROR_REPORT_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_RTT_ERROR_REPORT_EVENTID); /* Echo Event */ -#define WMITLV_TABLE_WMI_ECHO_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_echo_event_fixed_param, wmi_echo_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_ECHO_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_echo_event_fixed_param, wmi_echo_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_ECHO_EVENTID); /* FTM Integration Event */ #define WMITLV_TABLE_WMI_PDEV_FTM_INTG_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ftm_intg_event_fixed_param, wmi_ftm_intg_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ftm_intg_event_fixed_param, wmi_ftm_intg_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_FTM_INTG_EVENTID); /* VDEV get Keepalive Event */ -#define WMITLV_TABLE_WMI_VDEV_GET_KEEPALIVE_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_get_keepalive_event_fixed_param, wmi_vdev_get_keepalive_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_VDEV_GET_KEEPALIVE_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_get_keepalive_event_fixed_param, wmi_vdev_get_keepalive_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_GET_KEEPALIVE_EVENTID); /* GPIO Input Event */ #define WMITLV_TABLE_WMI_GPIO_INPUT_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_gpio_input_event_fixed_param, wmi_gpio_input_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_gpio_input_event_fixed_param, wmi_gpio_input_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_GPIO_INPUT_EVENTID); /* CSA Handling Event */ -#define WMITLV_TABLE_WMI_CSA_HANDLING_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_csa_event_fixed_param, wmi_csa_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_CSA_HANDLING_EVENTID(id,op,buf,len)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_csa_event_fixed_param, wmi_csa_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_CSA_HANDLING_EVENTID); /* Rfkill state change Event */ -#define WMITLV_TABLE_WMI_RFKILL_STATE_CHANGE_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_rfkill_event_fixed_param, wmi_rfkill_mode_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_RFKILL_STATE_CHANGE_EVENTID(id,op,buf,len)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_rfkill_event_fixed_param, wmi_rfkill_mode_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_RFKILL_STATE_CHANGE_EVENTID); + /* Debug Message Event */ -#define WMITLV_TABLE_WMI_DEBUG_MESG_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_DEBUG_MESG_EVENTID(id,op,buf,len)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_DEBUG_MESG_EVENTID); -#define WMITLV_TABLE_WMI_DEBUG_MESG_FLUSH_COMPLETE_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_debug_mesg_flush_complete_fixed_param, wmi_debug_mesg_flush_complete_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_DEBUG_MESG_FLUSH_COMPLETE_EVENTID(id,op,buf,len)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_debug_mesg_flush_complete_fixed_param, wmi_debug_mesg_flush_complete_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_DEBUG_MESG_FLUSH_COMPLETE_EVENTID); -#define WMITLV_TABLE_WMI_RSSI_BREACH_EVENTID(id, op, buf, len)\ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_rssi_breach_event_fixed_param, wmi_rssi_breach_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_RSSI_BREACH_EVENTID(id,op,buf,len)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_rssi_breach_event_fixed_param, wmi_rssi_breach_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_RSSI_BREACH_EVENTID); -#define WMITLV_TABLE_WMI_TRANSFER_DATA_TO_FLASH_COMPLETE_EVENTID(id, op, buf, len)\ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_transfer_data_to_flash_complete_event_fixed_param, wmi_transfer_data_to_flash_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_TRANSFER_DATA_TO_FLASH_COMPLETE_EVENTID(id,op,buf,len)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_transfer_data_to_flash_complete_event_fixed_param, wmi_transfer_data_to_flash_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_TRANSFER_DATA_TO_FLASH_COMPLETE_EVENTID); -#define WMITLV_TABLE_WMI_READ_DATA_FROM_FLASH_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_read_data_from_flash_event_fixed_param, wmi_read_data_from_flash_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_READ_DATA_FROM_FLASH_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_read_data_from_flash_event_fixed_param, wmi_read_data_from_flash_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_READ_DATA_FROM_FLASH_EVENTID); /* Diagnostics Event */ -#define WMITLV_TABLE_WMI_DIAG_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_DIAG_EVENTID(id,op,buf,len)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_DIAG_EVENTID); /* IGTK Offload Event */ -#define WMITLV_TABLE_WMI_GTK_OFFLOAD_STATUS_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_GTK_OFFLOAD_STATUS_EVENT_fixed_param, WMI_GTK_OFFLOAD_STATUS_EVENT_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_GTK_OFFLOAD_STATUS_EVENTID(id,op,buf,len)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_GTK_OFFLOAD_STATUS_EVENT_fixed_param, WMI_GTK_OFFLOAD_STATUS_EVENT_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_GTK_OFFLOAD_STATUS_EVENTID); /* DCA interferance Event */ -#define WMITLV_TABLE_WMI_DCS_INTERFERENCE_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_dcs_interference_event_fixed_param, wmi_dcs_interference_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wlan_dcs_cw_int, cw_int, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wlan_dcs_im_tgt_stats_t, wlan_stat, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_DCS_INTERFERENCE_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dcs_interference_event_fixed_param, wmi_dcs_interference_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wlan_dcs_cw_int, cw_int, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wlan_dcs_im_tgt_stats_t, wlan_stat, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_DCS_INTERFERENCE_EVENTID); /* Profile data Event */ #define WMITLV_TABLE_WMI_WLAN_PROFILE_DATA_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wlan_profile_ctx_t, wmi_wlan_profile_ctx_t, profile_ctx, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_wlan_profile_t, profile_data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wlan_profile_ctx_t, wmi_wlan_profile_ctx_t, profile_ctx, WMITLV_SIZE_FIX)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_wlan_profile_t, profile_data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_WLAN_PROFILE_DATA_EVENTID); /* PDEV UTF Event */ -#define WMITLV_TABLE_WMI_PDEV_UTF_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_PDEV_UTF_EVENTID(id,op,buf,len)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_UTF_EVENTID); /* Update SCPC calibrated data Event */ -#define WMITLV_TABLE_WMI_PDEV_UTF_SCPC_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_scpc_event_fixed_param, wmi_scpc_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_PDEV_UTF_SCPC_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_scpc_event_fixed_param, wmi_scpc_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_UTF_SCPC_EVENTID); /* Debug print Event */ #define WMITLV_TABLE_WMI_DEBUG_PRINT_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_DEBUG_PRINT_EVENTID); /* RTT measurement report Event - DEPRECATED */ #define WMITLV_TABLE_WMI_RTT_MEASUREMENT_REPORT_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_RTT_MEASUREMENT_REPORT_EVENTID); -/* oem measurement report Event - DEPRECATED */ +/*oem measurement report Event - DEPRECATED */ #define WMITLV_TABLE_WMI_OEM_MEASUREMENT_REPORT_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_OEM_MEASUREMENT_REPORT_EVENTID); -/* oem error report event - DEPRECATED */ +/*oem error report event - DEPRECATED */ #define WMITLV_TABLE_WMI_OEM_ERROR_REPORT_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_OEM_ERROR_REPORT_EVENTID); -/* oem capability report event - DEPRECATED */ +/*oem capability report event - DEPRECATED */ #define WMITLV_TABLE_WMI_OEM_CAPABILITY_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_OEM_CAPABILITY_EVENTID); -/* oem response event */ -#define WMITLV_TABLE_WMI_OEM_RESPONSE_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) +/*oem response event*/ +#define WMITLV_TABLE_WMI_OEM_RESPONSE_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_OEM_RESPONSE_EVENTID); /* HOST SWBA Event */ #define WMITLV_TABLE_WMI_HOST_SWBA_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_host_swba_event_fixed_param, wmi_host_swba_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_tim_info, tim_info, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_p2p_noa_info, p2p_noa_info, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_host_swba_event_fixed_param, wmi_host_swba_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_tim_info, tim_info, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_p2p_noa_info, p2p_noa_info, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_HOST_SWBA_EVENTID); + /* Update stats Event */ -#define WMITLV_TABLE_WMI_UPDATE_STATS_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_stats_event_fixed_param, wmi_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_per_chain_rssi_stats, wmi_per_chain_rssi_stats, chain_stats, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_rssi_stats, rssi_stats, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_UPDATE_STATS_EVENTID(id,op,buf,len)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_stats_event_fixed_param, wmi_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_per_chain_rssi_stats, wmi_per_chain_rssi_stats, chain_stats, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_rssi_stats, rssi_stats, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_UPDATE_STATS_EVENTID); /* For vdev based ht/vht info upload*/ -#define WMITLV_TABLE_WMI_UPDATE_VDEV_RATE_STATS_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_rate_stats_event_fixed_param, wmi_vdev_rate_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_rate_ht_info, ht_info, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_UPDATE_VDEV_RATE_STATS_EVENTID(id,op,buf,len)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_rate_stats_event_fixed_param, wmi_vdev_rate_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_rate_ht_info, ht_info, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_UPDATE_VDEV_RATE_STATS_EVENTID); /* report rx aggregation failure information */ -#define WMITLV_TABLE_WMI_REPORT_RX_AGGR_FAILURE_EVENTID(id, op, buf, len)\ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_rx_aggr_failure_event_fixed_param, wmi_rx_aggr_failure_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_rx_aggr_failure_info, failure_info, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_REPORT_RX_AGGR_FAILURE_EVENTID(id,op,buf,len)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_rx_aggr_failure_event_fixed_param, wmi_rx_aggr_failure_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_rx_aggr_failure_info, failure_info, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_REPORT_RX_AGGR_FAILURE_EVENTID); /* Update memory dump complete Event */ #define WMITLV_TABLE_WMI_UPDATE_FW_MEM_DUMP_EVENTID(id,op,buf,len)\ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_update_fw_mem_dump_fixed_param, wmi_update_fw_mem_dump_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_update_fw_mem_dump_fixed_param, wmi_update_fw_mem_dump_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_UPDATE_FW_MEM_DUMP_EVENTID); /* Event indicating the DIAG LOGs/Events supported by FW */ -#define WMITLV_TABLE_WMI_DIAG_EVENT_LOG_SUPPORTED_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_diag_event_log_supported_event_fixed_params, wmi_diag_event_log_supported_event_fixed_params, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, diag_events_logs_list, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_DIAG_EVENT_LOG_SUPPORTED_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_diag_event_log_supported_event_fixed_params, wmi_diag_event_log_supported_event_fixed_params, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, diag_events_logs_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_DIAG_EVENT_LOG_SUPPORTED_EVENTID); - /* Update iface link stats Event */ -#define WMITLV_TABLE_WMI_IFACE_LINK_STATS_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_iface_link_stats_event_fixed_param, wmi_iface_link_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_iface_link_stats, iface_link_stats, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_wmm_ac_stats, ac, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_IFACE_LINK_STATS_EVENTID(id,op,buf,len)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_iface_link_stats_event_fixed_param, wmi_iface_link_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_iface_link_stats, iface_link_stats, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_wmm_ac_stats, ac, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_IFACE_LINK_STATS_EVENTID); /* Update Peer link stats Event */ -#define WMITLV_TABLE_WMI_PEER_LINK_STATS_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_stats_event_fixed_param, wmi_peer_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_link_stats, peer_stats, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_rate_stats, peer_rate_stats, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_PEER_LINK_STATS_EVENTID(id,op,buf,len)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_stats_event_fixed_param, wmi_peer_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_link_stats, peer_stats, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_rate_stats, peer_rate_stats, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_LINK_STATS_EVENTID); /* Update radio stats Event */ -#define WMITLV_TABLE_WMI_RADIO_LINK_STATS_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_radio_link_stats_event_fixed_param, wmi_radio_link_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_radio_link_stats, radio_stats, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_channel_stats, channel_stats, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_RADIO_LINK_STATS_EVENTID(id,op,buf,len)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_radio_link_stats_event_fixed_param, wmi_radio_link_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_radio_link_stats, radio_stats, WMITLV_SIZE_VAR)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_channel_stats, channel_stats, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_RADIO_LINK_STATS_EVENTID); /* PDEV QVIT Event */ -#define WMITLV_TABLE_WMI_PDEV_QVIT_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_PDEV_QVIT_EVENTID(id,op,buf,len)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_QVIT_EVENTID); /* WLAN Frequency avoid Event */ -#define WMITLV_TABLE_WMI_WLAN_FREQ_AVOID_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_avoid_freq_ranges_event_fixed_param, wmi_avoid_freq_ranges_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_avoid_freq_range_desc, avd_freq_range, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_WLAN_FREQ_AVOID_EVENTID(id,op,buf,len)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_avoid_freq_ranges_event_fixed_param, wmi_avoid_freq_ranges_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_avoid_freq_range_desc, avd_freq_range, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_WLAN_FREQ_AVOID_EVENTID); /* GTK rekey fail Event */ -#define WMITLV_TABLE_WMI_GTK_REKEY_FAIL_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_gtk_rekey_fail_event_fixed_param, wmi_gtk_rekey_fail_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_GTK_REKEY_FAIL_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_gtk_rekey_fail_event_fixed_param, wmi_gtk_rekey_fail_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_GTK_REKEY_FAIL_EVENTID); /* NLO match event */ -#define WMITLV_TABLE_WMI_NLO_MATCH_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nlo_event, wmi_nlo_event, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_NLO_MATCH_EVENTID); +#define WMITLV_TABLE_WMI_NLO_MATCH_EVENTID(id,op,buf,len) \ +WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nlo_event, wmi_nlo_event, fixed_param, WMITLV_SIZE_FIX) + WMITLV_CREATE_PARAM_STRUC(WMI_NLO_MATCH_EVENTID); /* NLO scan complete event */ -#define WMITLV_TABLE_WMI_NLO_SCAN_COMPLETE_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nlo_event, wmi_nlo_event, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_NLO_SCAN_COMPLETE_EVENTID); +#define WMITLV_TABLE_WMI_NLO_SCAN_COMPLETE_EVENTID(id,op,buf,len) \ +WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nlo_event, wmi_nlo_event, fixed_param, WMITLV_SIZE_FIX) + WMITLV_CREATE_PARAM_STRUC(WMI_NLO_SCAN_COMPLETE_EVENTID); /* APFIND event */ #define WMITLV_TABLE_WMI_APFIND_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_apfind_event_hdr, wmi_apfind_event_hdr, hdr, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) -WMITLV_CREATE_PARAM_STRUC(WMI_APFIND_EVENTID); +WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_apfind_event_hdr, wmi_apfind_event_hdr, hdr, WMITLV_SIZE_FIX) \ +WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) + WMITLV_CREATE_PARAM_STRUC(WMI_APFIND_EVENTID); /* WMI_PASSPOINT_MATCH_EVENTID */ #define WMITLV_TABLE_WMI_PASSPOINT_MATCH_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_passpoint_event_hdr, wmi_passpoint_event_hdr, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) -WMITLV_CREATE_PARAM_STRUC(WMI_PASSPOINT_MATCH_EVENTID); + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_passpoint_event_hdr, wmi_passpoint_event_hdr, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) + WMITLV_CREATE_PARAM_STRUC(WMI_PASSPOINT_MATCH_EVENTID); /* Chatter query reply event */ #define WMITLV_TABLE_WMI_CHATTER_PC_QUERY_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_chatter_query_reply_event_fixed_param, wmi_chatter_query_reply_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_CHATTER_PC_QUERY_EVENTID); +WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_chatter_query_reply_event_fixed_param, wmi_chatter_query_reply_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_CREATE_PARAM_STRUC(WMI_CHATTER_PC_QUERY_EVENTID); /* Upload H_CV info event */ #define WMITLV_TABLE_WMI_UPLOADH_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_upload_h_hdr, wmi_upload_h_hdr, hdr, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) -WMITLV_CREATE_PARAM_STRUC(WMI_UPLOADH_EVENTID); +WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_upload_h_hdr, wmi_upload_h_hdr, hdr, WMITLV_SIZE_FIX) \ +WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) + WMITLV_CREATE_PARAM_STRUC(WMI_UPLOADH_EVENTID); /* Capture H info event */ #define WMITLV_TABLE_WMI_CAPTUREH_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_capture_h_event_hdr, wmi_capture_h_event_hdr, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_CAPTUREH_EVENTID); +WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_capture_h_event_hdr, wmi_capture_h_event_hdr, fixed_param, WMITLV_SIZE_FIX) + WMITLV_CREATE_PARAM_STRUC(WMI_CAPTUREH_EVENTID); + /* TDLS Peer Update event */ -#define WMITLV_TABLE_WMI_TDLS_PEER_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tdls_peer_event_fixed_param, wmi_tdls_peer_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_TDLS_PEER_EVENTID); +#define WMITLV_TABLE_WMI_TDLS_PEER_EVENTID(id,op,buf,len) \ +WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tdls_peer_event_fixed_param, wmi_tdls_peer_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_CREATE_PARAM_STRUC(WMI_TDLS_PEER_EVENTID); /* VDEV MCC Beacon Interval Change Request Event */ -#define WMITLV_TABLE_WMI_VDEV_MCC_BCN_INTERVAL_CHANGE_REQ_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_mcc_bcn_intvl_change_event_fixed_param, wmi_vdev_mcc_bcn_intvl_change_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC - (WMI_VDEV_MCC_BCN_INTERVAL_CHANGE_REQ_EVENTID); +#define WMITLV_TABLE_WMI_VDEV_MCC_BCN_INTERVAL_CHANGE_REQ_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_mcc_bcn_intvl_change_event_fixed_param, wmi_vdev_mcc_bcn_intvl_change_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_MCC_BCN_INTERVAL_CHANGE_REQ_EVENTID); -#define WMITLV_TABLE_WMI_BATCH_SCAN_ENABLED_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_batch_scan_enabled_event_fixed_param, wmi_batch_scan_enabled_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_BATCH_SCAN_ENABLED_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_batch_scan_enabled_event_fixed_param, wmi_batch_scan_enabled_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_BATCH_SCAN_ENABLED_EVENTID); #define WMITLV_TABLE_WMI_BATCH_SCAN_RESULT_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_batch_scan_result_event_fixed_param, wmi_batch_scan_result_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len,WMITLV_TAG_ARRAY_STRUC, wmi_batch_scan_result_scan_list, scan_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len,WMITLV_TAG_ARRAY_STRUC, wmi_batch_scan_result_network_info, network_list, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_batch_scan_result_event_fixed_param, wmi_batch_scan_result_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len,WMITLV_TAG_ARRAY_STRUC, wmi_batch_scan_result_scan_list, scan_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len,WMITLV_TAG_ARRAY_STRUC, wmi_batch_scan_result_network_info, network_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_BATCH_SCAN_RESULT_EVENTID); #define WMITLV_TABLE_WMI_OFFLOAD_BCN_TX_STATUS_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_offload_bcn_tx_status_event_fixed_param, wmi_offload_bcn_tx_status_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_offload_bcn_tx_status_event_fixed_param, wmi_offload_bcn_tx_status_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_OFFLOAD_BCN_TX_STATUS_EVENTID); /* NOA Event */ -#define WMITLV_TABLE_WMI_P2P_NOA_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_p2p_noa_event_fixed_param, wmi_p2p_noa_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_p2p_noa_info, wmi_p2p_noa_info, p2p_noa_info, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_P2P_NOA_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_p2p_noa_event_fixed_param, wmi_p2p_noa_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_p2p_noa_info, wmi_p2p_noa_info, p2p_noa_info, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_P2P_NOA_EVENTID); - /* AP PS enhanced green ap Event */ -#define WMITLV_TABLE_WMI_AP_PS_EGAP_INFO_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len,\ - WMITLV_TAG_STRUC_wmi_ap_ps_egap_info_event_fixed_param,\ - wmi_ap_ps_egap_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC,\ - wmi_ap_ps_egap_info_chainmask_list, chainmask_list, WMITLV_SIZE_VAR) +/* AP PS enhanced green ap Event */ +#define WMITLV_TABLE_WMI_AP_PS_EGAP_INFO_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ap_ps_egap_info_event_fixed_param, wmi_ap_ps_egap_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ap_ps_egap_info_chainmask_list, chainmask_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_AP_PS_EGAP_INFO_EVENTID); -#define WMITLV_TABLE_WMI_PEER_INFO_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_info_event_fixed_param, wmi_peer_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_info, peer_info, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_PEER_INFO_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_info_event_fixed_param, wmi_peer_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_info, peer_info, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_INFO_EVENTID); -#define WMITLV_TABLE_WMI_PEER_ANTDIV_INFO_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_antdiv_info_event_fixed_param, wmi_peer_antdiv_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_antdiv_info, peer_info, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_PEER_ANTDIV_INFO_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_antdiv_info_event_fixed_param, wmi_peer_antdiv_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_antdiv_info, peer_info, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ANTDIV_INFO_EVENTID); -#define WMITLV_TABLE_WMI_PEER_TX_FAIL_CNT_THR_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_tx_fail_cnt_thr_event_fixed_param, wmi_peer_tx_fail_cnt_thr_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PEER_TX_FAIL_CNT_THR_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_tx_fail_cnt_thr_event_fixed_param, wmi_peer_tx_fail_cnt_thr_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_TX_FAIL_CNT_THR_EVENTID); /* DFS radar Event */ #define WMITLV_TABLE_WMI_DFS_RADAR_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dfs_radar_event_fixed_param, wmi_dfs_radar_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dfs_radar_event_fixed_param, wmi_dfs_radar_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_DFS_RADAR_EVENTID); -#define WMITLV_TABLE_WMI_PDEV_DFS_RADAR_DETECTION_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_dfs_radar_detection_event_fixed_param, wmi_pdev_dfs_radar_detection_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PDEV_DFS_RADAR_DETECTION_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_dfs_radar_detection_event_fixed_param, wmi_pdev_dfs_radar_detection_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_DFS_RADAR_DETECTION_EVENTID); -#define WMITLV_TABLE_WMI_VDEV_ADFS_OCAC_COMPLETE_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_adfs_ocac_complete_event_fixed_param, wmi_vdev_adfs_ocac_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_VDEV_ADFS_OCAC_COMPLETE_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_adfs_ocac_complete_event_fixed_param, wmi_vdev_adfs_ocac_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_ADFS_OCAC_COMPLETE_EVENTID); -#define WMITLV_TABLE_WMI_VDEV_DFS_CAC_COMPLETE_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_dfs_cac_complete_event_fixed_param, wmi_vdev_dfs_cac_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_VDEV_DFS_CAC_COMPLETE_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_dfs_cac_complete_event_fixed_param, wmi_vdev_dfs_cac_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_DFS_CAC_COMPLETE_EVENTID); /* Thermal Event */ #define WMITLV_TABLE_WMI_THERMAL_MGMT_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_thermal_mgmt_event_fixed_param, wmi_thermal_mgmt_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_thermal_mgmt_event_fixed_param, wmi_thermal_mgmt_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_THERMAL_MGMT_EVENTID); /* NAN Response/Indication Event */ -#define WMITLV_TABLE_WMI_NAN_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_event_hdr, wmi_nan_event_hdr, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_NAN_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_event_hdr, wmi_nan_event_hdr, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_NAN_EVENTID); /* NAN discovery interface created event */ -#define WMITLV_TABLE_WMI_NAN_DISC_IFACE_CREATED_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_nan_disc_iface_created_event_fixed_param, wmi_nan_disc_iface_created_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_NAN_DISC_IFACE_CREATED_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_disc_iface_created_event_fixed_param, wmi_nan_disc_iface_created_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_NAN_DISC_IFACE_CREATED_EVENTID); /* NAN discovery interface deleted event */ -#define WMITLV_TABLE_WMI_NAN_DISC_IFACE_DELETED_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_nan_disc_iface_deleted_event_fixed_param, wmi_nan_disc_iface_deleted_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_NAN_DISC_IFACE_DELETED_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_disc_iface_deleted_event_fixed_param, wmi_nan_disc_iface_deleted_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_NAN_DISC_IFACE_DELETED_EVENTID); /* NAN device started new cluster event */ -#define WMITLV_TABLE_WMI_NAN_STARTED_CLUSTER_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_nan_started_cluster_event_fixed_param, wmi_nan_started_cluster_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_NAN_STARTED_CLUSTER_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_started_cluster_event_fixed_param, wmi_nan_started_cluster_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_NAN_STARTED_CLUSTER_EVENTID); /* NAN device joined to cluster event */ -#define WMITLV_TABLE_WMI_NAN_JOINED_CLUSTER_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_nan_joined_cluster_event_fixed_param, wmi_nan_joined_cluster_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_NAN_JOINED_CLUSTER_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_nan_joined_cluster_event_fixed_param, wmi_nan_joined_cluster_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_NAN_JOINED_CLUSTER_EVENTID); /* Coex report antenna isolation event */ -#define WMITLV_TABLE_WMI_COEX_REPORT_ANTENNA_ISOLATION_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_coex_report_isolation_event_fixed_param, wmi_coex_report_isolation_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_COEX_REPORT_ANTENNA_ISOLATION_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_coex_report_isolation_event_fixed_param, wmi_coex_report_isolation_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_COEX_REPORT_ANTENNA_ISOLATION_EVENTID); /* NDP capabilities response event */ -#define WMITLV_TABLE_WMI_NDI_CAP_RSP_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_ndi_cap_rsp_event_fixed_param, wmi_ndi_cap_rsp_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_NDI_CAP_RSP_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndi_cap_rsp_event_fixed_param, wmi_ndi_cap_rsp_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_NDI_CAP_RSP_EVENTID); /* NDP initiator response event */ -#define WMITLV_TABLE_WMI_NDP_INITIATOR_RSP_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_ndp_initiator_rsp_event_fixed_param, wmi_ndp_initiator_rsp_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_NDP_INITIATOR_RSP_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndp_initiator_rsp_event_fixed_param, wmi_ndp_initiator_rsp_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_NDP_INITIATOR_RSP_EVENTID); /* NDP responder response event */ -#define WMITLV_TABLE_WMI_NDP_RESPONDER_RSP_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_ndp_responder_rsp_event_fixed_param, wmi_ndp_responder_rsp_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_NDP_RESPONDER_RSP_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndp_responder_rsp_event_fixed_param, wmi_ndp_responder_rsp_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_NDP_RESPONDER_RSP_EVENTID); -/** - * NDP end response event +/** NDP end response event * * TLV (tag length value ) parameters follow the ndp_end_rsp * structure. The TLV's are: * wmi_ndp_end_rsp_per_ndi ndp_end_rsp_per_ndi_list[]; * wmi_active_ndp_instance_id active_ndp_instances_id[]; */ -#define WMITLV_TABLE_WMI_NDP_END_RSP_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_ndp_end_rsp_event_fixed_param, wmi_ndp_end_rsp_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_ndp_end_rsp_per_ndi_PROTOTYPE, ndp_end_rsp_per_ndi_list, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_active_ndp_instance_id_PROTOTYPE, active_ndp_instances_id, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_NDP_END_RSP_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndp_end_rsp_event_fixed_param, wmi_ndp_end_rsp_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ndp_end_rsp_per_ndi_PROTOTYPE, ndp_end_rsp_per_ndi_list, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_active_ndp_instance_id_PROTOTYPE, active_ndp_instances_id, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_NDP_END_RSP_EVENTID); -/** - * NDP indication event +/** NDP indication event * * TLV (tag length value ) parameters follow the ndp_indication * structure. The TLV's are: * A_UINT8 ndp_cfg[]; * A_UINT8 ndp_app_info[]; */ -#define WMITLV_TABLE_WMI_NDP_INDICATION_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_ndp_indication_event_fixed_param, wmi_ndp_indication_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_cfg, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_app_info, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_scid, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_NDP_INDICATION_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndp_indication_event_fixed_param, wmi_ndp_indication_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_cfg, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_app_info, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_scid, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_NDP_INDICATION_EVENTID); -/** - * NDP confirm event +/** NDP confirm event * TLV (tag length value ) parameters follow the ndp_confirm * structure. The TLV's are: * A_UINT8 ndp_cfg[]; * A_UINT8 ndp_app_info[]; */ -#define WMITLV_TABLE_WMI_NDP_CONFIRM_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_ndp_confirm_event_fixed_param, wmi_ndp_confirm_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_cfg, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_app_info, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_NDP_CONFIRM_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndp_confirm_event_fixed_param, wmi_ndp_confirm_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_cfg, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_app_info, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_NDP_CONFIRM_EVENTID); -/** - * NDP end indication event +/** NDP end indication event * * TLV (tag length value ) parameters follow the ndp_end_indication * structure. The TLV's are: * wmi_ndp_end_indication ndp_end_indication_list[]; */ -#define WMITLV_TABLE_WMI_NDP_END_INDICATION_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_ndp_end_indication_PROTOTYPE, ndp_end_indication_list, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_NDP_END_INDICATION_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_ndp_end_indication_PROTOTYPE, ndp_end_indication_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_NDP_END_INDICATION_EVENTID); /* Update RCPI Info Event */ #define WMITLV_TABLE_WMI_UPDATE_RCPI_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_update_rcpi_event_fixed_param, wmi_update_rcpi_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_update_rcpi_event_fixed_param, wmi_update_rcpi_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_UPDATE_RCPI_EVENTID); /* L1SS track Event */ -#define WMITLV_TABLE_WMI_PDEV_L1SS_TRACK_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_l1ss_track_event_fixed_param, wmi_pdev_l1ss_track_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PDEV_L1SS_TRACK_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_l1ss_track_event_fixed_param, wmi_pdev_l1ss_track_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_L1SS_TRACK_EVENTID); #define WMITLV_TABLE_WMI_DIAG_DATA_CONTAINER_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_diag_data_container_event_fixed_param, wmi_diag_data_container_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_diag_data_container_event_fixed_param, wmi_diag_data_container_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_DIAG_DATA_CONTAINER_EVENTID); /* Estimated Link Speed Indication*/ #define WMITLV_TABLE_WMI_PEER_ESTIMATED_LINKSPEED_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_estimated_linkspeed_event_fixed_param, wmi_peer_estimated_linkspeed_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_estimated_linkspeed_event_fixed_param, wmi_peer_estimated_linkspeed_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ESTIMATED_LINKSPEED_EVENTID); -#define WMITLV_TABLE_WMI_STATS_EXT_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_stats_ext_event_fixed_param, wmi_stats_ext_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) +/* NAN Response/Indication Event */ +#define WMITLV_TABLE_WMI_STATS_EXT_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_stats_ext_event_fixed_param, wmi_stats_ext_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_STATS_EXT_EVENTID); #define WMITLV_TABLE_WMI_OFFLOAD_PROB_RESP_TX_STATUS_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_offload_prb_rsp_tx_status_event_fixed_param, wmi_offload_prb_rsp_tx_status_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_offload_prb_rsp_tx_status_event_fixed_param, wmi_offload_prb_rsp_tx_status_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_OFFLOAD_PROB_RESP_TX_STATUS_EVENTID); /* host auto shut down event */ #define WMITLV_TABLE_WMI_HOST_AUTO_SHUTDOWN_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_host_auto_shutdown_event_fixed_param, wmi_host_auto_shutdown_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_host_auto_shutdown_event_fixed_param, wmi_host_auto_shutdown_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_HOST_AUTO_SHUTDOWN_EVENTID); /* peer state Event */ -#define WMITLV_TABLE_WMI_PEER_STATE_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_state_event_fixed_param, wmi_peer_state_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PEER_STATE_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_state_event_fixed_param, wmi_peer_state_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STATE_EVENTID); /* peer delete response Event */ -#define WMITLV_TABLE_WMI_PEER_DELETE_RESP_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_delete_resp_event_fixed_param, wmi_peer_delete_resp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PEER_DELETE_RESP_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_delete_resp_event_fixed_param, wmi_peer_delete_resp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_DELETE_RESP_EVENTID); /* peer assoc conf Event */ -#define WMITLV_TABLE_WMI_PEER_ASSOC_CONF_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_assoc_conf_event_fixed_param, wmi_peer_assoc_conf_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PEER_ASSOC_CONF_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_assoc_conf_event_fixed_param, wmi_peer_assoc_conf_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ASSOC_CONF_EVENTID); /* D0-WOW Disable Ack event */ #define WMITLV_TABLE_WMI_D0_WOW_DISABLE_ACK_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_d0_wow_disable_ack_event_fixed_param, wmi_d0_wow_disable_ack_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_d0_wow_disable_ack_event_fixed_param, wmi_d0_wow_disable_ack_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_D0_WOW_DISABLE_ACK_EVENTID); /* Pdev get chip temperature event */ #define WMITLV_TABLE_WMI_PDEV_TEMPERATURE_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_temperature_event_fixed_param, wmi_pdev_temperature_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_temperature_event_fixed_param, wmi_pdev_temperature_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_TEMPERATURE_EVENTID); /* Pdev get ANT DIV feature status event */ -#define WMITLV_TABLE_WMI_PDEV_ANTDIV_STATUS_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_antdiv_status_event_fixed_param, wmi_pdev_antdiv_status_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PDEV_ANTDIV_STATUS_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_antdiv_status_event_fixed_param, wmi_pdev_antdiv_status_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_ANTDIV_STATUS_EVENTID); /* mDNS offload stats event */ #define WMITLV_TABLE_WMI_MDNS_STATS_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mdns_stats_event_fixed_param, wmi_mdns_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mdns_stats_event_fixed_param, wmi_mdns_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_MDNS_STATS_EVENTID); /* pdev resume event */ #define WMITLV_TABLE_WMI_PDEV_RESUME_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_resume_event_fixed_param, wmi_pdev_resume_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_resume_event_fixed_param, wmi_pdev_resume_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_RESUME_EVENTID); /* SAP Authentication offload event */ #define WMITLV_TABLE_WMI_SAP_OFL_ADD_STA_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sap_ofl_add_sta_event_fixed_param, wmi_sap_ofl_add_sta_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sap_ofl_add_sta_event_fixed_param, wmi_sap_ofl_add_sta_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_SAP_OFL_ADD_STA_EVENTID); #define WMITLV_TABLE_WMI_SAP_OFL_DEL_STA_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sap_ofl_del_sta_event_fixed_param, wmi_sap_ofl_del_sta_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sap_ofl_del_sta_event_fixed_param, wmi_sap_ofl_del_sta_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_SAP_OFL_DEL_STA_EVENTID); -/* Set OCB schedule cmd, DEPRECATED */ +/* Set OCB schedule event, DEPRECATED */ #define WMITLV_TABLE_WMI_OCB_SET_SCHED_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_ocb_set_sched_event_fixed_param, wmi_ocb_set_sched_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_ocb_set_sched_event_fixed_param, wmi_ocb_set_sched_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_OCB_SET_SCHED_EVENTID); /* Set OCB configuration response event */ #define WMITLV_TABLE_WMI_OCB_SET_CONFIG_RESP_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ocb_set_config_resp_event_fixed_param, wmi_ocb_set_config_resp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ocb_set_config_resp_event_fixed_param, wmi_ocb_set_config_resp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_OCB_SET_CONFIG_RESP_EVENTID); /* Get TSF timer response event */ #define WMITLV_TABLE_WMI_OCB_GET_TSF_TIMER_RESP_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ocb_get_tsf_timer_resp_event_fixed_param, wmi_ocb_get_tsf_timer_resp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ocb_get_tsf_timer_resp_event_fixed_param, wmi_ocb_get_tsf_timer_resp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_OCB_GET_TSF_TIMER_RESP_EVENTID); /* Get DCC stats response event */ #define WMITLV_TABLE_WMI_DCC_GET_STATS_RESP_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dcc_get_stats_resp_event_fixed_param, wmi_dcc_get_stats_resp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dcc_ndl_stats_per_channel, stats_per_channel_list, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dcc_get_stats_resp_event_fixed_param, wmi_dcc_get_stats_resp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dcc_ndl_stats_per_channel, stats_per_channel_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_DCC_GET_STATS_RESP_EVENTID); /* Update DCC NDL response event */ #define WMITLV_TABLE_WMI_DCC_UPDATE_NDL_RESP_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dcc_update_ndl_resp_event_fixed_param, wmi_dcc_update_ndl_resp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dcc_update_ndl_resp_event_fixed_param, wmi_dcc_update_ndl_resp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_DCC_UPDATE_NDL_RESP_EVENTID); /* DCC stats event */ #define WMITLV_TABLE_WMI_DCC_STATS_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dcc_stats_event_fixed_param, wmi_dcc_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dcc_ndl_stats_per_channel, stats_per_channel_list, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dcc_stats_event_fixed_param, wmi_dcc_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dcc_ndl_stats_per_channel, stats_per_channel_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_DCC_STATS_EVENTID); /* Read TSF timer response event */ @@ -3859,134 +3917,148 @@ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_tsf_report_event_fixed_para WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_TSF_REPORT_EVENTID); /* Vdev capabilities IE to be transmitted in mgmt frames */ -#define WMITLV_TABLE_WMI_VDEV_SET_IE_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_set_ie_cmd_fixed_param, wmi_vdev_set_ie_cmd_fixed_param, vdev_ie, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_VDEV_SET_IE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_set_ie_cmd_fixed_param, wmi_vdev_set_ie_cmd_fixed_param, vdev_ie, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_IE_CMDID); /* SOC Set Hardware Mode Response event - DEPRECATED */ -#define WMITLV_TABLE_WMI_SOC_SET_HW_MODE_RESP_EVENTID(id, op, buf, len) \ -WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_soc_set_hw_mode_response_event_fixed_param, wmi_soc_set_hw_mode_response_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ -WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_soc_set_hw_mode_response_vdev_mac_entry, wmi_soc_set_hw_mode_response_vdev_mac_mapping, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_SOC_SET_HW_MODE_RESP_EVENTID(id,op,buf,len) \ +WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_soc_set_hw_mode_response_event_fixed_param, wmi_soc_set_hw_mode_response_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ +WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_soc_set_hw_mode_response_vdev_mac_entry, wmi_soc_set_hw_mode_response_vdev_mac_mapping, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_SOC_SET_HW_MODE_RESP_EVENTID); /* PDEV Set Hardware Mode Response event */ -#define WMITLV_TABLE_WMI_PDEV_SET_HW_MODE_RESP_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_set_hw_mode_response_event_fixed_param, wmi_pdev_set_hw_mode_response_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ -WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_set_hw_mode_response_vdev_mac_entry, wmi_pdev_set_hw_mode_response_vdev_mac_mapping, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_PDEV_SET_HW_MODE_RESP_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_hw_mode_response_event_fixed_param, wmi_pdev_set_hw_mode_response_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_set_hw_mode_response_vdev_mac_entry, wmi_pdev_set_hw_mode_response_vdev_mac_mapping, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_HW_MODE_RESP_EVENTID); /* SOC Hardware Mode Transition event - DEPRECATED */ -#define WMITLV_TABLE_WMI_SOC_HW_MODE_TRANSITION_EVENTID(id, op, buf, len) \ -WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_soc_hw_mode_transition_event_fixed_param, wmi_soc_hw_mode_transition_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ -WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_soc_set_hw_mode_response_vdev_mac_entry, wmi_soc_set_hw_mode_response_vdev_mac_mapping, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_SOC_HW_MODE_TRANSITION_EVENTID(id,op,buf,len) \ +WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_soc_hw_mode_transition_event_fixed_param, wmi_soc_hw_mode_transition_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ +WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_soc_set_hw_mode_response_vdev_mac_entry, wmi_soc_set_hw_mode_response_vdev_mac_mapping, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_SOC_HW_MODE_TRANSITION_EVENTID); /* PDEV Hardware Mode Transition event */ -#define WMITLV_TABLE_WMI_PDEV_HW_MODE_TRANSITION_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_hw_mode_transition_event_fixed_param, wmi_pdev_hw_mode_transition_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_set_hw_mode_response_vdev_mac_entry, wmi_pdev_set_hw_mode_response_vdev_mac_mapping, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_PDEV_HW_MODE_TRANSITION_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_hw_mode_transition_event_fixed_param, wmi_pdev_hw_mode_transition_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_set_hw_mode_response_vdev_mac_entry, wmi_pdev_set_hw_mode_response_vdev_mac_mapping, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_HW_MODE_TRANSITION_EVENTID); /* SOC Set Dual MAC Config Response event - DEPRECATED */ -#define WMITLV_TABLE_WMI_SOC_SET_DUAL_MAC_CONFIG_RESP_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_soc_set_dual_mac_config_response_event_fixed_param, wmi_soc_set_dual_mac_config_response_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_SOC_SET_DUAL_MAC_CONFIG_RESP_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_soc_set_dual_mac_config_response_event_fixed_param, wmi_soc_set_dual_mac_config_response_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_SOC_SET_DUAL_MAC_CONFIG_RESP_EVENTID); /* PDEV Set Dual MAC Config Response event */ -#define WMITLV_TABLE_WMI_PDEV_SET_MAC_CONFIG_RESP_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_set_mac_config_response_event_fixed_param, wmi_pdev_set_mac_config_response_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PDEV_SET_MAC_CONFIG_RESP_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_mac_config_response_event_fixed_param, wmi_pdev_set_mac_config_response_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_MAC_CONFIG_RESP_EVENTID); /* Packet Filter configure command*/ -#define WMITLV_TABLE_WMI_PACKET_FILTER_CONFIG_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_packet_filter_config_fixed_param, WMI_PACKET_FILTER_CONFIG_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PACKET_FILTER_CONFIG_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_packet_filter_config_fixed_param, WMI_PACKET_FILTER_CONFIG_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PACKET_FILTER_CONFIG_CMDID); /* Packet Filter enable command*/ -#define WMITLV_TABLE_WMI_PACKET_FILTER_ENABLE_CMDID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_packet_filter_enable_fixed_param, WMI_PACKET_FILTER_ENABLE_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PACKET_FILTER_ENABLE_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_packet_filter_enable_fixed_param, WMI_PACKET_FILTER_ENABLE_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PACKET_FILTER_ENABLE_CMDID); /* MAWC enable/disable sensor event */ -#define WMITLV_TABLE_WMI_MAWC_ENABLE_SENSOR_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_mawc_enable_sensor_event_fixed_param, wmi_mawc_enable_sensor_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_MAWC_ENABLE_SENSOR_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mawc_enable_sensor_event_fixed_param, wmi_mawc_enable_sensor_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_MAWC_ENABLE_SENSOR_EVENTID); /* SMPS force mode complete Event */ -#define WMITLV_TABLE_WMI_STA_SMPS_FORCE_MODE_COMPLETE_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_sta_smps_force_mode_complete_event_fixed_param, wmi_sta_smps_force_mode_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_STA_SMPS_FORCE_MODE_COMPLETE_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_sta_smps_force_mode_complete_event_fixed_param, wmi_sta_smps_force_mode_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_STA_SMPS_FORCE_MODE_COMPLETE_EVENTID); /* bpf offload capability info event */ -#define WMITLV_TABLE_WMI_BPF_CAPABILIY_INFO_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_bpf_capability_info_evt_fixed_param, wmi_bpf_capability_info_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_BPF_CAPABILIY_INFO_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bpf_capability_info_evt_fixed_param, wmi_bpf_capability_info_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_BPF_CAPABILIY_INFO_EVENTID); /* bpf offload vdev status info event */ -#define WMITLV_TABLE_WMI_BPF_VDEV_STATS_INFO_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_bpf_vdev_stats_info_evt_fixed_param, wmi_bpf_vdev_stats_info_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_BPF_VDEV_STATS_INFO_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bpf_vdev_stats_info_evt_fixed_param, wmi_bpf_vdev_stats_info_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_BPF_VDEV_STATS_INFO_EVENTID); +/* Indicate new country code to host from 11d scan */ +#define WMITLV_TABLE_WMI_11D_NEW_COUNTRY_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_11d_new_country_event_fixed_param, wmi_11d_new_country_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_11D_NEW_COUNTRY_EVENTID); + +/* Regulatory channel list of current country code */ +#define WMITLV_TABLE_WMI_REG_CHAN_LIST_CC_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_reg_chan_list_cc_event_fixed_param, wmi_reg_chan_list_cc_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_regulatory_rule_struct, reg_rule_array, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_REG_CHAN_LIST_CC_EVENTID); + /* FIPS event */ -#define WMITLV_TABLE_WMI_PDEV_FIPS_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_fips_event_fixed_param, wmi_pdev_fips_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ -WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, data, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_PDEV_FIPS_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_fips_event_fixed_param, wmi_pdev_fips_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_FIPS_EVENTID); -#define WMITLV_TABLE_WMI_PDEV_CHANNEL_HOPPING_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_channel_hopping_event_fixed_param, wmi_pdev_channel_hopping_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PDEV_CHANNEL_HOPPING_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_channel_hopping_event_fixed_param, wmi_pdev_channel_hopping_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_CHANNEL_HOPPING_EVENTID); -#define WMITLV_TABLE_WMI_PDEV_ANI_CCK_LEVEL_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_ani_cck_event_fixed_param, wmi_ani_cck_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PDEV_ANI_CCK_LEVEL_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ani_cck_event_fixed_param, wmi_ani_cck_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_ANI_CCK_LEVEL_EVENTID); -#define WMITLV_TABLE_WMI_PDEV_CHIP_POWER_STATS_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_chip_power_stats_event_fixed_param, wmi_pdev_chip_power_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, debug_registers, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_PDEV_CHIP_POWER_STATS_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_chip_power_stats_event_fixed_param, wmi_pdev_chip_power_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, debug_registers, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_CHIP_POWER_STATS_EVENTID); - -#define WMITLV_TABLE_WMI_PDEV_ANI_OFDM_LEVEL_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_ani_ofdm_event_fixed_param, wmi_ani_ofdm_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PDEV_ANI_OFDM_LEVEL_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ani_ofdm_event_fixed_param, wmi_ani_ofdm_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_ANI_OFDM_LEVEL_EVENTID); -#define WMITLV_TABLE_WMI_PDEV_TPC_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_tpc_event_fixed_param, wmi_pdev_tpc_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)\ -WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tpc, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_PDEV_TPC_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_tpc_event_fixed_param, wmi_pdev_tpc_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tpc, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_TPC_EVENTID); -#define WMITLV_TABLE_WMI_PDEV_NFCAL_POWER_ALL_CHANNELS_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_event_fixed_param, wmi_pdev_nfcal_power_all_channels_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ -WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_nfcal_power_all_channels_nfdBr, nfdbr, WMITLV_SIZE_VAR) \ -WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_nfcal_power_all_channels_nfdBm, nfdbm, WMITLV_SIZE_VAR) \ -WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_nfcal_power_all_channels_freqNum, freqnum, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_PDEV_NFCAL_POWER_ALL_CHANNELS_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_event_fixed_param, wmi_pdev_nfcal_power_all_channels_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_nfcal_power_all_channels_nfdBr, nfdbr, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_nfcal_power_all_channels_nfdBm, nfdbm, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_nfcal_power_all_channels_freqNum, freqnum, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_NFCAL_POWER_ALL_CHANNELS_EVENTID); -#define WMITLV_TABLE_WMI_PEER_RATECODE_LIST_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_ratecode_list_event_fixed_param, wmi_peer_ratecode_list_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ -WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_cck_ofdm_rate_info, ratecode_legacy, WMITLV_SIZE_VAR) \ -WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_mcs_rate_info, ratecode_mcs, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_PEER_RATECODE_LIST_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_ratecode_list_event_fixed_param, wmi_peer_ratecode_list_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_cck_ofdm_rate_info, ratecode_legacy, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_mcs_rate_info, ratecode_mcs, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_RATECODE_LIST_EVENTID); -#define WMITLV_TABLE_WMI_WDS_PEER_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_wds_addr_event_fixed_param, wmi_wds_addr_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_WDS_PEER_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_wds_addr_event_fixed_param, wmi_wds_addr_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_WDS_PEER_EVENTID); -#define WMITLV_TABLE_WMI_PEER_STA_PS_STATECHG_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_sta_ps_statechange_event_fixed_param, wmi_peer_sta_ps_statechange_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PEER_STA_PS_STATECHG_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_sta_ps_statechange_event_fixed_param, wmi_peer_sta_ps_statechange_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STA_PS_STATECHG_EVENTID); -#define WMITLV_TABLE_WMI_INST_RSSI_STATS_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_inst_rssi_stats_resp_fixed_param, wmi_inst_rssi_stats_resp_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_INST_RSSI_STATS_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_inst_rssi_stats_resp_fixed_param, wmi_inst_rssi_stats_resp_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_INST_RSSI_STATS_EVENTID); -#define WMITLV_TABLE_WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_tx_power_level_stats_evt_fixed_param, wmi_tx_power_level_stats_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tx_time_per_power_level, WMITLV_SIZE_VAR) +#define WMITLV_TABLE_WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tx_power_level_stats_evt_fixed_param, wmi_tx_power_level_stats_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tx_time_per_power_level, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID); +#define WMITLV_TABLE_WMI_RMC_NEW_LEADER_EVENTID(id, op, buf, len) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_rmc_manual_leader_event_fixed_param, wmi_rmc_manual_leader_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_RMC_NEW_LEADER_EVENTID); + /* Layout of WMI_REPORT_STATS_EVENTID message: * fixed_param; * wmi_chan_cca_stats chan_cca_stats[]; Array length is specified by num_chan_cca_stats @@ -4012,7 +4084,7 @@ WMITLV_CREATE_PARAM_STRUC(WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID); * The time represented by each array element (i.e. histogram bin) is specified by tx_ppdu_delay_bin_size_ms. * Element 0 contains the count of PPDUs delayed by less than tx_ppdu_delay_bin_size_ms. * Element 1 contains the count of PPDUs delayed by more than 1x tx_ppdu_delay_bin_size_ms but less than 2x. - * Element tx_delay_array_len-1 contains the count of PPDUs delayed by + * Element tx_ppdu_delay_array_len-1 contains the count of PPDUs delayed by * >= tx_ppdu_delay_bin_size_ms * (tx_ppdu_delay_array_len-1) * wmi_peer_ac_rx_stats peer_ac_rx_stats[]; Array length is specified by num_peer_ac_rx_stats * wmi_rx_stats rx_stats[][]; Array length is num_peer_ac_rx_stats * WLAN_MAX_AC, array index is (peer_index * WLAN_MAX_AC + ac_index) @@ -4102,27 +4174,39 @@ WMITLV_CREATE_PARAM_STRUC(WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID); * 72. rx_mcs[1][3][] for peer Y, AC 3 **/ #define WMITLV_TABLE_WMI_REPORT_STATS_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_report_stats_event_fixed_param, wmi_report_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_chan_cca_stats, chan_cca_stats, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_signal_stats, peer_signal_stats, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_ac_tx_stats, peer_ac_tx_stats, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_tx_stats, tx_stats, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tx_mpdu_aggr, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tx_succ_mcs, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tx_fail_mcs, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tx_ppdu_delay, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_ac_rx_stats, peer_ac_rx_stats, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_rx_stats, rx_stats, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, rx_mpdu_aggr, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, rx_mcs, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_report_stats_event_fixed_param, wmi_report_stats_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_chan_cca_stats, chan_cca_stats, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_signal_stats, peer_signal_stats, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_ac_tx_stats, peer_ac_tx_stats, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_tx_stats, tx_stats, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tx_mpdu_aggr, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tx_succ_mcs, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tx_fail_mcs, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tx_ppdu_delay, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_ac_rx_stats, peer_ac_rx_stats, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_rx_stats, rx_stats, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, rx_mpdu_aggr, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, rx_mcs, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_REPORT_STATS_EVENTID); #define WMITLV_TABLE_WMI_VDEV_ENCRYPT_DECRYPT_DATA_RESP_EVENTID(id, op, buf, len) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_encrypt_decrypt_data_resp_event_fixed_param, wmi_vdev_encrypt_decrypt_data_resp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, enc80211_frame, WMITLV_SIZE_VAR) + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_encrypt_decrypt_data_resp_event_fixed_param, wmi_vdev_encrypt_decrypt_data_resp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, enc80211_frame, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_ENCRYPT_DECRYPT_DATA_RESP_EVENTID); +#define WMITLV_TABLE_WMI_PEER_STATS_INFO_EVENTID(id, op, buf, len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_stats_info_event_fixed_param, wmi_peer_stats_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_stats_info, peer_stats_info, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STATS_INFO_EVENTID); + +#define WMITLV_TABLE_WMI_PKGID_EVENTID(id, op, buf, len) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pkgid_event_fixed_param, wmi_pkgid_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_PKGID_EVENTID); + + #ifdef __cplusplus } #endif + #endif /*_WMI_TLV_DEFS_H_*/ + diff --git a/fw/wmi_tlv_helper.h b/fw/wmi_tlv_helper.h index 7631e5df9ec0..ca04d0865762 100644 --- a/fw/wmi_tlv_helper.h +++ b/fw/wmi_tlv_helper.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2014 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2016 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -24,7 +24,6 @@ * under proprietary terms before Copyright ownership was assigned * to the Linux Foundation. */ - #ifndef _WMI_TLV_HELPER_H_ #define _WMI_TLV_HELPER_H_ @@ -43,7 +42,7 @@ * (5) Either WMITLV_SIZE_FIX or WMITLV_SIZE_VAR to indicate if this TLV is variable size. * * Note: It is important that the last TLV_ELEM does not have the "\" character. - */ +*/ /* Size of the TLV Header which is the Tag and Length fields */ #define WMI_TLV_HDR_SIZE (1 * sizeof(A_UINT32)) @@ -76,19 +75,20 @@ typedef struct { A_UINT32 tag_struct_size; A_UINT32 tag_varied_size; A_UINT32 tag_array_size; - A_UINT32 cmd_num_tlv; + A_UINT32 cmd_num_tlv; } wmitlv_attributes_struc; + /* Template structure definition for a variable size array of UINT32 */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMI_TLVTAG_ARRAY_UINT32 */ - A_UINT32 uint32_array[1]; /* variable length Array of UINT32 */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMI_TLVTAG_ARRAY_UINT32 */ + A_UINT32 uint32_array[1]; /* variable length Array of UINT32 */ } wmitlv_array_uint32; /* Template structure definition for a variable size array of unknown structure */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMI_TLVTAG_ARRAY_STRUC */ - A_UINT32 struc_array[1]; /* variable length Array of structures */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMI_TLVTAG_ARRAY_STRUC */ + A_UINT32 struc_array[1]; /* variable length Array of structures */ } wmitlv_array_struc; /* @@ -97,64 +97,60 @@ typedef struct { */ #define WMITLV_ARR_SIZE_INVALID 0x1FE -#define WMITLV_GET_TAG_NUM_TLV_ATTRIB(wmi_cmd_event_id) \ - WMI_TLV_HLPR_NUM_TLVS_FOR_ ## wmi_cmd_event_id +#define WMITLV_GET_TAG_NUM_TLV_ATTRIB(wmi_cmd_event_id) \ + WMI_TLV_HLPR_NUM_TLVS_FOR_##wmi_cmd_event_id + void -wmitlv_set_static_param_tlv_buf(void *param_tlv_buf, - A_UINT32 max_tlvs_accomodated); +wmitlv_set_static_param_tlv_buf(void *param_tlv_buf, A_UINT32 max_tlvs_accomodated); void -wmitlv_free_allocated_command_tlvs(A_UINT32 cmd_id, void **wmi_cmd_struct_ptr); +wmitlv_free_allocated_command_tlvs( + A_UINT32 cmd_id, + void **wmi_cmd_struct_ptr); void -wmitlv_free_allocated_event_tlvs(A_UINT32 event_id, void **wmi_cmd_struct_ptr); +wmitlv_free_allocated_event_tlvs( + A_UINT32 event_id, + void **wmi_cmd_struct_ptr); int -wmitlv_check_command_tlv_params(void *os_ctx, void *param_struc_ptr, - A_UINT32 param_buf_len, - A_UINT32 wmi_cmd_event_id); +wmitlv_check_command_tlv_params( + void *os_ctx, void *param_struc_ptr, A_UINT32 param_buf_len, A_UINT32 wmi_cmd_event_id); int -wmitlv_check_event_tlv_params(void *os_ctx, void *param_struc_ptr, - A_UINT32 param_buf_len, - A_UINT32 wmi_cmd_event_id); +wmitlv_check_event_tlv_params( + void *os_ctx, void *param_struc_ptr, A_UINT32 param_buf_len, A_UINT32 wmi_cmd_event_id); int -wmitlv_check_and_pad_command_tlvs(void *os_ctx, void *param_struc_ptr, - A_UINT32 param_buf_len, - A_UINT32 wmi_cmd_event_id, - void **wmi_cmd_struct_ptr); +wmitlv_check_and_pad_command_tlvs( + void *os_ctx, void *param_struc_ptr, A_UINT32 param_buf_len, A_UINT32 wmi_cmd_event_id, void **wmi_cmd_struct_ptr); int -wmitlv_check_and_pad_event_tlvs(void *os_ctx, void *param_struc_ptr, - A_UINT32 param_buf_len, - A_UINT32 wmi_cmd_event_id, - void **wmi_cmd_struct_ptr); +wmitlv_check_and_pad_event_tlvs( + void *os_ctx, void *param_struc_ptr, A_UINT32 param_buf_len, A_UINT32 wmi_cmd_event_id, void **wmi_cmd_struct_ptr); /** This structure is the element for the Version WhiteList * table. */ typedef struct { - A_UINT32 major; - A_UINT32 minor; - A_UINT32 namespace_0; - A_UINT32 namespace_1; - A_UINT32 namespace_2; - A_UINT32 namespace_3; + A_UINT32 major; + A_UINT32 minor; + A_UINT32 namespace_0; + A_UINT32 namespace_1; + A_UINT32 namespace_2; + A_UINT32 namespace_3; } wmi_whitelist_version_info; -struct _wmi_abi_version; /* Forward declaration to make the ARM compiler happy */ +struct _wmi_abi_version; /* Forward declaration to make the ARM compiler happy */ int -wmi_cmp_and_set_abi_version(int num_whitelist, - wmi_whitelist_version_info * - version_whitelist_table, - struct _wmi_abi_version *my_vers, - struct _wmi_abi_version *opp_vers, - struct _wmi_abi_version *out_vers); +wmi_cmp_and_set_abi_version(int num_whitelist, wmi_whitelist_version_info *version_whitelist_table, + struct _wmi_abi_version *my_vers, + struct _wmi_abi_version *opp_vers, + struct _wmi_abi_version *out_vers); int -wmi_versions_are_compatible(struct _wmi_abi_version *vers1, - struct _wmi_abi_version *vers2); +wmi_versions_are_compatible(struct _wmi_abi_version *vers1, struct _wmi_abi_version *vers2); #endif /*_WMI_TLV_HELPER_H_*/ + diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index a6fa37d75ec1..c6520b8ab1cc 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2010-2016 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -27,7 +27,7 @@ /** * @addtogroup WMIAPI - ***@{ + *@{ */ /** @file @@ -63,52 +63,51 @@ #ifndef _WMI_UNIFIED_H_ #define _WMI_UNIFIED_H_ + #ifdef __cplusplus extern "C" { #endif #include #include -#include #define ATH_MAC_LEN 6 /**< length of MAC in bytes */ -#define WMI_EVENT_STATUS_SUCCESS 0 /* Success return status to host */ -#define WMI_EVENT_STATUS_FAILURE 1 /* Failure return status to host */ +#define WMI_EVENT_STATUS_SUCCESS 0 /* Success return status to host */ +#define WMI_EVENT_STATUS_FAILURE 1 /* Failure return status to host */ -#define MAX_TX_RATE_VALUES 10 /*Max Tx Rates */ -#define MAX_RSSI_VALUES 10 /*Max Rssi values */ +#define MAX_TX_RATE_VALUES 10 /*Max Tx Rates*/ +#define MAX_RSSI_VALUES 10 /*Max Rssi values*/ #define WMI_MAX_CHAINS 8 /* The WLAN_MAX_AC macro cannot be changed without breaking - * WMI compatibility. - * The maximum value of access category - */ + WMI compatibility. */ +/* The maximum value of access category */ #define WLAN_MAX_AC 4 /* * These don't necessarily belong here; but as the MS/SM macros require * ar6000_internal.h to be included, it may not be defined as yet. */ -#define WMI_F_MS(_v, _f) \ - (((_v) & (_f)) >> (_f ## _S)) +#define WMI_F_MS(_v, _f) \ + (((_v) & (_f)) >> (_f##_S)) /* * This breaks the "good macro practice" of only referencing each * macro field once (to avoid things like field++ from causing issues.) */ -#define WMI_F_RMW(_var, _v, _f) \ - do { \ - (_var) &= ~(_f); \ - (_var) |= (((_v) << (_f ## _S)) & (_f)); \ - } while (0) +#define WMI_F_RMW(_var, _v, _f) \ + do { \ + (_var) &= ~(_f); \ + (_var) |= (((_v) << (_f##_S)) & (_f)); \ + } while (0) -#define WMI_GET_BITS(_val, _index, _num_bits) \ - (((_val) >> (_index)) & ((1 << (_num_bits)) - 1)) +#define WMI_GET_BITS(_val,_index,_num_bits) \ + (((_val) >> (_index)) & ((1 << (_num_bits)) - 1)) -#define WMI_SET_BITS(_var, _index, _num_bits, _val) do { \ - (_var) &= ~(((1 << (_num_bits)) - 1) << (_index)); \ - (_var) |= (((_val) & ((1 << (_num_bits)) - 1)) << (_index)); \ - } while (0) +#define WMI_SET_BITS(_var,_index,_num_bits,_val) do { \ + (_var) &= ~(((1 << (_num_bits)) - 1) << (_index)); \ + (_var) |= (((_val) & ((1 << (_num_bits)) - 1)) << (_index)); \ + } while (0) /** * A packed array is an array where each entry in the array is less than @@ -118,124 +117,128 @@ extern "C" { * The first 2 11-bit values will be stored in the first A_UINT32, * and the last 2 11-bit values will be stored in the second A_UINT32. */ -#define WMI_PACKED_ARR_SIZE(num_entries, bits_per_entry) \ - (((num_entries) / (32 / (bits_per_entry))) + \ - (((num_entries) % (32 / (bits_per_entry))) ? 1 : 0)) +#define WMI_PACKED_ARR_SIZE(num_entries,bits_per_entry) \ + (((num_entries) / (32 / (bits_per_entry))) + \ + (((num_entries) % (32 / (bits_per_entry))) ? 1 : 0)) + +#define WMI_RETURN_STRING(str) case ((str)): return (uint8_t *)(# str); static INLINE A_UINT32 wmi_packed_arr_get_bits(A_UINT32 *arr, - A_UINT32 entry_index, A_UINT32 bits_per_entry) + A_UINT32 entry_index, A_UINT32 bits_per_entry) { - A_UINT32 entries_per_uint = (32 / bits_per_entry); - A_UINT32 uint_index = (entry_index / entries_per_uint); - A_UINT32 num_entries_in_prev_uints = (uint_index * entries_per_uint); - A_UINT32 index_in_uint = (entry_index - num_entries_in_prev_uints); - A_UINT32 start_bit_in_uint = (index_in_uint * bits_per_entry); - return (arr[uint_index] >> start_bit_in_uint) & - ((1 << bits_per_entry) - 1); + A_UINT32 entries_per_uint = (32 / bits_per_entry); + A_UINT32 uint_index = (entry_index / entries_per_uint); + A_UINT32 num_entries_in_prev_uints = (uint_index * entries_per_uint); + A_UINT32 index_in_uint = (entry_index - num_entries_in_prev_uints); + A_UINT32 start_bit_in_uint = (index_in_uint * bits_per_entry); + return (arr[uint_index] >> start_bit_in_uint) & + ((1 << bits_per_entry) - 1); } static INLINE void wmi_packed_arr_set_bits(A_UINT32 *arr, A_UINT32 entry_index, - A_UINT32 bits_per_entry, A_UINT32 val) + A_UINT32 bits_per_entry, A_UINT32 val) { - A_UINT32 entries_per_uint = (32 / bits_per_entry); - A_UINT32 uint_index = (entry_index / entries_per_uint); - A_UINT32 num_entries_in_prev_uints = (uint_index * entries_per_uint); - A_UINT32 index_in_uint = (entry_index - num_entries_in_prev_uints); - A_UINT32 start_bit_in_uint = (index_in_uint * bits_per_entry); + A_UINT32 entries_per_uint = (32 / bits_per_entry); + A_UINT32 uint_index = (entry_index / entries_per_uint); + A_UINT32 num_entries_in_prev_uints = (uint_index * entries_per_uint); + A_UINT32 index_in_uint = (entry_index - num_entries_in_prev_uints); + A_UINT32 start_bit_in_uint = (index_in_uint * bits_per_entry); - arr[uint_index] &= ~(((1 << bits_per_entry) - 1) << start_bit_in_uint); - arr[uint_index] |= - ((val & ((1 << bits_per_entry) - 1)) << start_bit_in_uint); + arr[uint_index] &= ~(((1 << bits_per_entry) - 1) << start_bit_in_uint); + arr[uint_index] |= + ((val & ((1 << bits_per_entry) - 1)) << start_bit_in_uint); } /** 2 word representation of MAC addr */ typedef struct { - /** upper 4 bytes of MAC address */ - A_UINT32 mac_addr31to0; - /** lower 2 bytes of MAC address */ - A_UINT32 mac_addr47to32; + /** upper 4 bytes of MAC address */ + A_UINT32 mac_addr31to0; + /** lower 2 bytes of MAC address */ + A_UINT32 mac_addr47to32; } wmi_mac_addr; /** macro to convert MAC address from WMI word format to char array */ -#define WMI_MAC_ADDR_TO_CHAR_ARRAY(pwmi_mac_addr, c_macaddr) do { \ - (c_macaddr)[0] = ((pwmi_mac_addr)->mac_addr31to0) & 0xff; \ - (c_macaddr)[1] = (((pwmi_mac_addr)->mac_addr31to0) >> 8) & 0xff; \ - (c_macaddr)[2] = (((pwmi_mac_addr)->mac_addr31to0) >> 16) & 0xff; \ - (c_macaddr)[3] = (((pwmi_mac_addr)->mac_addr31to0) >> 24) & 0xff; \ - (c_macaddr)[4] = ((pwmi_mac_addr)->mac_addr47to32) & 0xff; \ - (c_macaddr)[5] = (((pwmi_mac_addr)->mac_addr47to32) >> 8) & 0xff; \ -} while (0) +#define WMI_MAC_ADDR_TO_CHAR_ARRAY(pwmi_mac_addr,c_macaddr) do { \ + (c_macaddr)[0] = (((pwmi_mac_addr)->mac_addr31to0) >> 0) & 0xff; \ + (c_macaddr)[1] = (((pwmi_mac_addr)->mac_addr31to0) >> 8) & 0xff; \ + (c_macaddr)[2] = (((pwmi_mac_addr)->mac_addr31to0) >> 16) & 0xff; \ + (c_macaddr)[3] = (((pwmi_mac_addr)->mac_addr31to0) >> 24) & 0xff; \ + (c_macaddr)[4] = (((pwmi_mac_addr)->mac_addr47to32) >> 0) & 0xff; \ + (c_macaddr)[5] = (((pwmi_mac_addr)->mac_addr47to32) >> 8) & 0xff; \ + } while (0) /** macro to convert MAC address from char array to WMI word format */ -#define WMI_CHAR_ARRAY_TO_MAC_ADDR(c_macaddr, pwmi_mac_addr) do { \ - (pwmi_mac_addr)->mac_addr31to0 = \ - ((c_macaddr)[0] | ((c_macaddr)[1] << 8) \ - | ((c_macaddr)[2] << 16) | ((c_macaddr)[3] << 24)); \ - (pwmi_mac_addr)->mac_addr47to32 = \ - ((c_macaddr)[4] | ((c_macaddr)[5] << 8)); \ -} while (0) +#define WMI_CHAR_ARRAY_TO_MAC_ADDR(c_macaddr,pwmi_mac_addr) do { \ + (pwmi_mac_addr)->mac_addr31to0 = \ + (((c_macaddr)[0] << 0) | \ + ((c_macaddr)[1] << 8) | \ + ((c_macaddr)[2] << 16) | \ + ((c_macaddr)[3] << 24)); \ + (pwmi_mac_addr)->mac_addr47to32 = ((c_macaddr)[4] | ((c_macaddr)[5] << 8));\ + } while (0) /* * wmi command groups. */ typedef enum { - /* 0 to 2 are reserved */ - WMI_GRP_START = 0x3, - WMI_GRP_SCAN = WMI_GRP_START, /* 0x3 */ - WMI_GRP_PDEV, /* 0x4 */ - WMI_GRP_VDEV, /* 0x5 */ - WMI_GRP_PEER, /* 0x6 */ - WMI_GRP_MGMT, /* 0x7 */ - WMI_GRP_BA_NEG, /* 0x8 */ - WMI_GRP_STA_PS, /* 0x9 */ - WMI_GRP_DFS, /* 0xa */ - WMI_GRP_ROAM, /* 0xb */ - WMI_GRP_OFL_SCAN, /* 0xc */ - WMI_GRP_P2P, /* 0xd */ - WMI_GRP_AP_PS, /* 0xe */ - WMI_GRP_RATE_CTRL, /* 0xf */ - WMI_GRP_PROFILE, /* 0x10 */ - WMI_GRP_SUSPEND, /* 0x11 */ - WMI_GRP_BCN_FILTER, /* 0x12 */ - WMI_GRP_WOW, /* 0x13 */ - WMI_GRP_RTT, /* 0x14 */ - WMI_GRP_SPECTRAL, /* 0x15 */ - WMI_GRP_STATS, /* 0x16 */ - WMI_GRP_ARP_NS_OFL, /* 0x17 */ - WMI_GRP_NLO_OFL, /* 0x18 */ - WMI_GRP_GTK_OFL, /* 0x19 */ - WMI_GRP_CSA_OFL, /* 0x1a */ - WMI_GRP_CHATTER, /* 0x1b */ - WMI_GRP_TID_ADDBA, /* 0x1c */ - WMI_GRP_MISC, /* 0x1d */ - WMI_GRP_GPIO, /* 0x1e */ - WMI_GRP_FWTEST, /* 0x1f */ - WMI_GRP_TDLS, /* 0x20 */ - WMI_GRP_RESMGR, /* 0x21 */ - WMI_GRP_STA_SMPS, /* 0x22 */ - WMI_GRP_WLAN_HB, /* 0x23 */ - WMI_GRP_RMC, /* 0x24 */ - WMI_GRP_MHF_OFL, /* 0x25 */ - WMI_GRP_LOCATION_SCAN, /* 0x26 */ - WMI_GRP_OEM, /* 0x27 */ - WMI_GRP_NAN, /* 0x28 */ - WMI_GRP_COEX, /* 0x29 */ - WMI_GRP_OBSS_OFL, /* 0x2a */ - WMI_GRP_LPI, /* 0x2b */ - WMI_GRP_EXTSCAN, /* 0x2c */ - WMI_GRP_DHCP_OFL, /* 0x2d */ - WMI_GRP_IPA, /* 0x2e */ - WMI_GRP_MDNS_OFL, /* 0x2f */ - WMI_GRP_SAP_OFL, /* 0x30 */ - WMI_GRP_OCB, /* 0x31 */ - WMI_GRP_SOC, /* 0x32 */ - WMI_GRP_PKT_FILTER, /* 0x33 */ - WMI_GRP_MAWC, /* 0x34 */ - WMI_GRP_PMF_OFFLOAD, /* 0x35 */ - WMI_GRP_BPF_OFFLOAD, /* 0x36 Berkeley Packet Filter */ - WMI_GRP_NAN_DATA, /* 0x37 */ - WMI_GRP_PROTOTYPE, /* 0x38 */ - WMI_GRP_MONITOR, /* 0x39 */ + /* 0 to 2 are reserved */ + WMI_GRP_START = 0x3, + WMI_GRP_SCAN = WMI_GRP_START, /* 0x3 */ + WMI_GRP_PDEV, /* 0x4 */ + WMI_GRP_VDEV, /* 0x5 */ + WMI_GRP_PEER, /* 0x6 */ + WMI_GRP_MGMT, /* 0x7 */ + WMI_GRP_BA_NEG, /* 0x8 */ + WMI_GRP_STA_PS, /* 0x9 */ + WMI_GRP_DFS, /* 0xa */ + WMI_GRP_ROAM, /* 0xb */ + WMI_GRP_OFL_SCAN, /* 0xc */ + WMI_GRP_P2P, /* 0xd */ + WMI_GRP_AP_PS, /* 0xe */ + WMI_GRP_RATE_CTRL, /* 0xf */ + WMI_GRP_PROFILE, /* 0x10 */ + WMI_GRP_SUSPEND, /* 0x11 */ + WMI_GRP_BCN_FILTER, /* 0x12 */ + WMI_GRP_WOW, /* 0x13 */ + WMI_GRP_RTT, /* 0x14 */ + WMI_GRP_SPECTRAL, /* 0x15 */ + WMI_GRP_STATS, /* 0x16 */ + WMI_GRP_ARP_NS_OFL, /* 0x17 */ + WMI_GRP_NLO_OFL, /* 0x18 */ + WMI_GRP_GTK_OFL, /* 0x19 */ + WMI_GRP_CSA_OFL, /* 0x1a */ + WMI_GRP_CHATTER, /* 0x1b */ + WMI_GRP_TID_ADDBA, /* 0x1c */ + WMI_GRP_MISC, /* 0x1d */ + WMI_GRP_GPIO, /* 0x1e */ + WMI_GRP_FWTEST, /* 0x1f */ + WMI_GRP_TDLS, /* 0x20 */ + WMI_GRP_RESMGR, /* 0x21 */ + WMI_GRP_STA_SMPS, /* 0x22 */ + WMI_GRP_WLAN_HB, /* 0x23 */ + WMI_GRP_RMC, /* 0x24 */ + WMI_GRP_MHF_OFL, /* 0x25 */ + WMI_GRP_LOCATION_SCAN, /* 0x26 */ + WMI_GRP_OEM, /* 0x27 */ + WMI_GRP_NAN, /* 0x28 */ + WMI_GRP_COEX, /* 0x29 */ + WMI_GRP_OBSS_OFL, /* 0x2a */ + WMI_GRP_LPI, /* 0x2b */ + WMI_GRP_EXTSCAN, /* 0x2c */ + WMI_GRP_DHCP_OFL, /* 0x2d */ + WMI_GRP_IPA, /* 0x2e */ + WMI_GRP_MDNS_OFL, /* 0x2f */ + WMI_GRP_SAP_OFL, /* 0x30 */ + WMI_GRP_OCB, /* 0x31 */ + WMI_GRP_SOC, /* 0x32 */ + WMI_GRP_PKT_FILTER, /* 0x33 */ + WMI_GRP_MAWC, /* 0x34 */ + WMI_GRP_PMF_OFFLOAD, /* 0x35 */ + WMI_GRP_BPF_OFFLOAD, /* 0x36 Berkeley Packet Filter */ + WMI_GRP_NAN_DATA, /* 0x37 */ + WMI_GRP_PROTOTYPE, /* 0x38 */ + WMI_GRP_MONITOR, /* 0x39 */ + WMI_GRP_REGULATORY, /* 0x3a */ } WMI_GRP_ID; #define WMI_CMD_GRP_START_ID(grp_id) (((grp_id) << 12) | 0x1) @@ -245,1240 +248,1219 @@ typedef enum { * Command IDs and commange events */ typedef enum { - /** initialize the wlan sub system */ - WMI_INIT_CMDID = 0x1, - - /* Scan specific commands */ - - /** start scan request to FW */ - WMI_START_SCAN_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_SCAN), - /** stop scan request to FW */ - WMI_STOP_SCAN_CMDID, - /** full list of channels as defined by the regulatory that will be used by scanner */ - WMI_SCAN_CHAN_LIST_CMDID, - /** overwrite default priority table in scan scheduler */ - WMI_SCAN_SCH_PRIO_TBL_CMDID, - /** This command to adjust the priority and min.max_rest_time - * of an on ongoing scan request. - */ - WMI_SCAN_UPDATE_REQUEST_CMDID, - - /** set OUI to be used in probe request if enabled */ - WMI_SCAN_PROB_REQ_OUI_CMDID, - /** config adaptive dwell scan */ - WMI_SCAN_ADAPTIVE_DWELL_CONFIG_CMDID, - - /* PDEV(physical device) specific commands */ - /** set regulatorty ctl id used by FW to determine the exact ctl power limits */ - WMI_PDEV_SET_REGDOMAIN_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_PDEV), - /** set channel. mainly used for supporting monitor mode */ - WMI_PDEV_SET_CHANNEL_CMDID, - /** set pdev specific parameters */ - WMI_PDEV_SET_PARAM_CMDID, - /** enable packet log */ - WMI_PDEV_PKTLOG_ENABLE_CMDID, - /** disable packet log*/ - WMI_PDEV_PKTLOG_DISABLE_CMDID, - /** set wmm parameters */ - WMI_PDEV_SET_WMM_PARAMS_CMDID, - /** set HT cap ie that needs to be carried probe requests HT/VHT channels */ - WMI_PDEV_SET_HT_CAP_IE_CMDID, - /** set VHT cap ie that needs to be carried on probe requests on VHT channels */ - WMI_PDEV_SET_VHT_CAP_IE_CMDID, - - /** Command to send the DSCP-to-TID map to the target */ - WMI_PDEV_SET_DSCP_TID_MAP_CMDID, - /** set quiet ie parameters. primarily used in AP mode */ - WMI_PDEV_SET_QUIET_MODE_CMDID, - /** Enable/Disable Green AP Power Save */ - WMI_PDEV_GREEN_AP_PS_ENABLE_CMDID, - /** get TPC config for the current operating channel */ - WMI_PDEV_GET_TPC_CONFIG_CMDID, - - /** set the base MAC address for the physical device before a VDEV is created. - * For firmware that doesn't support this feature and this command, the pdev - * MAC address will not be changed. */ - WMI_PDEV_SET_BASE_MACADDR_CMDID, - - /* eeprom content dump , the same to bdboard data */ - WMI_PDEV_DUMP_CMDID, - /* set LED configuration */ - WMI_PDEV_SET_LED_CONFIG_CMDID, - /* Get Current temprature of chip in Celcius degree */ - WMI_PDEV_GET_TEMPERATURE_CMDID, - /* Set LED flashing behavior */ - WMI_PDEV_SET_LED_FLASHING_CMDID, - /** Enable/Disable Smart Antenna */ - WMI_PDEV_SMART_ANT_ENABLE_CMDID, - /** Set Smart Antenna RX antenna*/ - WMI_PDEV_SMART_ANT_SET_RX_ANTENNA_CMDID, - /** Override the antenna switch table */ - WMI_PDEV_SET_ANTENNA_SWITCH_TABLE_CMDID, - /** Override the CTL table */ - WMI_PDEV_SET_CTL_TABLE_CMDID, - /** Override the array gain table */ - WMI_PDEV_SET_MIMOGAIN_TABLE_CMDID, - /** FIPS test mode command */ - WMI_PDEV_FIPS_CMDID, - /** get CCK ANI level */ - WMI_PDEV_GET_ANI_CCK_CONFIG_CMDID, - /** get OFDM ANI level */ - WMI_PDEV_GET_ANI_OFDM_CONFIG_CMDID, - /** NF Cal Power dBr/dBm */ - WMI_PDEV_GET_NFCAL_POWER_CMDID, - /** TxPPDU TPC */ - WMI_PDEV_GET_TPC_CMDID, - /* Set to enable MIB stats collection */ - WMI_MIB_STATS_ENABLE_CMDID, - - /** Set preferred channel list for DBS Mgr */ - WMI_PDEV_SET_PCL_CMDID, - /** Set HW mode. Eg: single MAC, DBS & SBS, - * see soc_hw_mode_t for values - */ - WMI_PDEV_SET_HW_MODE_CMDID, - /** Set DFS, SCAN modes and other FW configurations */ - WMI_PDEV_SET_MAC_CONFIG_CMDID, - /** Set per band and per pdev antenna chains */ - WMI_PDEV_SET_ANTENNA_MODE_CMDID, - /** Periodic channel stats request command */ - WMI_SET_PERIODIC_CHANNEL_STATS_CONFIG_CMDID, - /** WMI command for power debug framework */ - WMI_PDEV_WAL_POWER_DEBUG_CMDID, - /** set per-AC rx reorder timeouts */ - WMI_PDEV_SET_REORDER_TIMEOUT_VAL_CMDID, - /** WMI command for WOW gpio and type */ - WMI_PDEV_SET_WAKEUP_CONFIG_CMDID, - /* Get current ANT's per chain's RSSI info */ - WMI_PDEV_GET_ANTDIV_STATUS_CMDID, - /** WMI command for getting Chip Power Stats */ - WMI_PDEV_GET_CHIP_POWER_STATS_CMDID, - /** set stats reporting thresholds - see WMI_REPORT_STATS_EVENTID */ - WMI_PDEV_SET_STATS_THRESHOLD_CMDID, - - /* VDEV (virtual device) specific commands */ - /** vdev create */ - WMI_VDEV_CREATE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_VDEV), - /** vdev delete */ - WMI_VDEV_DELETE_CMDID, - /** vdev start request */ - WMI_VDEV_START_REQUEST_CMDID, - /** vdev restart request (RX only, NO TX, used for CAC period)*/ - WMI_VDEV_RESTART_REQUEST_CMDID, - /** vdev up request */ - WMI_VDEV_UP_CMDID, - /** vdev stop request */ - WMI_VDEV_STOP_CMDID, - /** vdev down request */ - WMI_VDEV_DOWN_CMDID, - /* set a vdev param */ - WMI_VDEV_SET_PARAM_CMDID, - /* set a key (used for setting per peer unicast and per vdev multicast) */ - WMI_VDEV_INSTALL_KEY_CMDID, - - /* wnm sleep mode command */ - WMI_VDEV_WNM_SLEEPMODE_CMDID, - WMI_VDEV_WMM_ADDTS_CMDID, - WMI_VDEV_WMM_DELTS_CMDID, - WMI_VDEV_SET_WMM_PARAMS_CMDID, - WMI_VDEV_SET_GTX_PARAMS_CMDID, - WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMDID, - - WMI_VDEV_PLMREQ_START_CMDID, - WMI_VDEV_PLMREQ_STOP_CMDID, - /* TSF timestamp action for specified vdev */ - WMI_VDEV_TSF_TSTAMP_ACTION_CMDID, - /* - * set the additional IEs in probe requests for scan or - * assoc req etc for frames FW locally generates - */ - WMI_VDEV_SET_IE_CMDID, - - WMI_VDEV_RATEMASK_CMDID, - /** ATF VDEV REQUEST commands. */ - WMI_VDEV_ATF_REQUEST_CMDID, - /** Command to send the DSCP-to-TID map to the target for VAP */ - WMI_VDEV_SET_DSCP_TID_MAP_CMDID, - /* - * Configure filter for Neighbor Rx Pkt - * (smart mesh selective listening) - */ - WMI_VDEV_FILTER_NEIGHBOR_RX_PACKETS_CMDID, - /** set quiet ie parameters. primarily used in AP mode */ - WMI_VDEV_SET_QUIET_MODE_CMDID, - /** To set custom aggregation size for per vdev */ - WMI_VDEV_SET_CUSTOM_AGGR_SIZE_CMDID, - - /* DISA feature: Encrypt-decrypt data request */ - WMI_VDEV_ENCRYPT_DECRYPT_DATA_REQ_CMDID, - - /* peer specific commands */ - - /** create a peer */ - WMI_PEER_CREATE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_PEER), - /** delete a peer */ - WMI_PEER_DELETE_CMDID, - /** flush specific tid queues of a peer */ - WMI_PEER_FLUSH_TIDS_CMDID, - /** set a parameter of a peer */ - WMI_PEER_SET_PARAM_CMDID, - /** set peer to associated state. will cary all parameters determined during assocication time */ - WMI_PEER_ASSOC_CMDID, - /**add a wds (4 address ) entry. used only for testing WDS feature on AP products */ - WMI_PEER_ADD_WDS_ENTRY_CMDID, - /**remove wds (4 address ) entry. used only for testing WDS feature on AP products */ - WMI_PEER_REMOVE_WDS_ENTRY_CMDID, - /** set up mcast group infor for multicast to unicast conversion */ - WMI_PEER_MCAST_GROUP_CMDID, - /** request peer info from FW. FW shall respond with PEER_INFO_EVENTID */ - WMI_PEER_INFO_REQ_CMDID, - - /** request the estimated link speed for the peer. FW shall respond with - * WMI_PEER_ESTIMATED_LINKSPEED_EVENTID. - */ - WMI_PEER_GET_ESTIMATED_LINKSPEED_CMDID, - /* - * Set the conditions to report peer justified rate to driver - * The justified rate means the the user-rate is justified by PER. - */ - WMI_PEER_SET_RATE_REPORT_CONDITION_CMDID, - /** update a wds (4 address) entry */ - WMI_PEER_UPDATE_WDS_ENTRY_CMDID, - /** add a proxy sta entry */ - WMI_PEER_ADD_PROXY_STA_ENTRY_CMDID, - /** Set Smart Antenna TX antenna */ - WMI_PEER_SMART_ANT_SET_TX_ANTENNA_CMDID, - /** Set Smart Antenna TX train info */ - WMI_PEER_SMART_ANT_SET_TRAIN_INFO_CMDID, - /** Set SA node config options */ - WMI_PEER_SMART_ANT_SET_NODE_CONFIG_OPS_CMDID, - /** ATF PEER REQUEST commands */ - WMI_PEER_ATF_REQUEST_CMDID, - /** bandwidth fairness (BWF) peer configuration request command */ - WMI_PEER_BWF_REQUEST_CMDID, - /** rx reorder queue setup for peer/tid */ - WMI_PEER_REORDER_QUEUE_SETUP_CMDID, - /** rx reorder queue remove for peer/tid */ - WMI_PEER_REORDER_QUEUE_REMOVE_CMDID, - /** specify a limit for rx A-MPDU block size */ - WMI_PEER_SET_RX_BLOCKSIZE_CMDID, - /** - * request peer antdiv info from FW. FW shall respond with - * PEER_ANTDIV_INFO_EVENTID - */ - WMI_PEER_ANTDIV_INFO_REQ_CMDID, - - - /* beacon/management specific commands */ - - /** transmit beacon by reference . used for transmitting beacon on low latency interface like pcie */ - WMI_BCN_TX_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_MGMT), - /** transmit beacon by value */ - WMI_PDEV_SEND_BCN_CMDID, - /** set the beacon template. used in beacon offload mode to setup the - * the common beacon template with the FW to be used by FW to generate beacons */ - WMI_BCN_TMPL_CMDID, - /** set beacon filter with FW */ - WMI_BCN_FILTER_RX_CMDID, - /* enable/disable filtering of probe requests in the firmware */ - WMI_PRB_REQ_FILTER_RX_CMDID, - /** transmit management frame by value. will be deprecated */ - WMI_MGMT_TX_CMDID, - /** set the probe response template. used in beacon offload mode to setup the - * the common probe response template with the FW to be used by FW to generate - * probe responses */ - WMI_PRB_TMPL_CMDID, - /** Transmit Mgmt frame by reference */ - WMI_MGMT_TX_SEND_CMDID, - - /** commands to directly control ba negotiation directly from host. only used in test mode */ - - /** turn off FW Auto addba mode and let host control addba */ - WMI_ADDBA_CLEAR_RESP_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_BA_NEG), - /** send add ba request */ - WMI_ADDBA_SEND_CMDID, - WMI_ADDBA_STATUS_CMDID, - /** send del ba */ - WMI_DELBA_SEND_CMDID, - /** set add ba response will be used by FW to generate addba response*/ - WMI_ADDBA_SET_RESP_CMDID, - /** send single VHT MPDU with AMSDU */ - WMI_SEND_SINGLEAMSDU_CMDID, - - /** Station power save specific config */ - /** enable/disable station powersave */ - WMI_STA_POWERSAVE_MODE_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_STA_PS), - /** set station power save specific parameter */ - WMI_STA_POWERSAVE_PARAM_CMDID, - /** set station mimo powersave mode */ - WMI_STA_MIMO_PS_MODE_CMDID, - - /** DFS-specific commands */ - /** enable DFS (radar detection)*/ - WMI_PDEV_DFS_ENABLE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_DFS), - /** disable DFS (radar detection)*/ - WMI_PDEV_DFS_DISABLE_CMDID, - /** enable DFS phyerr/parse filter offload */ - WMI_DFS_PHYERR_FILTER_ENA_CMDID, - /** enable DFS phyerr/parse filter offload */ - WMI_DFS_PHYERR_FILTER_DIS_CMDID, - /** enable DFS phyerr processing offload */ - WMI_PDEV_DFS_PHYERR_OFFLOAD_ENABLE_CMDID, - /** disable DFS phyerr processing offload */ - WMI_PDEV_DFS_PHYERR_OFFLOAD_DISABLE_CMDID, - /** set ADFS channel config */ - WMI_VDEV_ADFS_CH_CFG_CMDID, - /** abort ADFS off-channel-availability-check currently in progress */ - WMI_VDEV_ADFS_OCAC_ABORT_CMDID, - - /* Roaming specific commands */ - /** set roam scan mode */ - WMI_ROAM_SCAN_MODE = WMI_CMD_GRP_START_ID(WMI_GRP_ROAM), - /** set roam scan rssi threshold below which roam scan is enabled */ - WMI_ROAM_SCAN_RSSI_THRESHOLD, - /** set roam scan period for periodic roam scan mode */ - WMI_ROAM_SCAN_PERIOD, - /** set roam scan trigger rssi change threshold */ - WMI_ROAM_SCAN_RSSI_CHANGE_THRESHOLD, - /** set roam AP profile */ - WMI_ROAM_AP_PROFILE, - /** set channel list for roam scans */ - WMI_ROAM_CHAN_LIST, - /** Stop scan command */ - WMI_ROAM_SCAN_CMD, - /** roaming sme offload sync complete */ - WMI_ROAM_SYNCH_COMPLETE, - /** set ric request element for 11r roaming */ - WMI_ROAM_SET_RIC_REQUEST_CMDID, - /** Invoke roaming forcefully */ - WMI_ROAM_INVOKE_CMDID, - /** roaming filter cmd to allow further filtering of roaming candidate */ - WMI_ROAM_FILTER_CMDID, - /** set gateway ip, mac and retries for subnet change detection */ - WMI_ROAM_SUBNET_CHANGE_CONFIG_CMDID, - /** configure thresholds for MAWC */ - WMI_ROAM_CONFIGURE_MAWC_CMDID, - /** configure MultiBand Operation(refer WFA MBO spec) parameter */ - WMI_ROAM_SET_MBO_PARAM_CMDID, /* DEPRECATED */ - - /** offload scan specific commands */ - /** set offload scan AP profile */ - WMI_OFL_SCAN_ADD_AP_PROFILE = - WMI_CMD_GRP_START_ID(WMI_GRP_OFL_SCAN), - /** remove offload scan AP profile */ - WMI_OFL_SCAN_REMOVE_AP_PROFILE, - /** set offload scan period */ - WMI_OFL_SCAN_PERIOD, - - /* P2P specific commands */ - /**set P2P device info. FW will used by FW to create P2P IE to be carried in probe response - * generated during p2p listen and for p2p discoverability */ - WMI_P2P_DEV_SET_DEVICE_INFO = WMI_CMD_GRP_START_ID(WMI_GRP_P2P), - /** enable/disable p2p discoverability on STA/AP VDEVs */ - WMI_P2P_DEV_SET_DISCOVERABILITY, - /** set p2p ie to be carried in beacons generated by FW for GO */ - WMI_P2P_GO_SET_BEACON_IE, - /** set p2p ie to be carried in probe response frames generated by FW for GO */ - WMI_P2P_GO_SET_PROBE_RESP_IE, - /** set the vendor specific p2p ie data. FW will use this to parse the P2P NoA - * attribute in the beacons/probe responses received. - */ - WMI_P2P_SET_VENDOR_IE_DATA_CMDID, - /** set the configure of p2p find offload */ - WMI_P2P_DISC_OFFLOAD_CONFIG_CMDID, - /** set the vendor specific p2p ie data for p2p find offload using */ - WMI_P2P_DISC_OFFLOAD_APPIE_CMDID, - /** set the BSSID/device name pattern of p2p find offload */ - WMI_P2P_DISC_OFFLOAD_PATTERN_CMDID, - /** set OppPS related parameters **/ - WMI_P2P_SET_OPPPS_PARAM_CMDID, - /** set listen offload start related parameters */ - WMI_P2P_LISTEN_OFFLOAD_START_CMDID, - /** set listen offload stop related parameters */ - WMI_P2P_LISTEN_OFFLOAD_STOP_CMDID, - - /** AP power save specific config */ - /** set AP power save specific param */ - WMI_AP_PS_PEER_PARAM_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_AP_PS), - /** set AP UAPSD coex pecific param */ - WMI_AP_PS_PEER_UAPSD_COEX_CMDID, - - /** set Enhanced Green AP param */ - WMI_AP_PS_EGAP_PARAM_CMDID, - - /** Rate-control specific commands */ - WMI_PEER_RATE_RETRY_SCHED_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_RATE_CTRL), - - /** WLAN Profiling commands. */ - WMI_WLAN_PROFILE_TRIGGER_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_PROFILE), - WMI_WLAN_PROFILE_SET_HIST_INTVL_CMDID, - WMI_WLAN_PROFILE_GET_PROFILE_DATA_CMDID, - WMI_WLAN_PROFILE_ENABLE_PROFILE_ID_CMDID, - WMI_WLAN_PROFILE_LIST_PROFILE_ID_CMDID, - - /** Suspend resume command Ids */ - WMI_PDEV_SUSPEND_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_SUSPEND), - WMI_PDEV_RESUME_CMDID, - - /* Beacon filter commands */ - /** add a beacon filter */ - WMI_ADD_BCN_FILTER_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_BCN_FILTER), - /** remove a beacon filter */ - WMI_RMV_BCN_FILTER_CMDID, - - /* WOW Specific WMI commands */ - /** add pattern for awake */ - WMI_WOW_ADD_WAKE_PATTERN_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_WOW), - /** deleta a wake pattern */ - WMI_WOW_DEL_WAKE_PATTERN_CMDID, - /** enable/deisable wake event */ - WMI_WOW_ENABLE_DISABLE_WAKE_EVENT_CMDID, - /** enable WOW */ - WMI_WOW_ENABLE_CMDID, - /** host woke up from sleep event to FW. Generated in response to WOW Hardware event */ - WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID, - /* IOAC add keep alive cmd. */ - WMI_WOW_IOAC_ADD_KEEPALIVE_CMDID, - /* IOAC del keep alive cmd. */ - WMI_WOW_IOAC_DEL_KEEPALIVE_CMDID, - /* IOAC add pattern for awake */ - WMI_WOW_IOAC_ADD_WAKE_PATTERN_CMDID, - /* IOAC deleta a wake pattern */ - WMI_WOW_IOAC_DEL_WAKE_PATTERN_CMDID, - /* D0-WOW enable or disable cmd */ - WMI_D0_WOW_ENABLE_DISABLE_CMDID, - /* enable extend WoW */ - WMI_EXTWOW_ENABLE_CMDID, - /* Extend WoW command to configure app type1 parameter */ - WMI_EXTWOW_SET_APP_TYPE1_PARAMS_CMDID, - /* Extend WoW command to configure app type2 parameter */ - WMI_EXTWOW_SET_APP_TYPE2_PARAMS_CMDID, - /* enable ICMPv6 Network advertisement filtering */ - WMI_WOW_ENABLE_ICMPV6_NA_FLT_CMDID, - /* - * Set a pattern to match UDP packet in WOW mode. - * If match, construct a tx frame in a local buffer - * to send through the peer AP to the entity in the - * IP network that sent the UDP packet to this STA. - */ - WMI_WOW_UDP_SVC_OFLD_CMDID, - - /* configure WOW host wakeup PIN pattern */ - WMI_WOW_HOSTWAKEUP_GPIO_PIN_PATTERN_CONFIG_CMDID, - - /* Set which action category should wake the host from suspend */ - WMI_WOW_SET_ACTION_WAKE_UP_CMDID, - - /* RTT measurement related cmd */ - /** request to make an RTT measurement */ - WMI_RTT_MEASREQ_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_RTT), - /** request to report a tsf measurement */ - WMI_RTT_TSF_CMDID, - - /** spectral scan command */ - /** configure spectral scan */ - WMI_VDEV_SPECTRAL_SCAN_CONFIGURE_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_SPECTRAL), - /** enable/disable spectral scan and trigger */ - WMI_VDEV_SPECTRAL_SCAN_ENABLE_CMDID, - - /* F/W stats */ - /** one time request for stats */ - WMI_REQUEST_STATS_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_STATS), - /** Push MCC Adaptive Scheduler Stats to Firmware */ - WMI_MCC_SCHED_TRAFFIC_STATS_CMDID, - /** one time request for txrx stats */ - WMI_REQUEST_STATS_EXT_CMDID, - - /* Link Layer stats */ - /** Request for link layer stats */ - WMI_REQUEST_LINK_STATS_CMDID, - /** Request for setting params to link layer stats */ - WMI_START_LINK_STATS_CMDID, - /** Request to clear stats*/ - WMI_CLEAR_LINK_STATS_CMDID, - - /** Request for getting the Firmware Memory Dump */ - WMI_GET_FW_MEM_DUMP_CMDID, - - /** Request to flush of the buffered debug messages */ - WMI_DEBUG_MESG_FLUSH_CMDID, - - /** Cmd to configure the verbose level */ - WMI_DIAG_EVENT_LOG_CONFIG_CMDID, - - /** One time request for wlan stats */ - WMI_REQUEST_WLAN_STATS_CMDID, - - /** Request for getting RCPI of peer */ - WMI_REQUEST_RCPI_CMDID, - - /** ARP OFFLOAD REQUEST*/ - WMI_SET_ARP_NS_OFFLOAD_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_ARP_NS_OFL), - - /** Proactive ARP Response Add Pattern Command*/ - WMI_ADD_PROACTIVE_ARP_RSP_PATTERN_CMDID, - - /** Proactive ARP Response Del Pattern Command*/ - WMI_DEL_PROACTIVE_ARP_RSP_PATTERN_CMDID, - - /** NS offload config*/ - WMI_NETWORK_LIST_OFFLOAD_CONFIG_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_NLO_OFL), - - /** APFIND Config */ - WMI_APFIND_CMDID, - - /** Passpoint list config */ - WMI_PASSPOINT_LIST_CONFIG_CMDID, - - /** configure supprssing parameters for MAWC */ - WMI_NLO_CONFIGURE_MAWC_CMDID, - - /* GTK offload Specific WMI commands */ - WMI_GTK_OFFLOAD_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_GTK_OFL), - - /* CSA offload Specific WMI commands */ - /** csa offload enable */ - WMI_CSA_OFFLOAD_ENABLE_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_CSA_OFL), - /** chan switch command */ - WMI_CSA_OFFLOAD_CHANSWITCH_CMDID, - - /* Chatter commands */ - /* Change chatter mode of operation */ - WMI_CHATTER_SET_MODE_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_CHATTER), - /** chatter add coalescing filter command */ - WMI_CHATTER_ADD_COALESCING_FILTER_CMDID, - /** chatter delete coalescing filter command */ - WMI_CHATTER_DELETE_COALESCING_FILTER_CMDID, - /** chatter coalecing query command */ - WMI_CHATTER_COALESCING_QUERY_CMDID, - - /**addba specific commands */ - /** start the aggregation on this TID */ - WMI_PEER_TID_ADDBA_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_TID_ADDBA), - /** stop the aggregation on this TID */ - WMI_PEER_TID_DELBA_CMDID, - - /** set station mimo powersave method */ - WMI_STA_DTIM_PS_METHOD_CMDID, - /** Configure the Station UAPSD AC Auto Trigger Parameters */ - WMI_STA_UAPSD_AUTO_TRIG_CMDID, - /** Configure the Keep Alive Parameters */ - WMI_STA_KEEPALIVE_CMDID, - - /* Request ssn from target for a sta/tid pair */ - WMI_BA_REQ_SSN_CMDID, - /* misc command group */ - /** echo command mainly used for testing */ - WMI_ECHO_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_MISC), - - /* !!IMPORTANT!! - * If you need to add a new WMI command to the WMI_GRP_MISC sub-group, - * please make sure you add it BEHIND WMI_PDEV_UTF_CMDID, - * as we MUST have a fixed value here to maintain compatibility between - * UTF and the ART2 driver - */ - /** UTF WMI commands */ - WMI_PDEV_UTF_CMDID, - - /** set debug log config */ - WMI_DBGLOG_CFG_CMDID, - /* QVIT specific command id */ - WMI_PDEV_QVIT_CMDID, - /* Factory Testing Mode request command - * used for integrated chipsets */ - WMI_PDEV_FTM_INTG_CMDID, - /* set and get keepalive parameters command */ - WMI_VDEV_SET_KEEPALIVE_CMDID, - WMI_VDEV_GET_KEEPALIVE_CMDID, - /* For fw recovery test command */ - WMI_FORCE_FW_HANG_CMDID, - /* Set Mcast/Bdcast filter */ - WMI_SET_MCASTBCAST_FILTER_CMDID, - /** set thermal management params **/ - WMI_THERMAL_MGMT_CMDID, - /** set host auto shutdown params **/ - WMI_HOST_AUTO_SHUTDOWN_CFG_CMDID, - /** set tpc chainmask config command */ - WMI_TPC_CHAINMASK_CONFIG_CMDID, - /** set Antenna diversity command */ - WMI_SET_ANTENNA_DIVERSITY_CMDID, - /** Set OCB Sched Request, deprecated */ - WMI_OCB_SET_SCHED_CMDID, - /* Set rssi monitoring config command */ - WMI_RSSI_BREACH_MONITOR_CONFIG_CMDID, - /* Enable/disable Large Receive Offload processing; - * provide cfg params */ - WMI_LRO_CONFIG_CMDID, - /*transfer data from host to firmware to write flash */ - WMI_TRANSFER_DATA_TO_FLASH_CMDID, - /** Command to enable/disable filtering of multicast IP with unicast mac */ - WMI_CONFIG_ENHANCED_MCAST_FILTER_CMDID, - /** Command to control WISA mode */ - WMI_VDEV_WISA_CMDID, - /** set debug log time stamp sync up with host */ - WMI_DBGLOG_TIME_STAMP_SYNC_CMDID, - /** Command for host to set/delete multiple mcast filters */ - WMI_SET_MULTIPLE_MCAST_FILTER_CMDID, - /** upload a requested section of data from firmware flash to host */ - WMI_READ_DATA_FROM_FLASH_CMDID, - - /* GPIO Configuration */ - WMI_GPIO_CONFIG_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_GPIO), - WMI_GPIO_OUTPUT_CMDID, - - /* Txbf configuration command */ - WMI_TXBF_CMDID, - - /* FWTEST Commands */ - WMI_FWTEST_VDEV_MCC_SET_TBTT_MODE_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_FWTEST), - /** set NoA descs **/ - WMI_FWTEST_P2P_SET_NOA_PARAM_CMDID, - /* UNIT Tests */ - WMI_UNIT_TEST_CMDID, - /* set debug and tuning parameters */ - WMI_FWTEST_CMDID, - /* Q-Boost configuration test commands */ - WMI_QBOOST_CFG_CMDID, - - /** TDLS Configuration */ - /** enable/disable TDLS */ - WMI_TDLS_SET_STATE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_TDLS), - /** set tdls peer state */ - WMI_TDLS_PEER_UPDATE_CMDID, - /** TDLS Offchannel control */ - WMI_TDLS_SET_OFFCHAN_MODE_CMDID, - - /** Resmgr Configuration */ - /** Adaptive OCS is enabled by default in the FW. This command is used to - * disable FW based adaptive OCS. - */ - WMI_RESMGR_ADAPTIVE_OCS_ENABLE_DISABLE_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_RESMGR), - /** set the requested channel time quota for the home channels */ - WMI_RESMGR_SET_CHAN_TIME_QUOTA_CMDID, - /** set the requested latency for the home channels */ - WMI_RESMGR_SET_CHAN_LATENCY_CMDID, - - /** STA SMPS Configuration */ - /** force SMPS mode */ - WMI_STA_SMPS_FORCE_MODE_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_STA_SMPS), - /** set SMPS parameters */ - WMI_STA_SMPS_PARAM_CMDID, - - /* Wlan HB commands */ - /* enalbe/disable wlan HB */ - WMI_HB_SET_ENABLE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_WLAN_HB), - /* set tcp parameters for wlan HB */ - WMI_HB_SET_TCP_PARAMS_CMDID, - /* set tcp pkt filter for wlan HB */ - WMI_HB_SET_TCP_PKT_FILTER_CMDID, - /* set udp parameters for wlan HB */ - WMI_HB_SET_UDP_PARAMS_CMDID, - /* set udp pkt filter for wlan HB */ - WMI_HB_SET_UDP_PKT_FILTER_CMDID, - - /** Wlan RMC commands*/ - /** enable/disable RMC */ - WMI_RMC_SET_MODE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_RMC), - /** configure action frame period */ - WMI_RMC_SET_ACTION_PERIOD_CMDID, - /** For debug/future enhancement purposes only, - * configures/finetunes RMC algorithms */ - WMI_RMC_CONFIG_CMDID, - - /** WLAN MHF offload commands */ - /** enable/disable MHF offload */ - WMI_MHF_OFFLOAD_SET_MODE_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_MHF_OFL), - /** Plumb routing table for MHF offload */ - WMI_MHF_OFFLOAD_PLUMB_ROUTING_TBL_CMDID, - - /*location scan commands */ - /*start batch scan */ - WMI_BATCH_SCAN_ENABLE_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_LOCATION_SCAN), - /*stop batch scan */ - WMI_BATCH_SCAN_DISABLE_CMDID, - /*get batch scan result */ - WMI_BATCH_SCAN_TRIGGER_RESULT_CMDID, - /* OEM related cmd */ - WMI_OEM_REQ_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_OEM), - WMI_OEM_REQUEST_CMDID, /* UNUSED */ - - /** Nan Request */ - WMI_NAN_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_NAN), - - /** Modem power state command */ - WMI_MODEM_POWER_STATE_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_COEX), - WMI_CHAN_AVOID_UPDATE_CMDID, - WMI_COEX_CONFIG_CMDID, - WMI_CHAN_AVOID_RPT_ALLOW_CMDID, - WMI_COEX_GET_ANTENNA_ISOLATION_CMDID, - WMI_SAR_LIMITS_CMDID, - - /** - * OBSS scan offload enable/disable commands - * OBSS scan enable CMD will send to FW after VDEV UP, if these conditions are true: - * 1. WMI_SERVICE_OBSS_SCAN is reported by FW in service ready, - * 2. STA connect to a 2.4Ghz ht20/ht40 AP, - * 3. AP enable 20/40 coexistence (OBSS_IE-74 can be found in beacon or association response) - * If OBSS parameters from beacon changed, also use enable CMD to update parameters. - * OBSS scan disable CMD will send to FW if have enabled when tearing down connection. - */ - WMI_OBSS_SCAN_ENABLE_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_OBSS_OFL), - WMI_OBSS_SCAN_DISABLE_CMDID, - - /**LPI commands*/ - /**LPI mgmt snooping config command*/ - WMI_LPI_MGMT_SNOOPING_CONFIG_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_LPI), - /**LPI scan start command*/ - WMI_LPI_START_SCAN_CMDID, - /**LPI scan stop command*/ - WMI_LPI_STOP_SCAN_CMDID, - - /** ExtScan commands */ - WMI_EXTSCAN_START_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_EXTSCAN), - WMI_EXTSCAN_STOP_CMDID, - WMI_EXTSCAN_CONFIGURE_WLAN_CHANGE_MONITOR_CMDID, - WMI_EXTSCAN_CONFIGURE_HOTLIST_MONITOR_CMDID, - WMI_EXTSCAN_GET_CACHED_RESULTS_CMDID, - WMI_EXTSCAN_GET_WLAN_CHANGE_RESULTS_CMDID, - WMI_EXTSCAN_SET_CAPABILITIES_CMDID, - WMI_EXTSCAN_GET_CAPABILITIES_CMDID, - WMI_EXTSCAN_CONFIGURE_HOTLIST_SSID_MONITOR_CMDID, - WMI_EXTSCAN_CONFIGURE_MAWC_CMDID, - - /** DHCP server offload commands */ - WMI_SET_DHCP_SERVER_OFFLOAD_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_DHCP_OFL), - - /** IPA Offload features related commands */ - WMI_IPA_OFFLOAD_ENABLE_DISABLE_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_IPA), - - /** mDNS responder offload commands */ - WMI_MDNS_OFFLOAD_ENABLE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_MDNS_OFL), - WMI_MDNS_SET_FQDN_CMDID, - WMI_MDNS_SET_RESPONSE_CMDID, - WMI_MDNS_GET_STATS_CMDID, - - /* enable/disable AP Authentication offload */ - WMI_SAP_OFL_ENABLE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_SAP_OFL), - WMI_SAP_SET_BLACKLIST_PARAM_CMDID, - - /** Out-of-context-of-BSS (OCB) commands */ - WMI_OCB_SET_CONFIG_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_OCB), - WMI_OCB_SET_UTC_TIME_CMDID, - WMI_OCB_START_TIMING_ADVERT_CMDID, - WMI_OCB_STOP_TIMING_ADVERT_CMDID, - WMI_OCB_GET_TSF_TIMER_CMDID, - WMI_DCC_GET_STATS_CMDID, - WMI_DCC_CLEAR_STATS_CMDID, - WMI_DCC_UPDATE_NDL_CMDID, - /* System-On-Chip commands */ - WMI_SOC_SET_PCL_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_SOC), - WMI_SOC_SET_HW_MODE_CMDID, - WMI_SOC_SET_DUAL_MAC_CONFIG_CMDID, - WMI_SOC_SET_ANTENNA_MODE_CMDID, - - /* packet filter commands */ - WMI_PACKET_FILTER_CONFIG_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_PKT_FILTER), - WMI_PACKET_FILTER_ENABLE_CMDID, - /** Motion Aided WiFi Connectivity (MAWC) commands */ - WMI_MAWC_SENSOR_REPORT_IND_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_MAWC), - - /** WMI commands related to PMF 11w Offload */ - WMI_PMF_OFFLOAD_SET_SA_QUERY_CMDID = - WMI_CMD_GRP_START_ID(WMI_GRP_PMF_OFFLOAD), - - /** WMI commands related to pkt filter (BPF) offload */ - WMI_BPF_GET_CAPABILITY_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_BPF_OFFLOAD), - WMI_BPF_GET_VDEV_STATS_CMDID, - WMI_BPF_SET_VDEV_INSTRUCTIONS_CMDID, - WMI_BPF_DEL_VDEV_INSTRUCTIONS_CMDID, - - /** WMI commands related to monitor mode. */ - WMI_MNT_FILTER_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_MONITOR), - - /** - * Nan Data commands - * NDI - NAN Data Interface - * NDP - NAN Data Path - */ - /* Commands in prototyping phase */ - WMI_NDI_GET_CAP_REQ_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_PROTOTYPE), - WMI_NDP_INITIATOR_REQ_CMDID, - WMI_NDP_RESPONDER_REQ_CMDID, - WMI_NDP_END_REQ_CMDID, + /** initialize the wlan sub system */ + WMI_INIT_CMDID = 0x1, + + /* Scan specific commands */ + + /** start scan request to FW */ + WMI_START_SCAN_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_SCAN), + /** stop scan request to FW */ + WMI_STOP_SCAN_CMDID, + /** full list of channels as defined by the regulatory that will be used by scanner */ + WMI_SCAN_CHAN_LIST_CMDID, + /** overwrite default priority table in scan scheduler */ + WMI_SCAN_SCH_PRIO_TBL_CMDID, + /** This command to adjust the priority and min.max_rest_time + * of an on ongoing scan request. + */ + WMI_SCAN_UPDATE_REQUEST_CMDID, + + /** set OUI to be used in probe request if enabled */ + WMI_SCAN_PROB_REQ_OUI_CMDID, + /** config adaptive dwell scan */ + WMI_SCAN_ADAPTIVE_DWELL_CONFIG_CMDID, + + /* PDEV(physical device) specific commands */ + /** set regulatorty ctl id used by FW to determine the exact ctl power limits */ + WMI_PDEV_SET_REGDOMAIN_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_PDEV), + /** set channel. mainly used for supporting monitor mode */ + WMI_PDEV_SET_CHANNEL_CMDID, + /** set pdev specific parameters */ + WMI_PDEV_SET_PARAM_CMDID, + /** enable packet log */ + WMI_PDEV_PKTLOG_ENABLE_CMDID, + /** disable packet log*/ + WMI_PDEV_PKTLOG_DISABLE_CMDID, + /** set wmm parameters */ + WMI_PDEV_SET_WMM_PARAMS_CMDID, + /** set HT cap ie that needs to be carried probe requests HT/VHT channels */ + WMI_PDEV_SET_HT_CAP_IE_CMDID, + /** set VHT cap ie that needs to be carried on probe requests on VHT channels */ + WMI_PDEV_SET_VHT_CAP_IE_CMDID, + + /** Command to send the DSCP-to-TID map to the target */ + WMI_PDEV_SET_DSCP_TID_MAP_CMDID, + /** set quiet ie parameters. primarily used in AP mode */ + WMI_PDEV_SET_QUIET_MODE_CMDID, + /** Enable/Disable Green AP Power Save */ + WMI_PDEV_GREEN_AP_PS_ENABLE_CMDID, + /** get TPC config for the current operating channel */ + WMI_PDEV_GET_TPC_CONFIG_CMDID, + + /** set the base MAC address for the physical device before a VDEV is created. + * For firmware that doesn't support this feature and this command, the pdev + * MAC address will not be changed. */ + WMI_PDEV_SET_BASE_MACADDR_CMDID, + + /* eeprom content dump , the same to bdboard data */ + WMI_PDEV_DUMP_CMDID, + /* set LED configuration */ + WMI_PDEV_SET_LED_CONFIG_CMDID, + /* Get Current temprature of chip in Celcius degree*/ + WMI_PDEV_GET_TEMPERATURE_CMDID, + /* Set LED flashing behavior */ + WMI_PDEV_SET_LED_FLASHING_CMDID, + /** Enable/Disable Smart Antenna */ + WMI_PDEV_SMART_ANT_ENABLE_CMDID, + /** Set Smart Antenna RX antenna*/ + WMI_PDEV_SMART_ANT_SET_RX_ANTENNA_CMDID, + /** Override the antenna switch table */ + WMI_PDEV_SET_ANTENNA_SWITCH_TABLE_CMDID, + /** Override the CTL table */ + WMI_PDEV_SET_CTL_TABLE_CMDID, + /** Override the array gain table */ + WMI_PDEV_SET_MIMOGAIN_TABLE_CMDID, + /** FIPS test mode command */ + WMI_PDEV_FIPS_CMDID, + /** get CCK ANI level */ + WMI_PDEV_GET_ANI_CCK_CONFIG_CMDID, + /** get OFDM ANI level */ + WMI_PDEV_GET_ANI_OFDM_CONFIG_CMDID, + /** NF Cal Power dBr/dBm */ + WMI_PDEV_GET_NFCAL_POWER_CMDID, + /** TxPPDU TPC */ + WMI_PDEV_GET_TPC_CMDID, + /** Set to enable MIB stats collection */ + WMI_MIB_STATS_ENABLE_CMDID, + /** Set preferred channel list for DBS Mgr */ + WMI_PDEV_SET_PCL_CMDID, + /** Set HW mode. Eg: single MAC, DBS & SBS, see soc_hw_mode_t for values */ + WMI_PDEV_SET_HW_MODE_CMDID, + /** Set DFS, SCAN modes and other FW configurations */ + WMI_PDEV_SET_MAC_CONFIG_CMDID, + /** Set per band and per pdev antenna chains */ + WMI_PDEV_SET_ANTENNA_MODE_CMDID, + /** Periodic channel stats request command */ + WMI_SET_PERIODIC_CHANNEL_STATS_CONFIG_CMDID, + /** WMI command for power debug framework */ + WMI_PDEV_WAL_POWER_DEBUG_CMDID, + /** set per-AC rx reorder timeouts */ + WMI_PDEV_SET_REORDER_TIMEOUT_VAL_CMDID, + /** WMI command for WOW gpio and type */ + WMI_PDEV_SET_WAKEUP_CONFIG_CMDID, + /* Get current ANT's per chain's RSSI info */ + WMI_PDEV_GET_ANTDIV_STATUS_CMDID, + /** WMI command for getting Chip Power Stats */ + WMI_PDEV_GET_CHIP_POWER_STATS_CMDID, + /** set stats reporting thresholds - see WMI_REPORT_STATS_EVENTID */ + WMI_PDEV_SET_STATS_THRESHOLD_CMDID, + + /* VDEV (virtual device) specific commands */ + /** vdev create */ + WMI_VDEV_CREATE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_VDEV), + /** vdev delete */ + WMI_VDEV_DELETE_CMDID, + /** vdev start request */ + WMI_VDEV_START_REQUEST_CMDID, + /** vdev restart request (RX only, NO TX, used for CAC period)*/ + WMI_VDEV_RESTART_REQUEST_CMDID, + /** vdev up request */ + WMI_VDEV_UP_CMDID, + /** vdev stop request */ + WMI_VDEV_STOP_CMDID, + /** vdev down request */ + WMI_VDEV_DOWN_CMDID, + /* set a vdev param */ + WMI_VDEV_SET_PARAM_CMDID, + /* set a key (used for setting per peer unicast and per vdev multicast) */ + WMI_VDEV_INSTALL_KEY_CMDID, + + /* wnm sleep mode command */ + WMI_VDEV_WNM_SLEEPMODE_CMDID, + WMI_VDEV_WMM_ADDTS_CMDID, + WMI_VDEV_WMM_DELTS_CMDID, + WMI_VDEV_SET_WMM_PARAMS_CMDID, + WMI_VDEV_SET_GTX_PARAMS_CMDID, + WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMDID, + + WMI_VDEV_PLMREQ_START_CMDID, + WMI_VDEV_PLMREQ_STOP_CMDID, + /* TSF timestamp action for specified vdev */ + WMI_VDEV_TSF_TSTAMP_ACTION_CMDID, + /** set the additional IEs in probe requests for scan or + * assoc req etc for frames FW locally generates */ + WMI_VDEV_SET_IE_CMDID, + + WMI_VDEV_RATEMASK_CMDID, + /** ATF VDEV REQUEST commands. */ + WMI_VDEV_ATF_REQUEST_CMDID, + /** Command to send the DSCP-to-TID map to the target for VAP */ + WMI_VDEV_SET_DSCP_TID_MAP_CMDID, + /* Configure filter for Neighbor Rx Pkt (smart mesh selective listening) */ + WMI_VDEV_FILTER_NEIGHBOR_RX_PACKETS_CMDID, + /** set quiet ie parameters. primarily used in AP mode */ + WMI_VDEV_SET_QUIET_MODE_CMDID, + /** To set custom aggregation size for per vdev */ + WMI_VDEV_SET_CUSTOM_AGGR_SIZE_CMDID, + + /* DISA feature: Encrypt-decrypt data request */ + WMI_VDEV_ENCRYPT_DECRYPT_DATA_REQ_CMDID, + + /* peer specific commands */ + + /** create a peer */ + WMI_PEER_CREATE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_PEER), + /** delete a peer */ + WMI_PEER_DELETE_CMDID, + /** flush specific tid queues of a peer */ + WMI_PEER_FLUSH_TIDS_CMDID, + /** set a parameter of a peer */ + WMI_PEER_SET_PARAM_CMDID, + /** set peer to associated state. will cary all parameters determined during assocication time */ + WMI_PEER_ASSOC_CMDID, + /**add a wds (4 address) entry. used only for testing WDS feature on AP products */ + WMI_PEER_ADD_WDS_ENTRY_CMDID, + /**remove wds (4 address) entry. used only for testing WDS feature on AP products */ + WMI_PEER_REMOVE_WDS_ENTRY_CMDID, + /** set up mcast group infor for multicast to unicast conversion */ + WMI_PEER_MCAST_GROUP_CMDID, + /** request peer info from FW. FW shall respond with PEER_INFO_EVENTID */ + WMI_PEER_INFO_REQ_CMDID, + /** request the estimated link speed for the peer. FW shall respond with + * WMI_PEER_ESTIMATED_LINKSPEED_EVENTID. + */ + WMI_PEER_GET_ESTIMATED_LINKSPEED_CMDID, + /** Set the conditions to report peer justified rate to driver + * The justified rate means the the user-rate is justified by PER. + */ + WMI_PEER_SET_RATE_REPORT_CONDITION_CMDID, + + /** update a wds (4 address) entry */ + WMI_PEER_UPDATE_WDS_ENTRY_CMDID, + /** add a proxy sta entry */ + WMI_PEER_ADD_PROXY_STA_ENTRY_CMDID, + /** Set Smart Antenna TX antenna */ + WMI_PEER_SMART_ANT_SET_TX_ANTENNA_CMDID, + /** Set Smart Antenna TX train info */ + WMI_PEER_SMART_ANT_SET_TRAIN_INFO_CMDID, + /** Set SA node config options */ + WMI_PEER_SMART_ANT_SET_NODE_CONFIG_OPS_CMDID, + /** ATF PEER REQUEST commands */ + WMI_PEER_ATF_REQUEST_CMDID, + /** bandwidth fairness (BWF) peer configuration request command */ + WMI_PEER_BWF_REQUEST_CMDID, + /** rx reorder queue setup for peer/tid */ + WMI_PEER_REORDER_QUEUE_SETUP_CMDID, + /** rx reorder queue remove for peer/tid */ + WMI_PEER_REORDER_QUEUE_REMOVE_CMDID, + /** specify a limit for rx A-MPDU block size */ + WMI_PEER_SET_RX_BLOCKSIZE_CMDID, + /** request peer antdiv info from FW. FW shall respond with PEER_ANTDIV_INFO_EVENTID */ + WMI_PEER_ANTDIV_INFO_REQ_CMDID, + + + /* beacon/management specific commands */ + + /** transmit beacon by reference . used for transmitting beacon on low latency interface like pcie */ + WMI_BCN_TX_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_MGMT), + /** transmit beacon by value */ + WMI_PDEV_SEND_BCN_CMDID, + /** set the beacon template. used in beacon offload mode to setup the + * the common beacon template with the FW to be used by FW to generate beacons */ + WMI_BCN_TMPL_CMDID, + /** set beacon filter with FW */ + WMI_BCN_FILTER_RX_CMDID, + /* enable/disable filtering of probe requests in the firmware */ + WMI_PRB_REQ_FILTER_RX_CMDID, + /** transmit management frame by value. will be deprecated */ + WMI_MGMT_TX_CMDID, + /** set the probe response template. used in beacon offload mode to setup the + * the common probe response template with the FW to be used by FW to generate + * probe responses */ + WMI_PRB_TMPL_CMDID, + /** Transmit Mgmt frame by reference */ + WMI_MGMT_TX_SEND_CMDID, + + /** commands to directly control ba negotiation directly from host. only used in test mode */ + + /** turn off FW Auto addba mode and let host control addba */ + WMI_ADDBA_CLEAR_RESP_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_BA_NEG), + /** send add ba request */ + WMI_ADDBA_SEND_CMDID, + WMI_ADDBA_STATUS_CMDID, + /** send del ba */ + WMI_DELBA_SEND_CMDID, + /** set add ba response will be used by FW to generate addba response*/ + WMI_ADDBA_SET_RESP_CMDID, + /** send single VHT MPDU with AMSDU */ + WMI_SEND_SINGLEAMSDU_CMDID, + + /** Station power save specific config */ + /** enable/disable station powersave */ + WMI_STA_POWERSAVE_MODE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_STA_PS), + /** set station power save specific parameter */ + WMI_STA_POWERSAVE_PARAM_CMDID, + /** set station mimo powersave mode */ + WMI_STA_MIMO_PS_MODE_CMDID, + + + /** DFS-specific commands */ + /** enable DFS (radar detection)*/ + WMI_PDEV_DFS_ENABLE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_DFS), + /** disable DFS (radar detection)*/ + WMI_PDEV_DFS_DISABLE_CMDID, + /** enable DFS phyerr/parse filter offload */ + WMI_DFS_PHYERR_FILTER_ENA_CMDID, + /** enable DFS phyerr/parse filter offload */ + WMI_DFS_PHYERR_FILTER_DIS_CMDID, + /** enable DFS phyerr processing offload */ + WMI_PDEV_DFS_PHYERR_OFFLOAD_ENABLE_CMDID, + /** disable DFS phyerr processing offload */ + WMI_PDEV_DFS_PHYERR_OFFLOAD_DISABLE_CMDID, + /** set ADFS channel config */ + WMI_VDEV_ADFS_CH_CFG_CMDID, + /** abort ADFS off-channel-availability-check currently in progress */ + WMI_VDEV_ADFS_OCAC_ABORT_CMDID, + + /* Roaming specific commands */ + /** set roam scan mode */ + WMI_ROAM_SCAN_MODE = WMI_CMD_GRP_START_ID(WMI_GRP_ROAM), + /** set roam scan rssi threshold below which roam scan is enabled */ + WMI_ROAM_SCAN_RSSI_THRESHOLD, + /** set roam scan period for periodic roam scan mode */ + WMI_ROAM_SCAN_PERIOD, + /** set roam scan trigger rssi change threshold */ + WMI_ROAM_SCAN_RSSI_CHANGE_THRESHOLD, + /** set roam AP profile */ + WMI_ROAM_AP_PROFILE, + /** set channel list for roam scans */ + WMI_ROAM_CHAN_LIST, + /** Stop scan command */ + WMI_ROAM_SCAN_CMD, + /** roaming sme offload sync complete */ + WMI_ROAM_SYNCH_COMPLETE, + /** set ric request element for 11r roaming */ + WMI_ROAM_SET_RIC_REQUEST_CMDID, + /** Invoke roaming forcefully */ + WMI_ROAM_INVOKE_CMDID, + /** roaming filter cmd to allow further filtering of roaming candidate */ + WMI_ROAM_FILTER_CMDID, + /** set gateway ip, mac and retries for subnet change detection */ + WMI_ROAM_SUBNET_CHANGE_CONFIG_CMDID, + /** configure thresholds for MAWC */ + WMI_ROAM_CONFIGURE_MAWC_CMDID, + /** configure MultiBand Operation(refer WFA MBO spec) parameter */ + WMI_ROAM_SET_MBO_PARAM_CMDID, /* DEPRECATED */ + + /** offload scan specific commands */ + /** set offload scan AP profile */ + WMI_OFL_SCAN_ADD_AP_PROFILE = WMI_CMD_GRP_START_ID(WMI_GRP_OFL_SCAN), + /** remove offload scan AP profile */ + WMI_OFL_SCAN_REMOVE_AP_PROFILE, + /** set offload scan period */ + WMI_OFL_SCAN_PERIOD, + + /* P2P specific commands */ + /**set P2P device info. FW will used by FW to create P2P IE to be carried in probe response + * generated during p2p listen and for p2p discoverability */ + WMI_P2P_DEV_SET_DEVICE_INFO = WMI_CMD_GRP_START_ID(WMI_GRP_P2P), + /** enable/disable p2p discoverability on STA/AP VDEVs */ + WMI_P2P_DEV_SET_DISCOVERABILITY, + /** set p2p ie to be carried in beacons generated by FW for GO */ + WMI_P2P_GO_SET_BEACON_IE, + /** set p2p ie to be carried in probe response frames generated by FW for GO */ + WMI_P2P_GO_SET_PROBE_RESP_IE, + /** set the vendor specific p2p ie data. FW will use this to parse the P2P NoA + * attribute in the beacons/probe responses received. + * Note: This command is currently used only for Apple P2P implementation. + */ + WMI_P2P_SET_VENDOR_IE_DATA_CMDID, + /** set the configure of p2p find offload */ + WMI_P2P_DISC_OFFLOAD_CONFIG_CMDID, + /** set the vendor specific p2p ie data for p2p find offload using */ + WMI_P2P_DISC_OFFLOAD_APPIE_CMDID, + /** set the BSSID/device name pattern of p2p find offload */ + WMI_P2P_DISC_OFFLOAD_PATTERN_CMDID, + /** set OppPS related parameters **/ + WMI_P2P_SET_OPPPS_PARAM_CMDID, + /** set listen offload start related parameters */ + WMI_P2P_LISTEN_OFFLOAD_START_CMDID, + /** set listen offload stop related parameters */ + WMI_P2P_LISTEN_OFFLOAD_STOP_CMDID, + + /** AP power save specific config */ + /** set AP power save specific param */ + WMI_AP_PS_PEER_PARAM_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_AP_PS), + /** set AP UAPSD coex pecific param */ + WMI_AP_PS_PEER_UAPSD_COEX_CMDID, + /** set Enhanced Green AP param */ + WMI_AP_PS_EGAP_PARAM_CMDID, + + /** Rate-control specific commands */ + WMI_PEER_RATE_RETRY_SCHED_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_RATE_CTRL), + + /** WLAN Profiling commands. */ + WMI_WLAN_PROFILE_TRIGGER_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_PROFILE), + WMI_WLAN_PROFILE_SET_HIST_INTVL_CMDID, + WMI_WLAN_PROFILE_GET_PROFILE_DATA_CMDID, + WMI_WLAN_PROFILE_ENABLE_PROFILE_ID_CMDID, + WMI_WLAN_PROFILE_LIST_PROFILE_ID_CMDID, + + /** Suspend resume command Ids */ + WMI_PDEV_SUSPEND_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_SUSPEND), + WMI_PDEV_RESUME_CMDID, + + /* Beacon filter commands */ + /** add a beacon filter */ + WMI_ADD_BCN_FILTER_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_BCN_FILTER), + /** remove a beacon filter */ + WMI_RMV_BCN_FILTER_CMDID, + + /* WOW Specific WMI commands*/ + /** add pattern for awake */ + WMI_WOW_ADD_WAKE_PATTERN_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_WOW), + /** deleta a wake pattern */ + WMI_WOW_DEL_WAKE_PATTERN_CMDID, + /** enable/deisable wake event */ + WMI_WOW_ENABLE_DISABLE_WAKE_EVENT_CMDID, + /** enable WOW */ + WMI_WOW_ENABLE_CMDID, + /** host woke up from sleep event to FW. Generated in response to WOW Hardware event */ + WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID, + /* IOAC add keep alive cmd. */ + WMI_WOW_IOAC_ADD_KEEPALIVE_CMDID, + /* IOAC del keep alive cmd. */ + WMI_WOW_IOAC_DEL_KEEPALIVE_CMDID, + /* IOAC add pattern for awake */ + WMI_WOW_IOAC_ADD_WAKE_PATTERN_CMDID, + /* IOAC deleta a wake pattern */ + WMI_WOW_IOAC_DEL_WAKE_PATTERN_CMDID, + /* D0-WOW enable or disable cmd */ + WMI_D0_WOW_ENABLE_DISABLE_CMDID, + /* enable extend WoW */ + WMI_EXTWOW_ENABLE_CMDID, + /* Extend WoW command to configure app type1 parameter */ + WMI_EXTWOW_SET_APP_TYPE1_PARAMS_CMDID, + /* Extend WoW command to configure app type2 parameter */ + WMI_EXTWOW_SET_APP_TYPE2_PARAMS_CMDID, + /* enable ICMPv6 Network advertisement filtering */ + WMI_WOW_ENABLE_ICMPV6_NA_FLT_CMDID, + /* + * Set a pattern to match UDP packet in WOW mode. + * If match, construct a tx frame in a local buffer + * to send through the peer AP to the entity in the + * IP network that sent the UDP packet to this STA. + */ + WMI_WOW_UDP_SVC_OFLD_CMDID, + /* configure WOW host wakeup PIN pattern */ + WMI_WOW_HOSTWAKEUP_GPIO_PIN_PATTERN_CONFIG_CMDID, + + /* Set which action category should wake the host from suspend */ + WMI_WOW_SET_ACTION_WAKE_UP_CMDID, + + /* RTT measurement related cmd */ + /** request to make an RTT measurement */ + WMI_RTT_MEASREQ_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_RTT), + /** request to report a tsf measurement */ + WMI_RTT_TSF_CMDID, + + /** spectral scan command */ + /** configure spectral scan */ + WMI_VDEV_SPECTRAL_SCAN_CONFIGURE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_SPECTRAL), + /** enable/disable spectral scan and trigger */ + WMI_VDEV_SPECTRAL_SCAN_ENABLE_CMDID, + + /* F/W stats */ + /** one time request for stats */ + WMI_REQUEST_STATS_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_STATS), + /** Push MCC Adaptive Scheduler Stats to Firmware */ + WMI_MCC_SCHED_TRAFFIC_STATS_CMDID, + /** one time request for txrx stats */ + WMI_REQUEST_STATS_EXT_CMDID, + /* Link Layer stats */ + /** Request for link layer stats */ + WMI_REQUEST_LINK_STATS_CMDID, + /** Request for setting params to link layer stats */ + WMI_START_LINK_STATS_CMDID, + /** Request to clear stats*/ + WMI_CLEAR_LINK_STATS_CMDID, + + /** Request for getting the Firmware Memory Dump */ + WMI_GET_FW_MEM_DUMP_CMDID, + + /** Request to flush of the buffered debug messages */ + WMI_DEBUG_MESG_FLUSH_CMDID, + + /** Cmd to configure the verbose level */ + WMI_DIAG_EVENT_LOG_CONFIG_CMDID, + + /** One time request for wlan stats */ + WMI_REQUEST_WLAN_STATS_CMDID, + + /** Request for getting RCPI of peer */ + WMI_REQUEST_RCPI_CMDID, + + /** One time request for peer stats info */ + WMI_REQUEST_PEER_STATS_INFO_CMDID, + + /** ARP OFFLOAD REQUEST*/ + WMI_SET_ARP_NS_OFFLOAD_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_ARP_NS_OFL), + + /** Proactive ARP Response Add Pattern Command*/ + WMI_ADD_PROACTIVE_ARP_RSP_PATTERN_CMDID, + + /** Proactive ARP Response Del Pattern Command*/ + WMI_DEL_PROACTIVE_ARP_RSP_PATTERN_CMDID, + + /** NS offload confid*/ + WMI_NETWORK_LIST_OFFLOAD_CONFIG_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_NLO_OFL), + + /** APFIND Config */ + WMI_APFIND_CMDID, + + /** Passpoint list config */ + WMI_PASSPOINT_LIST_CONFIG_CMDID, + + /** configure supprssing parameters for MAWC */ + WMI_NLO_CONFIGURE_MAWC_CMDID, + + /* GTK offload Specific WMI commands*/ + WMI_GTK_OFFLOAD_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_GTK_OFL), + + /* CSA offload Specific WMI commands*/ + /** csa offload enable */ + WMI_CSA_OFFLOAD_ENABLE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_CSA_OFL), + /** chan switch command */ + WMI_CSA_OFFLOAD_CHANSWITCH_CMDID, + + /* Chatter commands*/ + /* Change chatter mode of operation */ + WMI_CHATTER_SET_MODE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_CHATTER), + /** chatter add coalescing filter command */ + WMI_CHATTER_ADD_COALESCING_FILTER_CMDID, + /** chatter delete coalescing filter command */ + WMI_CHATTER_DELETE_COALESCING_FILTER_CMDID, + /** chatter coalecing query command */ + WMI_CHATTER_COALESCING_QUERY_CMDID, + + /**addba specific commands */ + /** start the aggregation on this TID */ + WMI_PEER_TID_ADDBA_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_TID_ADDBA), + /** stop the aggregation on this TID */ + WMI_PEER_TID_DELBA_CMDID, + + /** set station mimo powersave method */ + WMI_STA_DTIM_PS_METHOD_CMDID, + /** Configure the Station UAPSD AC Auto Trigger Parameters */ + WMI_STA_UAPSD_AUTO_TRIG_CMDID, + /** Configure the Keep Alive Parameters */ + WMI_STA_KEEPALIVE_CMDID, + + /* Request ssn from target for a sta/tid pair */ + WMI_BA_REQ_SSN_CMDID, + + + /* misc command group */ + /** echo command mainly used for testing */ + WMI_ECHO_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_MISC), + + /* !!IMPORTANT!! + * If you need to add a new WMI command to the WMI_GRP_MISC sub-group, + * please make sure you add it BEHIND WMI_PDEV_UTF_CMDID, + * as we MUST have a fixed value here to maintain compatibility between + * UTF and the ART2 driver + */ + /** UTF WMI commands */ + WMI_PDEV_UTF_CMDID, + + /** set debug log config */ + WMI_DBGLOG_CFG_CMDID, + /* QVIT specific command id */ + WMI_PDEV_QVIT_CMDID, + /* Factory Testing Mode request command + * used for integrated chipsets */ + WMI_PDEV_FTM_INTG_CMDID, + /* set and get keepalive parameters command */ + WMI_VDEV_SET_KEEPALIVE_CMDID, + WMI_VDEV_GET_KEEPALIVE_CMDID, + /* For fw recovery test command */ + WMI_FORCE_FW_HANG_CMDID, + /* Set Mcast/Bdcast filter */ + WMI_SET_MCASTBCAST_FILTER_CMDID, + /** set thermal management params **/ + WMI_THERMAL_MGMT_CMDID, + /** set host auto shutdown params **/ + WMI_HOST_AUTO_SHUTDOWN_CFG_CMDID, + /** set tpc chainmask config command */ + WMI_TPC_CHAINMASK_CONFIG_CMDID, + /** set Antenna diversity command */ + WMI_SET_ANTENNA_DIVERSITY_CMDID, + /** Set OCB Sched Request, deprecated */ + WMI_OCB_SET_SCHED_CMDID, + /** Set rssi monitoring config command */ + WMI_RSSI_BREACH_MONITOR_CONFIG_CMDID, + /** Enable/disable Large Receive Offload processing; provide cfg params */ + WMI_LRO_CONFIG_CMDID, + /** transfer data from host to firmware to write flash */ + WMI_TRANSFER_DATA_TO_FLASH_CMDID, + /** Command to enable/disable filtering of multicast IP with unicast mac */ + WMI_CONFIG_ENHANCED_MCAST_FILTER_CMDID, + /** Command to control WISA mode */ + WMI_VDEV_WISA_CMDID, + /** set debug log time stamp sync up with host */ + WMI_DBGLOG_TIME_STAMP_SYNC_CMDID, + /** Command for host to set/delete multiple mcast filters */ + WMI_SET_MULTIPLE_MCAST_FILTER_CMDID, + /** upload a requested section of data from firmware flash to host */ + WMI_READ_DATA_FROM_FLASH_CMDID, + + /* GPIO Configuration */ + WMI_GPIO_CONFIG_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_GPIO), + WMI_GPIO_OUTPUT_CMDID, + + /* Txbf configuration command */ + WMI_TXBF_CMDID, + + /* FWTEST Commands */ + WMI_FWTEST_VDEV_MCC_SET_TBTT_MODE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_FWTEST), + /** set NoA descs **/ + WMI_FWTEST_P2P_SET_NOA_PARAM_CMDID, + /* UNIT Tests */ + WMI_UNIT_TEST_CMDID, + /* set debug and tuning parameters */ + WMI_FWTEST_CMDID, + /* Q-Boost configuration test commands */ + WMI_QBOOST_CFG_CMDID, + + /** TDLS Configuration */ + /** enable/disable TDLS */ + WMI_TDLS_SET_STATE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_TDLS), + /** set tdls peer state */ + WMI_TDLS_PEER_UPDATE_CMDID, + /** TDLS Offchannel control */ + WMI_TDLS_SET_OFFCHAN_MODE_CMDID, + + /** Resmgr Configuration */ + /** Adaptive OCS is enabled by default in the FW. This command is used to + * disable FW based adaptive OCS. + */ + WMI_RESMGR_ADAPTIVE_OCS_ENABLE_DISABLE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_RESMGR), + /** set the requested channel time quota for the home channels */ + WMI_RESMGR_SET_CHAN_TIME_QUOTA_CMDID, + /** set the requested latency for the home channels */ + WMI_RESMGR_SET_CHAN_LATENCY_CMDID, + + /** STA SMPS Configuration */ + /** force SMPS mode */ + WMI_STA_SMPS_FORCE_MODE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_STA_SMPS), + /** set SMPS parameters */ + WMI_STA_SMPS_PARAM_CMDID, + + /* Wlan HB commands*/ + /* enalbe/disable wlan HB */ + WMI_HB_SET_ENABLE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_WLAN_HB), + /* set tcp parameters for wlan HB */ + WMI_HB_SET_TCP_PARAMS_CMDID, + /* set tcp pkt filter for wlan HB */ + WMI_HB_SET_TCP_PKT_FILTER_CMDID, + /* set udp parameters for wlan HB */ + WMI_HB_SET_UDP_PARAMS_CMDID, + /* set udp pkt filter for wlan HB */ + WMI_HB_SET_UDP_PKT_FILTER_CMDID, + + /** Wlan RMC commands*/ + /** enable/disable RMC */ + WMI_RMC_SET_MODE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_RMC), + /** configure action frame period */ + WMI_RMC_SET_ACTION_PERIOD_CMDID, + /** For debug/future enhancement purposes only, + * configures/finetunes RMC algorithms */ + WMI_RMC_CONFIG_CMDID, + /** select manual leader */ + WMI_RMC_SET_MANUAL_LEADER_CMDID, + + /** WLAN MHF offload commands */ + /** enable/disable MHF offload */ + WMI_MHF_OFFLOAD_SET_MODE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_MHF_OFL), + /** Plumb routing table for MHF offload */ + WMI_MHF_OFFLOAD_PLUMB_ROUTING_TBL_CMDID, + + /*location scan commands*/ + /*start batch scan*/ + WMI_BATCH_SCAN_ENABLE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_LOCATION_SCAN), + /*stop batch scan*/ + WMI_BATCH_SCAN_DISABLE_CMDID, + /*get batch scan result*/ + WMI_BATCH_SCAN_TRIGGER_RESULT_CMDID, + /* OEM related cmd */ + WMI_OEM_REQ_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_OEM), + WMI_OEM_REQUEST_CMDID, /* UNUSED */ + + /** Nan Request */ + WMI_NAN_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_NAN), + + /** Modem power state command */ + WMI_MODEM_POWER_STATE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_COEX), + WMI_CHAN_AVOID_UPDATE_CMDID, + WMI_COEX_CONFIG_CMDID, + WMI_CHAN_AVOID_RPT_ALLOW_CMDID, + WMI_COEX_GET_ANTENNA_ISOLATION_CMDID, + WMI_SAR_LIMITS_CMDID, + + /** + * OBSS scan offload enable/disable commands + * OBSS scan enable CMD will send to FW after VDEV UP, if these conditions are true: + * 1. WMI_SERVICE_OBSS_SCAN is reported by FW in service ready, + * 2. STA connect to a 2.4Ghz ht20/ht40 AP, + * 3. AP enable 20/40 coexistence (OBSS_IE-74 can be found in beacon or association response) + * If OBSS parameters from beacon changed, also use enable CMD to update parameters. + * OBSS scan disable CMD will send to FW if have enabled when tearing down connection. + */ + WMI_OBSS_SCAN_ENABLE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_OBSS_OFL), + WMI_OBSS_SCAN_DISABLE_CMDID, + + /**LPI commands*/ + /**LPI mgmt snooping config command*/ + WMI_LPI_MGMT_SNOOPING_CONFIG_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_LPI), + /**LPI scan start command*/ + WMI_LPI_START_SCAN_CMDID, + /**LPI scan stop command*/ + WMI_LPI_STOP_SCAN_CMDID, + + /** ExtScan commands */ + WMI_EXTSCAN_START_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_EXTSCAN), + WMI_EXTSCAN_STOP_CMDID, + WMI_EXTSCAN_CONFIGURE_WLAN_CHANGE_MONITOR_CMDID, + WMI_EXTSCAN_CONFIGURE_HOTLIST_MONITOR_CMDID, + WMI_EXTSCAN_GET_CACHED_RESULTS_CMDID, + WMI_EXTSCAN_GET_WLAN_CHANGE_RESULTS_CMDID, + WMI_EXTSCAN_SET_CAPABILITIES_CMDID, + WMI_EXTSCAN_GET_CAPABILITIES_CMDID, + WMI_EXTSCAN_CONFIGURE_HOTLIST_SSID_MONITOR_CMDID, + WMI_EXTSCAN_CONFIGURE_MAWC_CMDID, + + /** DHCP server offload commands */ + WMI_SET_DHCP_SERVER_OFFLOAD_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_DHCP_OFL), + + /** IPA Offload features related commands */ + WMI_IPA_OFFLOAD_ENABLE_DISABLE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_IPA), + + /** mDNS responder offload commands */ + WMI_MDNS_OFFLOAD_ENABLE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_MDNS_OFL), + WMI_MDNS_SET_FQDN_CMDID, + WMI_MDNS_SET_RESPONSE_CMDID, + WMI_MDNS_GET_STATS_CMDID, + + /* enable/disable AP Authentication offload */ + WMI_SAP_OFL_ENABLE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_SAP_OFL), + WMI_SAP_SET_BLACKLIST_PARAM_CMDID, + + /** Out-of-context-of-BSS (OCB) commands */ + WMI_OCB_SET_CONFIG_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_OCB), + WMI_OCB_SET_UTC_TIME_CMDID, + WMI_OCB_START_TIMING_ADVERT_CMDID, + WMI_OCB_STOP_TIMING_ADVERT_CMDID, + WMI_OCB_GET_TSF_TIMER_CMDID, + WMI_DCC_GET_STATS_CMDID, + WMI_DCC_CLEAR_STATS_CMDID, + WMI_DCC_UPDATE_NDL_CMDID, + + /* System-On-Chip commands */ + WMI_SOC_SET_PCL_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_SOC), + WMI_SOC_SET_HW_MODE_CMDID, + WMI_SOC_SET_DUAL_MAC_CONFIG_CMDID, + WMI_SOC_SET_ANTENNA_MODE_CMDID, + + /* packet filter commands */ + WMI_PACKET_FILTER_CONFIG_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_PKT_FILTER), + WMI_PACKET_FILTER_ENABLE_CMDID, + + /** Motion Aided WiFi Connectivity (MAWC) commands */ + WMI_MAWC_SENSOR_REPORT_IND_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_MAWC), + + /** WMI commands related to PMF 11w Offload */ + WMI_PMF_OFFLOAD_SET_SA_QUERY_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_PMF_OFFLOAD), + + /** WMI commands related to pkt filter (BPF) offload */ + WMI_BPF_GET_CAPABILITY_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_BPF_OFFLOAD), + WMI_BPF_GET_VDEV_STATS_CMDID, + WMI_BPF_SET_VDEV_INSTRUCTIONS_CMDID, + WMI_BPF_DEL_VDEV_INSTRUCTIONS_CMDID, + + /** WMI commands related to monitor mode. */ + WMI_MNT_FILTER_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_MONITOR), + + /** WMI commands related to regulatory offload */ + WMI_SET_CURRENT_COUNTRY_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_REGULATORY), + WMI_11D_SCAN_START_CMDID, + WMI_11D_SCAN_STOP_CMDID, + + /** + * Nan Data commands + * NDI - NAN Data Interface + * NDP - NAN Data Path + */ + /* Commands in prototyping phase */ + WMI_NDI_GET_CAP_REQ_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_PROTOTYPE), + WMI_NDP_INITIATOR_REQ_CMDID, + WMI_NDP_RESPONDER_REQ_CMDID, + WMI_NDP_END_REQ_CMDID, } WMI_CMD_ID; typedef enum { - /** WMI service is ready; after this event WMI messages can be sent/received */ - WMI_SERVICE_READY_EVENTID = 0x1, - /** WMI is ready; after this event the wlan subsystem is initialized and can process commands. */ - WMI_READY_EVENTID, - - /** - * Specify what WMI services the target supports - * (for services beyond what fits in the WMI_SERVICE_READY_EVENT - * message's wmi_service_bitmap) - */ - WMI_SERVICE_AVAILABLE_EVENTID, - - /** Scan specific events */ - WMI_SCAN_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_SCAN), - - /* PDEV specific events */ - /** TPC config for the current operating channel */ - WMI_PDEV_TPC_CONFIG_EVENTID = - WMI_EVT_GRP_START_ID(WMI_GRP_PDEV), - /** Channel stats event */ - WMI_CHAN_INFO_EVENTID, - - /** PHY Error specific WMI event */ - WMI_PHYERR_EVENTID, - - /** eeprom dump event */ - WMI_PDEV_DUMP_EVENTID, - - /** traffic pause event */ - WMI_TX_PAUSE_EVENTID, - - /** DFS radar event */ - WMI_DFS_RADAR_EVENTID, - - /** track L1SS entry and residency event */ - WMI_PDEV_L1SS_TRACK_EVENTID, - - /** Report current temprature of the chip in Celcius degree */ - WMI_PDEV_TEMPERATURE_EVENTID, - - /* Extension of WMI_SERVICE_READY msg with - * extra target capability info - */ - WMI_SERVICE_READY_EXT_EVENTID, - - /** FIPS test mode event */ - WMI_PDEV_FIPS_EVENTID, - - /** Channel hopping avoidance */ - WMI_PDEV_CHANNEL_HOPPING_EVENTID, - - /** CCK ANI level event */ - WMI_PDEV_ANI_CCK_LEVEL_EVENTID, - - /** OFDM ANI level event */ - WMI_PDEV_ANI_OFDM_LEVEL_EVENTID, - - /** Tx PPDU params */ - WMI_PDEV_TPC_EVENTID, - - /** NF Cal Power in DBR/DBM for all channels */ - WMI_PDEV_NFCAL_POWER_ALL_CHANNELS_EVENTID, - - /** SOC/PDEV events */ - WMI_PDEV_SET_HW_MODE_RESP_EVENTID, - WMI_PDEV_HW_MODE_TRANSITION_EVENTID, - WMI_PDEV_SET_MAC_CONFIG_RESP_EVENTID, - /** Report ANT DIV feature's status */ - WMI_PDEV_ANTDIV_STATUS_EVENTID, - /** Chip level Power stats */ - WMI_PDEV_CHIP_POWER_STATS_EVENTID, - - /* VDEV specific events */ - /** VDEV started event in response to VDEV_START request */ - WMI_VDEV_START_RESP_EVENTID = - WMI_EVT_GRP_START_ID(WMI_GRP_VDEV), - /** vdev stopped event , generated in response to VDEV_STOP request */ - WMI_VDEV_STOPPED_EVENTID, - /* Indicate the set key (used for setting per - * peer unicast and per vdev multicast) - * operation has completed */ - WMI_VDEV_INSTALL_KEY_COMPLETE_EVENTID, - /* NOTE: WMI_VDEV_MCC_BCN_INTERVAL_CHANGE_REQ_EVENTID would be deprecated. Please - don't use this for any new implementations */ - /* Firmware requests dynamic change to a specific beacon interval for a specific vdev ID in MCC scenario. - This request is valid only for vdevs operating in soft AP or P2P GO mode */ - WMI_VDEV_MCC_BCN_INTERVAL_CHANGE_REQ_EVENTID, - - /* Return the TSF timestamp of specified vdev */ - WMI_VDEV_TSF_REPORT_EVENTID, - - /* FW response to Host for vdev delete cmdid */ - WMI_VDEV_DELETE_RESP_EVENTID, - - /** - * DISA feature: FW response to Host with encrypted/decrypted - * 802.11 DISA frame - */ - WMI_VDEV_ENCRYPT_DECRYPT_DATA_RESP_EVENTID, - - /* peer specific events */ - /** FW reauet to kick out the station for reasons like inactivity,lack of response ..etc */ - WMI_PEER_STA_KICKOUT_EVENTID = - WMI_EVT_GRP_START_ID(WMI_GRP_PEER), - - /** Peer Info Event with data_rate, rssi, tx_fail_cnt etc */ - WMI_PEER_INFO_EVENTID, - - /** Event indicating that TX fail count reaching threshold */ - WMI_PEER_TX_FAIL_CNT_THR_EVENTID, - /** Return the estimate link speed for the Peer specified in the - * WMI_PEER_GET_ESTIMATED_LINKSPEED_CMDID command. - */ - WMI_PEER_ESTIMATED_LINKSPEED_EVENTID, - /* Return the peer state - * WMI_PEER_SET_PARAM_CMDID, WMI_PEER_AUTHORIZE - */ - WMI_PEER_STATE_EVENTID, - - /* Peer Assoc Conf event to confirm fw had received PEER_ASSOC_CMD. - * After that, host will send Mx message. - * Otherwise, host will pause any Mx(STA:M2/M4) message - */ - WMI_PEER_ASSOC_CONF_EVENTID, - - /* FW response to Host for peer delete cmdid */ - WMI_PEER_DELETE_RESP_EVENTID, - - /** Valid rate code list for peer */ - WMI_PEER_RATECODE_LIST_EVENTID, - WMI_WDS_PEER_EVENTID, - WMI_PEER_STA_PS_STATECHG_EVENTID, - /** Peer Ant Div Info Event with rssi per chain, etc */ - WMI_PEER_ANTDIV_INFO_EVENTID, - - /* beacon/mgmt specific events */ - /** RX management frame. the entire frame is carried along with the event. */ - WMI_MGMT_RX_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_MGMT), - /** software beacon alert event to Host requesting host to Queue a beacon for transmission - use only in host beacon mode */ - WMI_HOST_SWBA_EVENTID, - /** beacon tbtt offset event indicating the tsf offset of the tbtt from the theritical value. - tbtt offset is normally 0 and will be non zero if there are multiple VDEVs operating in - staggered beacon transmission mode */ - WMI_TBTTOFFSET_UPDATE_EVENTID, - - /** event after the first beacon is transmitted following - a change in the template.*/ - WMI_OFFLOAD_BCN_TX_STATUS_EVENTID, - /** event after the first probe response is transmitted following - a change in the template.*/ - WMI_OFFLOAD_PROB_RESP_TX_STATUS_EVENTID, - /** Event for Mgmt TX completion event */ - WMI_MGMT_TX_COMPLETION_EVENTID, - /** Event for Mgmt TX bundle completion event */ - WMI_MGMT_TX_BUNDLE_COMPLETION_EVENTID, - /** vdev_map used in WMI_TBTTOFFSET_UPDATE_EVENTID supports max 32 vdevs - * Use this event if number of vdevs > 32. - */ - WMI_TBTTOFFSET_EXT_UPDATE_EVENTID, - - /*ADDBA Related WMI Events */ - /** Indication the completion of the prior - WMI_PEER_TID_DELBA_CMDID(initiator) */ - WMI_TX_DELBA_COMPLETE_EVENTID = - WMI_EVT_GRP_START_ID(WMI_GRP_BA_NEG), - /** Indication the completion of the prior - *WMI_PEER_TID_ADDBA_CMDID(initiator) */ - WMI_TX_ADDBA_COMPLETE_EVENTID, - - /* Seq num returned from hw for a sta/tid pair */ - WMI_BA_RSP_SSN_EVENTID, - - /* Aggregation state requested by BTC */ - WMI_AGGR_STATE_TRIG_EVENTID, - - /** Roam event to trigger roaming on host */ - WMI_ROAM_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_ROAM), - - /** matching AP found from list of profiles */ - WMI_PROFILE_MATCH, - /** roam synch event */ - WMI_ROAM_SYNCH_EVENTID, - - /** P2P disc found */ - WMI_P2P_DISC_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_P2P), - /*send noa info to host when noa is changed for beacon tx offload enable */ - WMI_P2P_NOA_EVENTID, - /** send p2p listen offload stopped event with different reason */ - WMI_P2P_LISTEN_OFFLOAD_STOPPED_EVENTID, - - /** Send EGAP Info to host */ - WMI_AP_PS_EGAP_INFO_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_AP_PS), - - /* send pdev resume event to host after pdev resume. */ - WMI_PDEV_RESUME_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_SUSPEND), - - /** WOW wake up host event.generated in response to WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID. - will cary wake reason */ - WMI_WOW_WAKEUP_HOST_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_WOW), - WMI_D0_WOW_DISABLE_ACK_EVENTID, - WMI_WOW_INITIAL_WAKEUP_EVENTID, - - /*RTT related event ID */ - /** RTT measurement report */ - WMI_RTT_MEASUREMENT_REPORT_EVENTID = - WMI_EVT_GRP_START_ID(WMI_GRP_RTT), - /** TSF measurement report */ - WMI_TSF_MEASUREMENT_REPORT_EVENTID, - /** RTT error report */ - WMI_RTT_ERROR_REPORT_EVENTID, - /*STATS specific events */ - /** txrx stats event requested by host */ - WMI_STATS_EXT_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_STATS), - /** FW iface link stats Event */ - WMI_IFACE_LINK_STATS_EVENTID, - /** FW iface peer link stats Event */ - WMI_PEER_LINK_STATS_EVENTID, - /** FW Update radio stats Event */ - WMI_RADIO_LINK_STATS_EVENTID, - /** Firmware memory dump Complete event*/ - WMI_UPDATE_FW_MEM_DUMP_EVENTID, - - /** Event indicating the DIAG logs/events supported by FW */ - WMI_DIAG_EVENT_LOG_SUPPORTED_EVENTID, - - /** Instantaneous RSSI event */ - WMI_INST_RSSI_STATS_EVENTID, - - /** FW update tx power levels event */ - WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID, - - /** This event is used to report wlan stats to host. - * It is triggered under 3 conditions: - * (a) Periodic timer timed out, based on the period specified - * by WMI_PDEV_PARAM_STATS_OBSERVATION_PERIOD - * (b) Whenever any of the (enabled) stats thresholds specified - * in the WMI_PDEV_SET_STATS_THRESHOLD_CMD message is exceeded - * within the current stats period. - * (c) In response to the one-time wlan stats request of - * WMI_REQUEST_WLAN_STATS_CMDID from host. - * - * If this event is triggered by condition a or b, - * the stats counters are cleared at the start of each period. - * But if it is triggered by condition c, stats counters won't be cleared. - */ - WMI_REPORT_STATS_EVENTID, - - /** Event indicating RCPI of the peer requested by host in the - * WMI_REQUEST_RCPI_CMDID */ - WMI_UPDATE_RCPI_EVENTID, - - /** NLO specific events */ - /** NLO match event after the first match */ - WMI_NLO_MATCH_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_NLO_OFL), - - /** NLO scan complete event */ - WMI_NLO_SCAN_COMPLETE_EVENTID, - - /** APFIND specific events */ - WMI_APFIND_EVENTID, - - /** passpoint network match event */ - WMI_PASSPOINT_MATCH_EVENTID, - - /** GTK offload stautus event requested by host */ - WMI_GTK_OFFLOAD_STATUS_EVENTID = - WMI_EVT_GRP_START_ID(WMI_GRP_GTK_OFL), - - /** GTK offload failed to rekey event */ - WMI_GTK_REKEY_FAIL_EVENTID, - /* CSA IE received event */ - WMI_CSA_HANDLING_EVENTID = - WMI_EVT_GRP_START_ID(WMI_GRP_CSA_OFL), - - /*chatter query reply event */ - WMI_CHATTER_PC_QUERY_EVENTID = - WMI_EVT_GRP_START_ID(WMI_GRP_CHATTER), - /** DFS related events */ - WMI_PDEV_DFS_RADAR_DETECTION_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_DFS), - /** Indicate channel-availability-check completion event to host */ - WMI_VDEV_DFS_CAC_COMPLETE_EVENTID, - /** Indicate off-channel-availability-check completion event to host */ - WMI_VDEV_ADFS_OCAC_COMPLETE_EVENTID, - /** echo event in response to echo command */ - WMI_ECHO_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_MISC), - - /* !!IMPORTANT!! - * If you need to add a new WMI event ID to the WMI_GRP_MISC sub-group, - * please make sure you add it BEHIND WMI_PDEV_UTF_EVENTID, - * as we MUST have a fixed value here to maintain compatibility between - * UTF and the ART2 driver - */ - /** UTF specific WMI event */ - WMI_PDEV_UTF_EVENTID, - - /** event carries buffered debug messages */ - WMI_DEBUG_MESG_EVENTID, - /** FW stats(periodic or on shot) */ - WMI_UPDATE_STATS_EVENTID, - /** debug print message used for tracing FW code while debugging */ - WMI_DEBUG_PRINT_EVENTID, - /** DCS wlan or non-wlan interference event - */ - WMI_DCS_INTERFERENCE_EVENTID, - /** VI spoecific event */ - WMI_PDEV_QVIT_EVENTID, - /** FW code profile data in response to profile request */ - WMI_WLAN_PROFILE_DATA_EVENTID, - /* Factory Testing Mode request event - * used for integrated chipsets */ - WMI_PDEV_FTM_INTG_EVENTID, - /* avoid list of frequencies . - */ - WMI_WLAN_FREQ_AVOID_EVENTID, - /* Indicate the keepalive parameters */ - WMI_VDEV_GET_KEEPALIVE_EVENTID, - /* Thermal Management event */ - WMI_THERMAL_MGMT_EVENTID, - - /* Container for QXDM/DIAG events */ - WMI_DIAG_DATA_CONTAINER_EVENTID, - - /* host auto shutdown event */ - WMI_HOST_AUTO_SHUTDOWN_EVENTID, - - /*update mib counters together with WMI_UPDATE_STATS_EVENTID */ - WMI_UPDATE_WHAL_MIB_STATS_EVENTID, - - /*update ht/vht info based on vdev (rx and tx NSS and preamble) */ - WMI_UPDATE_VDEV_RATE_STATS_EVENTID, - - WMI_DIAG_EVENTID, - - /** Set OCB Sched Response, deprecated */ - WMI_OCB_SET_SCHED_EVENTID, - - /* event to indicate the flush of the buffered debug messages is complete*/ - WMI_DEBUG_MESG_FLUSH_COMPLETE_EVENTID, - /* event to report mix/max RSSI breach events */ - WMI_RSSI_BREACH_EVENTID, - /* event to report completion of data storage into flash memory */ - WMI_TRANSFER_DATA_TO_FLASH_COMPLETE_EVENTID, - - /** event to report SCPC calibrated data to host */ - WMI_PDEV_UTF_SCPC_EVENTID, - - /** event to provide requested data from the target's flash memory */ - WMI_READ_DATA_FROM_FLASH_EVENTID, - - /** event to report rx aggregation failure frame information */ - WMI_REPORT_RX_AGGR_FAILURE_EVENTID, - - /* GPIO Event */ - WMI_GPIO_INPUT_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_GPIO), - /** upload H_CV info WMI event - * to indicate uploaded H_CV info to host - */ - WMI_UPLOADH_EVENTID, - - /** capture H info WMI event - * to indicate captured H info to host - */ - WMI_CAPTUREH_EVENTID, - /* hw RFkill */ - WMI_RFKILL_STATE_CHANGE_EVENTID, - - /* TDLS Event */ - WMI_TDLS_PEER_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_TDLS), - - /* STA SMPS Event */ - /* force SMPS mode */ - WMI_STA_SMPS_FORCE_MODE_COMPLETE_EVENTID = - WMI_EVT_GRP_START_ID(WMI_GRP_STA_SMPS), - - /*location scan event */ - /*report the firmware's capability of batch scan */ - WMI_BATCH_SCAN_ENABLED_EVENTID = - WMI_EVT_GRP_START_ID(WMI_GRP_LOCATION_SCAN), - /*batch scan result */ - WMI_BATCH_SCAN_RESULT_EVENTID, - /* OEM Event */ - WMI_OEM_CAPABILITY_EVENTID = /* DEPRECATED */ - WMI_EVT_GRP_START_ID(WMI_GRP_OEM), - WMI_OEM_MEASUREMENT_REPORT_EVENTID, /* DEPRECATED */ - WMI_OEM_ERROR_REPORT_EVENTID, /* DEPRECATED */ - WMI_OEM_RESPONSE_EVENTID, - - /* NAN Event */ - WMI_NAN_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_NAN), - WMI_NAN_DISC_IFACE_CREATED_EVENTID, - WMI_NAN_DISC_IFACE_DELETED_EVENTID, - WMI_NAN_STARTED_CLUSTER_EVENTID, - WMI_NAN_JOINED_CLUSTER_EVENTID, - - /* Coex Event */ - WMI_COEX_REPORT_ANTENNA_ISOLATION_EVENTID = - WMI_EVT_GRP_START_ID(WMI_GRP_COEX), - - /* LPI Event */ - WMI_LPI_RESULT_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_LPI), - WMI_LPI_STATUS_EVENTID, - WMI_LPI_HANDOFF_EVENTID, - - /* ExtScan events */ - WMI_EXTSCAN_START_STOP_EVENTID = - WMI_EVT_GRP_START_ID(WMI_GRP_EXTSCAN), - WMI_EXTSCAN_OPERATION_EVENTID, - WMI_EXTSCAN_TABLE_USAGE_EVENTID, - WMI_EXTSCAN_CACHED_RESULTS_EVENTID, - WMI_EXTSCAN_WLAN_CHANGE_RESULTS_EVENTID, - WMI_EXTSCAN_HOTLIST_MATCH_EVENTID, - WMI_EXTSCAN_CAPABILITIES_EVENTID, - WMI_EXTSCAN_HOTLIST_SSID_MATCH_EVENTID, - - /* mDNS offload events */ - WMI_MDNS_STATS_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_MDNS_OFL), - - /* SAP Authentication offload events */ - WMI_SAP_OFL_ADD_STA_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_SAP_OFL), - WMI_SAP_OFL_DEL_STA_EVENTID, - - /** Out-of-context-of-bss (OCB) events */ - WMI_OCB_SET_CONFIG_RESP_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_OCB), - WMI_OCB_GET_TSF_TIMER_RESP_EVENTID, - WMI_DCC_GET_STATS_RESP_EVENTID, - WMI_DCC_UPDATE_NDL_RESP_EVENTID, - WMI_DCC_STATS_EVENTID, - /* System-On-Chip events */ - WMI_SOC_SET_HW_MODE_RESP_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_SOC), - WMI_SOC_HW_MODE_TRANSITION_EVENTID, - WMI_SOC_SET_DUAL_MAC_CONFIG_RESP_EVENTID, - /** Motion Aided WiFi Connectivity (MAWC) events */ - WMI_MAWC_ENABLE_SENSOR_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_MAWC), - - /** pkt filter (BPF) offload relevant events */ - WMI_BPF_CAPABILIY_INFO_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_BPF_OFFLOAD), - WMI_BPF_VDEV_STATS_INFO_EVENTID, - - /* Events in Prototyping phase */ - WMI_NDI_CAP_RSP_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_PROTOTYPE), - WMI_NDP_INITIATOR_RSP_EVENTID, - WMI_NDP_RESPONDER_RSP_EVENTID, - WMI_NDP_END_RSP_EVENTID, - WMI_NDP_INDICATION_EVENTID, - WMI_NDP_CONFIRM_EVENTID, - WMI_NDP_END_INDICATION_EVENTID, + /** WMI service is ready; after this event WMI messages can be sent/received */ + WMI_SERVICE_READY_EVENTID = 0x1, + /** WMI is ready; after this event the wlan subsystem is initialized and can process commands. */ + WMI_READY_EVENTID, + + /** Specify what WMI services the target supports (for services beyond + * what fits in the WMI_SERVICE_READY_EVENT message's wmi_service_bitmap) + */ + WMI_SERVICE_AVAILABLE_EVENTID, + + /** Scan specific events */ + WMI_SCAN_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_SCAN), + + /* PDEV specific events */ + /** TPC config for the current operating channel */ + WMI_PDEV_TPC_CONFIG_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_PDEV), + /** Channel stats event */ + WMI_CHAN_INFO_EVENTID, + + /** PHY Error specific WMI event */ + WMI_PHYERR_EVENTID, + + /** eeprom dump event */ + WMI_PDEV_DUMP_EVENTID, + + /** traffic pause event */ + WMI_TX_PAUSE_EVENTID, + + /** DFS radar event */ + WMI_DFS_RADAR_EVENTID, + + /** track L1SS entry and residency event */ + WMI_PDEV_L1SS_TRACK_EVENTID, + + /** Report current temprature of the chip in Celcius degree */ + WMI_PDEV_TEMPERATURE_EVENTID, + + /** Extension of WMI_SERVICE_READY msg with extra target capability info */ + WMI_SERVICE_READY_EXT_EVENTID, + + /** FIPS test mode event */ + WMI_PDEV_FIPS_EVENTID, + + /** Channel hopping avoidance */ + WMI_PDEV_CHANNEL_HOPPING_EVENTID, + + /** CCK ANI level event */ + WMI_PDEV_ANI_CCK_LEVEL_EVENTID, + + /** OFDM ANI level event */ + WMI_PDEV_ANI_OFDM_LEVEL_EVENTID, + + /** Tx PPDU params */ + WMI_PDEV_TPC_EVENTID, + + /** NF Cal Power in DBR/DBM for all channels */ + WMI_PDEV_NFCAL_POWER_ALL_CHANNELS_EVENTID, + + /** SOC/PDEV events */ + WMI_PDEV_SET_HW_MODE_RESP_EVENTID, + WMI_PDEV_HW_MODE_TRANSITION_EVENTID, + WMI_PDEV_SET_MAC_CONFIG_RESP_EVENTID, + /** Report ANT DIV feature's status */ + WMI_PDEV_ANTDIV_STATUS_EVENTID, + /** Chip level Power stats */ + WMI_PDEV_CHIP_POWER_STATS_EVENTID, + + /* VDEV specific events */ + /** VDEV started event in response to VDEV_START request */ + WMI_VDEV_START_RESP_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_VDEV), + /** vdev stopped event , generated in response to VDEV_STOP request */ + WMI_VDEV_STOPPED_EVENTID, + /* Indicate the set key (used for setting per + * peer unicast and per vdev multicast) + * operation has completed */ + WMI_VDEV_INSTALL_KEY_COMPLETE_EVENTID, + /* NOTE: WMI_VDEV_MCC_BCN_INTERVAL_CHANGE_REQ_EVENTID would be deprecated. Please + don't use this for any new implementations */ + /* Firmware requests dynamic change to a specific beacon interval for a specific vdev ID in MCC scenario. + This request is valid only for vdevs operating in soft AP or P2P GO mode */ + WMI_VDEV_MCC_BCN_INTERVAL_CHANGE_REQ_EVENTID, + + /* Return the TSF timestamp of specified vdev */ + WMI_VDEV_TSF_REPORT_EVENTID, + + /* FW response to Host for vdev delete cmdid */ + WMI_VDEV_DELETE_RESP_EVENTID, + + /* DISA feature: FW response to Host with encrypted/decrypted 802.11 DISA frame */ + WMI_VDEV_ENCRYPT_DECRYPT_DATA_RESP_EVENTID, + + /* peer specific events */ + /** FW reauet to kick out the station for reasons like inactivity,lack of response ..etc */ + WMI_PEER_STA_KICKOUT_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_PEER), + + /** Peer Info Event with data_rate, rssi, tx_fail_cnt etc */ + WMI_PEER_INFO_EVENTID, + + /** Event indicating that TX fail count reaching threshold */ + WMI_PEER_TX_FAIL_CNT_THR_EVENTID, + + /* Return the estimate link speed for the Peer specified in the + * WMI_PEER_GET_ESTIMATED_LINKSPEED_CMDID command. + */ + WMI_PEER_ESTIMATED_LINKSPEED_EVENTID, + /* Return the peer state + * WMI_PEER_SET_PARAM_CMDID, WMI_PEER_AUTHORIZE + */ + WMI_PEER_STATE_EVENTID, + + /* Peer Assoc Conf event to confirm fw had received PEER_ASSOC_CMD. + * After that, host will send Mx message. + * Otherwise, host will pause any Mx(STA:M2/M4) message + */ + WMI_PEER_ASSOC_CONF_EVENTID, + + /* FW response to Host for peer delete cmdid */ + WMI_PEER_DELETE_RESP_EVENTID, + + /** Valid rate code list for peer */ + WMI_PEER_RATECODE_LIST_EVENTID, + WMI_WDS_PEER_EVENTID, + WMI_PEER_STA_PS_STATECHG_EVENTID, + /** Peer Ant Div Info Event with rssi per chain, etc */ + WMI_PEER_ANTDIV_INFO_EVENTID, + + /* beacon/mgmt specific events */ + /** RX management frame. the entire frame is carried along with the event. */ + WMI_MGMT_RX_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_MGMT), + /** software beacon alert event to Host requesting host to Queue a beacon for transmission + use only in host beacon mode */ + WMI_HOST_SWBA_EVENTID, + /** beacon tbtt offset event indicating the tsf offset of the tbtt from the theritical value. + tbtt offset is normally 0 and will be non zero if there are multiple VDEVs operating in + staggered beacon transmission mode */ + WMI_TBTTOFFSET_UPDATE_EVENTID, + + /** event after the first beacon is transmitted following + a change in the template.*/ + WMI_OFFLOAD_BCN_TX_STATUS_EVENTID, + /** event after the first probe response is transmitted following + a change in the template.*/ + WMI_OFFLOAD_PROB_RESP_TX_STATUS_EVENTID, + /** Event for Mgmt TX completion event */ + WMI_MGMT_TX_COMPLETION_EVENTID, + /** Event for Mgmt TX bundle completion event */ + WMI_MGMT_TX_BUNDLE_COMPLETION_EVENTID, + /** vdev_map used in WMI_TBTTOFFSET_UPDATE_EVENTID supports max 32 vdevs. + * Use this event if number of vdevs > 32. + */ + WMI_TBTTOFFSET_EXT_UPDATE_EVENTID, + + /*ADDBA Related WMI Events*/ + /** Indication the completion of the prior + WMI_PEER_TID_DELBA_CMDID(initiator) */ + WMI_TX_DELBA_COMPLETE_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_BA_NEG), + /** Indication the completion of the prior + *WMI_PEER_TID_ADDBA_CMDID(initiator) */ + WMI_TX_ADDBA_COMPLETE_EVENTID, + + /* Seq num returned from hw for a sta/tid pair */ + WMI_BA_RSP_SSN_EVENTID, + + /* Aggregation state requested by BTC */ + WMI_AGGR_STATE_TRIG_EVENTID, + + /** Roam event to trigger roaming on host */ + WMI_ROAM_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_ROAM), + + /** matching AP found from list of profiles */ + WMI_PROFILE_MATCH, + /** roam synch event */ + WMI_ROAM_SYNCH_EVENTID, + + /** P2P disc found */ + WMI_P2P_DISC_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_P2P), + /** send noa info to host when noa is changed for beacon tx offload enable */ + WMI_P2P_NOA_EVENTID, + /** send p2p listen offload stopped event with different reason */ + WMI_P2P_LISTEN_OFFLOAD_STOPPED_EVENTID, + + /** Send EGAP Info to host */ + WMI_AP_PS_EGAP_INFO_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_AP_PS), + + /* send pdev resume event to host after pdev resume. */ + WMI_PDEV_RESUME_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_SUSPEND), + + /** WOW wake up host event.generated in response to WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID. + will cary wake reason */ + WMI_WOW_WAKEUP_HOST_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_WOW), + WMI_D0_WOW_DISABLE_ACK_EVENTID, + WMI_WOW_INITIAL_WAKEUP_EVENTID, + + /*RTT related event ID*/ + /** RTT measurement report */ + WMI_RTT_MEASUREMENT_REPORT_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_RTT), + /** TSF measurement report */ + WMI_TSF_MEASUREMENT_REPORT_EVENTID, + /** RTT error report */ + WMI_RTT_ERROR_REPORT_EVENTID, + + /*STATS specific events*/ + /** txrx stats event requested by host */ + WMI_STATS_EXT_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_STATS), + /** FW iface link stats Event */ + WMI_IFACE_LINK_STATS_EVENTID, + /** FW iface peer link stats Event */ + WMI_PEER_LINK_STATS_EVENTID, + /** FW Update radio stats Event */ + WMI_RADIO_LINK_STATS_EVENTID, + + /** Firmware memory dump Complete event*/ + WMI_UPDATE_FW_MEM_DUMP_EVENTID, + + /** Event indicating the DIAG logs/events supported by FW */ + WMI_DIAG_EVENT_LOG_SUPPORTED_EVENTID, + + /** Instantaneous RSSI event */ + WMI_INST_RSSI_STATS_EVENTID, + + /** FW update tx power levels event */ + WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID, + + /** This event is used to report wlan stats to host. + * It is triggered under 3 conditions: + * (a) Periodic timer timed out, based on the period specified + * by WMI_PDEV_PARAM_STATS_OBSERVATION_PERIOD + * (b) Whenever any of the (enabled) stats thresholds specified + * in the WMI_PDEV_SET_STATS_THRESHOLD_CMD message is exceeded + * within the current stats period. + * (c) In response to the one-time wlan stats request of + * WMI_REQUEST_WLAN_STATS_CMDID from host. + * + * If this event is triggered by condition a or b, + * the stats counters are cleared at the start of each period. + * But if it is triggered by condition c, stats counters won't be cleared. + */ + WMI_REPORT_STATS_EVENTID, + + /** Event indicating RCPI of the peer requested by host in the WMI_REQUEST_RCPI_CMDID */ + WMI_UPDATE_RCPI_EVENTID, + + /** This event is used to respond to WMI_REQUEST_PEER_STATS_INFO_CMDID + * and report peer stats info to host */ + WMI_PEER_STATS_INFO_EVENTID, + + + /* NLO specific events */ + /** NLO match event after the first match */ + WMI_NLO_MATCH_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_NLO_OFL), + + /** NLO scan complete event */ + WMI_NLO_SCAN_COMPLETE_EVENTID, + + /** APFIND specific events */ + WMI_APFIND_EVENTID, + + /** passpoint network match event */ + WMI_PASSPOINT_MATCH_EVENTID, + + /** GTK offload stautus event requested by host */ + WMI_GTK_OFFLOAD_STATUS_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_GTK_OFL), + + /** GTK offload failed to rekey event */ + WMI_GTK_REKEY_FAIL_EVENTID, + /* CSA IE received event */ + WMI_CSA_HANDLING_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_CSA_OFL), + + /*chatter query reply event*/ + WMI_CHATTER_PC_QUERY_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_CHATTER), + + /** DFS related events */ + WMI_PDEV_DFS_RADAR_DETECTION_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_DFS), + /** Indicate channel-availability-check completion event to host */ + WMI_VDEV_DFS_CAC_COMPLETE_EVENTID, + /** Indicate off-channel-availability-check completion event to host */ + WMI_VDEV_ADFS_OCAC_COMPLETE_EVENTID, + + /** echo event in response to echo command */ + WMI_ECHO_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_MISC), + + /* !!IMPORTANT!! + * If you need to add a new WMI event ID to the WMI_GRP_MISC sub-group, + * please make sure you add it BEHIND WMI_PDEV_UTF_EVENTID, + * as we MUST have a fixed value here to maintain compatibility between + * UTF and the ART2 driver + */ + /** UTF specific WMI event */ + WMI_PDEV_UTF_EVENTID, + + /** event carries buffered debug messages */ + WMI_DEBUG_MESG_EVENTID, + /** FW stats(periodic or on shot) */ + WMI_UPDATE_STATS_EVENTID, + /** debug print message used for tracing FW code while debugging */ + WMI_DEBUG_PRINT_EVENTID, + /** DCS wlan or non-wlan interference event + */ + WMI_DCS_INTERFERENCE_EVENTID, + /** VI spoecific event */ + WMI_PDEV_QVIT_EVENTID, + /** FW code profile data in response to profile request */ + WMI_WLAN_PROFILE_DATA_EVENTID, + /* Factory Testing Mode request event + * used for integrated chipsets */ + WMI_PDEV_FTM_INTG_EVENTID, + /* avoid list of frequencies . + */ + WMI_WLAN_FREQ_AVOID_EVENTID, + /* Indicate the keepalive parameters */ + WMI_VDEV_GET_KEEPALIVE_EVENTID, + /*Thermal Management event*/ + WMI_THERMAL_MGMT_EVENTID, + + /* Container for DIAG event and log data */ + WMI_DIAG_DATA_CONTAINER_EVENTID, + + /* host auto shutdown event */ + WMI_HOST_AUTO_SHUTDOWN_EVENTID, + + /*update mib counters together with WMI_UPDATE_STATS_EVENTID*/ + WMI_UPDATE_WHAL_MIB_STATS_EVENTID, + + /*update ht/vht info based on vdev (rx and tx NSS and preamble)*/ + WMI_UPDATE_VDEV_RATE_STATS_EVENTID, + + WMI_DIAG_EVENTID, + + /** Set OCB Sched Response, deprecated */ + WMI_OCB_SET_SCHED_EVENTID, + + /** event to indicate the flush of the buffered debug messages is complete*/ + WMI_DEBUG_MESG_FLUSH_COMPLETE_EVENTID, + + /** event to report mix/max RSSI breach events */ + WMI_RSSI_BREACH_EVENTID, + + /** event to report completion of data storage into flash memory */ + WMI_TRANSFER_DATA_TO_FLASH_COMPLETE_EVENTID, + + /** event to report SCPC calibrated data to host */ + WMI_PDEV_UTF_SCPC_EVENTID, + + /** event to provide requested data from the target's flash memory */ + WMI_READ_DATA_FROM_FLASH_EVENTID, + + /** event to report rx aggregation failure frame information */ + WMI_REPORT_RX_AGGR_FAILURE_EVENTID, + + /** event to upload a PKGID to host to identify chip for various products */ + WMI_PKGID_EVENTID, + + /* GPIO Event */ + WMI_GPIO_INPUT_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_GPIO), + /** upload H_CV info WMI event + * to indicate uploaded H_CV info to host + */ + WMI_UPLOADH_EVENTID, + + /** capture H info WMI event + * to indicate captured H info to host + */ + WMI_CAPTUREH_EVENTID, + /* hw RFkill */ + WMI_RFKILL_STATE_CHANGE_EVENTID, + + /* TDLS Event */ + WMI_TDLS_PEER_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_TDLS), + + /** STA SMPS Event */ + /** force SMPS mode */ + WMI_STA_SMPS_FORCE_MODE_COMPLETE_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_STA_SMPS), + + /*location scan event*/ + /*report the firmware's capability of batch scan*/ + WMI_BATCH_SCAN_ENABLED_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_LOCATION_SCAN), + /*batch scan result*/ + WMI_BATCH_SCAN_RESULT_EVENTID, + /* OEM Event */ + WMI_OEM_CAPABILITY_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_OEM), /*DEPRECATED*/ + WMI_OEM_MEASUREMENT_REPORT_EVENTID, /* DEPRECATED */ + WMI_OEM_ERROR_REPORT_EVENTID, /* DEPRECATED */ + WMI_OEM_RESPONSE_EVENTID, + + /* NAN Event */ + WMI_NAN_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_NAN), + WMI_NAN_DISC_IFACE_CREATED_EVENTID, + WMI_NAN_DISC_IFACE_DELETED_EVENTID, + WMI_NAN_STARTED_CLUSTER_EVENTID, + WMI_NAN_JOINED_CLUSTER_EVENTID, + + /* Coex Event */ + WMI_COEX_REPORT_ANTENNA_ISOLATION_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_COEX), + + /* LPI Event */ + WMI_LPI_RESULT_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_LPI), + WMI_LPI_STATUS_EVENTID, + WMI_LPI_HANDOFF_EVENTID, + + /* ExtScan events */ + WMI_EXTSCAN_START_STOP_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_EXTSCAN), + WMI_EXTSCAN_OPERATION_EVENTID, + WMI_EXTSCAN_TABLE_USAGE_EVENTID, + WMI_EXTSCAN_CACHED_RESULTS_EVENTID, + WMI_EXTSCAN_WLAN_CHANGE_RESULTS_EVENTID, + WMI_EXTSCAN_HOTLIST_MATCH_EVENTID, + WMI_EXTSCAN_CAPABILITIES_EVENTID, + WMI_EXTSCAN_HOTLIST_SSID_MATCH_EVENTID, + + /* mDNS offload events */ + WMI_MDNS_STATS_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_MDNS_OFL), + + /* SAP Authentication offload events */ + WMI_SAP_OFL_ADD_STA_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_SAP_OFL), + WMI_SAP_OFL_DEL_STA_EVENTID, + + /** Out-of-context-of-bss (OCB) events */ + WMI_OCB_SET_CONFIG_RESP_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_OCB), + WMI_OCB_GET_TSF_TIMER_RESP_EVENTID, + WMI_DCC_GET_STATS_RESP_EVENTID, + WMI_DCC_UPDATE_NDL_RESP_EVENTID, + WMI_DCC_STATS_EVENTID, + + /* System-On-Chip events */ + WMI_SOC_SET_HW_MODE_RESP_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_SOC), + WMI_SOC_HW_MODE_TRANSITION_EVENTID, + WMI_SOC_SET_DUAL_MAC_CONFIG_RESP_EVENTID, + + /** Motion Aided WiFi Connectivity (MAWC) events */ + WMI_MAWC_ENABLE_SENSOR_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_MAWC), + + /** pkt filter (BPF) offload relevant events */ + WMI_BPF_CAPABILIY_INFO_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_BPF_OFFLOAD), + WMI_BPF_VDEV_STATS_INFO_EVENTID, + + + /* RMC specific event */ + /* RMC manual leader selected event */ + WMI_RMC_NEW_LEADER_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_RMC), + + /** WMI events related to regulatory offload */ + WMI_REG_CHAN_LIST_CC_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_REGULATORY), + WMI_11D_NEW_COUNTRY_EVENTID, + + /** Events in Prototyping phase */ + WMI_NDI_CAP_RSP_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_PROTOTYPE), + WMI_NDP_INITIATOR_RSP_EVENTID, + WMI_NDP_RESPONDER_RSP_EVENTID, + WMI_NDP_END_RSP_EVENTID, + WMI_NDP_INDICATION_EVENTID, + WMI_NDP_CONFIRM_EVENTID, + WMI_NDP_END_INDICATION_EVENTID, } WMI_EVT_ID; /* defines for OEM message sub-types */ @@ -1493,43 +1475,39 @@ typedef enum { #define WMI_OEM_CONFIGURE_LCR 0x09 #define WMI_OEM_CONFIGURE_LCI 0x0A -/* below message subtype is internal to CLD. Target should - * never use internal response type - */ -#define WMI_OEM_INTERNAL_RSP 0xdeadbeef -#define WMI_CHAN_LIST_TAG 0x1 -#define WMI_SSID_LIST_TAG 0x2 -#define WMI_BSSID_LIST_TAG 0x3 -#define WMI_IE_TAG 0x4 +#define WMI_CHAN_LIST_TAG 0x1 +#define WMI_SSID_LIST_TAG 0x2 +#define WMI_BSSID_LIST_TAG 0x3 +#define WMI_IE_TAG 0x4 typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_channel */ - /** primary 20 MHz channel frequency in mhz */ - A_UINT32 mhz; - /** Center frequency 1 in MHz*/ - A_UINT32 band_center_freq1; - /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/ - A_UINT32 band_center_freq2; - /** channel info described below */ - A_UINT32 info; - /** contains min power, max power, reg power and reg class id. */ - A_UINT32 reg_info_1; - /** contains antennamax */ - A_UINT32 reg_info_2; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_channel */ + /** primary 20 MHz channel frequency in mhz */ + A_UINT32 mhz; + /** Center frequency 1 in MHz*/ + A_UINT32 band_center_freq1; + /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/ + A_UINT32 band_center_freq2; + /** channel info described below */ + A_UINT32 info; + /** contains min power, max power, reg power and reg class id. */ + A_UINT32 reg_info_1; + /** contains antennamax */ + A_UINT32 reg_info_2; } wmi_channel; typedef enum { - WMI_CHANNEL_CHANGE_CAUSE_NONE = 0, - WMI_CHANNEL_CHANGE_CAUSE_CSA, + WMI_CHANNEL_CHANGE_CAUSE_NONE = 0, + WMI_CHANNEL_CHANGE_CAUSE_CSA, } wmi_channel_change_cause; /** channel info consists of 6 bits of channel mode */ -#define WMI_SET_CHANNEL_MODE(pwmi_channel, val) do { \ - (pwmi_channel)->info &= 0xffffffc0; \ - (pwmi_channel)->info |= (val); \ -} while (0) +#define WMI_SET_CHANNEL_MODE(pwmi_channel,val) do { \ + (pwmi_channel)->info &= 0xffffffc0; \ + (pwmi_channel)->info |= (val); \ + } while (0) #define WMI_GET_CHANNEL_MODE(pwmi_channel) ((pwmi_channel)->info & 0x0000003f) @@ -1538,96 +1516,98 @@ typedef enum { #define WMI_CHAN_ADHOC_ALLOWED 8 #define WMI_CHAN_AP_DISABLED 9 #define WMI_CHAN_FLAG_DFS 10 -#define WMI_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */ -#define WMI_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */ +#define WMI_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */ +#define WMI_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */ #define WMI_CHANNEL_CHANGE_CAUSE_CSA 13 /*Indicate reason for channel switch */ #define WMI_CHAN_FLAG_HALF_RATE 14 /* Indicates half rate channel */ #define WMI_CHAN_FLAG_QUARTER_RATE 15 /* Indicates quarter rate channel */ -/* Enable radar event reporting for sec80 in VHT80p80 */ -#define WMI_CHAN_FLAG_DFS_CFREQ2 16 +#define WMI_CHAN_FLAG_DFS_CFREQ2 16 /* Enable radar event reporting for sec80 in VHT80p80 */ #define WMI_CHAN_FLAG_ALLOW_HE 17 /* HE (11ax) is allowed on this channel */ -#define WMI_SET_CHANNEL_FLAG(pwmi_channel, flag) do { \ - (pwmi_channel)->info |= (1 << flag); \ -} while (0) +#define WMI_SET_CHANNEL_FLAG(pwmi_channel,flag) do { \ + (pwmi_channel)->info |= (1 << flag); \ + } while (0) -#define WMI_GET_CHANNEL_FLAG(pwmi_channel, flag) \ - (((pwmi_channel)->info & (1 << flag)) >> flag) +#define WMI_GET_CHANNEL_FLAG(pwmi_channel,flag) \ + (((pwmi_channel)->info & (1 << flag)) >> flag) -#define WMI_SET_CHANNEL_MIN_POWER(pwmi_channel, val) do { \ - (pwmi_channel)->reg_info_1 &= 0xffffff00; \ - (pwmi_channel)->reg_info_1 |= (val&0xff); \ -} while (0) +#define WMI_SET_CHANNEL_MIN_POWER(pwmi_channel,val) do { \ + (pwmi_channel)->reg_info_1 &= 0xffffff00; \ + (pwmi_channel)->reg_info_1 |= (val & 0xff); \ + } while (0) #define WMI_GET_CHANNEL_MIN_POWER(pwmi_channel) ((pwmi_channel)->reg_info_1 & 0xff) -#define WMI_SET_CHANNEL_MAX_POWER(pwmi_channel, val) do { \ - (pwmi_channel)->reg_info_1 &= 0xffff00ff; \ - (pwmi_channel)->reg_info_1 |= ((val&0xff) << 8); \ -} while (0) +#define WMI_SET_CHANNEL_MAX_POWER(pwmi_channel,val) do { \ + (pwmi_channel)->reg_info_1 &= 0xffff00ff; \ + (pwmi_channel)->reg_info_1 |= ((val & 0xff) << 8); \ + } while (0) #define WMI_GET_CHANNEL_MAX_POWER(pwmi_channel) ((((pwmi_channel)->reg_info_1) >> 8) & 0xff) -#define WMI_SET_CHANNEL_REG_POWER(pwmi_channel, val) do { \ - (pwmi_channel)->reg_info_1 &= 0xff00ffff; \ - (pwmi_channel)->reg_info_1 |= ((val&0xff) << 16); \ -} while (0) +#define WMI_SET_CHANNEL_REG_POWER(pwmi_channel,val) do { \ + (pwmi_channel)->reg_info_1 &= 0xff00ffff; \ + (pwmi_channel)->reg_info_1 |= ((val & 0xff) << 16); \ + } while (0) #define WMI_GET_CHANNEL_REG_POWER(pwmi_channel) ((((pwmi_channel)->reg_info_1) >> 16) & 0xff) -#define WMI_SET_CHANNEL_REG_CLASSID(pwmi_channel, val) do { \ - (pwmi_channel)->reg_info_1 &= 0x00ffffff; \ - (pwmi_channel)->reg_info_1 |= ((val&0xff) << 24); \ -} while (0) +#define WMI_SET_CHANNEL_REG_CLASSID(pwmi_channel,val) do { \ + (pwmi_channel)->reg_info_1 &= 0x00ffffff; \ + (pwmi_channel)->reg_info_1 |= ((val & 0xff) << 24); \ + } while (0) #define WMI_GET_CHANNEL_REG_CLASSID(pwmi_channel) ((((pwmi_channel)->reg_info_1) >> 24) & 0xff) -#define WMI_SET_CHANNEL_ANTENNA_MAX(pwmi_channel, val) do { \ - (pwmi_channel)->reg_info_2 &= 0xffffff00; \ - (pwmi_channel)->reg_info_2 |= (val&0xff); \ -} while (0) +#define WMI_SET_CHANNEL_ANTENNA_MAX(pwmi_channel,val) do { \ + (pwmi_channel)->reg_info_2 &= 0xffffff00; \ + (pwmi_channel)->reg_info_2 |= (val & 0xff); \ + } while (0) #define WMI_GET_CHANNEL_ANTENNA_MAX(pwmi_channel) ((pwmi_channel)->reg_info_2 & 0xff) /* max tx power is in 1 dBm units */ -#define WMI_SET_CHANNEL_MAX_TX_POWER(pwmi_channel, val) do { \ - (pwmi_channel)->reg_info_2 &= 0xffff00ff; \ - (pwmi_channel)->reg_info_2 |= ((val&0xff)<<8); \ -} while (0) +#define WMI_SET_CHANNEL_MAX_TX_POWER(pwmi_channel,val) do { \ + (pwmi_channel)->reg_info_2 &= 0xffff00ff; \ + (pwmi_channel)->reg_info_2 |= ((val & 0xff) << 8); \ + } while (0) #define WMI_GET_CHANNEL_MAX_TX_POWER(pwmi_channel) ((((pwmi_channel)->reg_info_2)>>8) & 0xff) /** HT Capabilities*/ -#define WMI_HT_CAP_ENABLED 0x0001 /* HT Enabled/ disabled */ -#define WMI_HT_CAP_HT20_SGI 0x0002 /* Short Guard Interval with HT20 */ -#define WMI_HT_CAP_DYNAMIC_SMPS 0x0004 /* Dynamic MIMO powersave */ -#define WMI_HT_CAP_TX_STBC 0x0008 /* B3 TX STBC */ +#define WMI_HT_CAP_ENABLED 0x0001 /* HT Enabled/ disabled */ +#define WMI_HT_CAP_HT20_SGI 0x0002 /* Short Guard Interval with HT20 */ +#define WMI_HT_CAP_DYNAMIC_SMPS 0x0004 /* Dynamic MIMO powersave */ +#define WMI_HT_CAP_TX_STBC 0x0008 /* B3 TX STBC */ #define WMI_HT_CAP_TX_STBC_MASK_SHIFT 3 -#define WMI_HT_CAP_RX_STBC 0x0030 /* B4-B5 RX STBC */ +#define WMI_HT_CAP_RX_STBC 0x0030 /* B4-B5 RX STBC */ #define WMI_HT_CAP_RX_STBC_MASK_SHIFT 4 -#define WMI_HT_CAP_LDPC 0x0040 /* LDPC supported */ -#define WMI_HT_CAP_L_SIG_TXOP_PROT 0x0080 /* L-SIG TXOP Protection */ -#define WMI_HT_CAP_MPDU_DENSITY 0x0700 /* MPDU Density */ +#define WMI_HT_CAP_LDPC 0x0040 /* LDPC supported */ +#define WMI_HT_CAP_L_SIG_TXOP_PROT 0x0080 /* L-SIG TXOP Protection */ +#define WMI_HT_CAP_MPDU_DENSITY 0x0700 /* MPDU Density */ #define WMI_HT_CAP_MPDU_DENSITY_MASK_SHIFT 8 #define WMI_HT_CAP_HT40_SGI 0x0800 #define WMI_HT_CAP_RX_LDPC 0x1000 /* LDPC RX support */ #define WMI_HT_CAP_TX_LDPC 0x2000 /* LDPC TX support */ + /* These macros should be used when we wish to advertise STBC support for * only 1SS or 2SS or 3SS. */ -#define WMI_HT_CAP_RX_STBC_1SS 0x0010 /* B4-B5 RX STBC */ -#define WMI_HT_CAP_RX_STBC_2SS 0x0020 /* B4-B5 RX STBC */ -#define WMI_HT_CAP_RX_STBC_3SS 0x0030 /* B4-B5 RX STBC */ +#define WMI_HT_CAP_RX_STBC_1SS 0x0010 /* B4-B5 RX STBC */ +#define WMI_HT_CAP_RX_STBC_2SS 0x0020 /* B4-B5 RX STBC */ +#define WMI_HT_CAP_RX_STBC_3SS 0x0030 /* B4-B5 RX STBC */ + #define WMI_HT_CAP_DEFAULT_ALL (WMI_HT_CAP_ENABLED | \ - WMI_HT_CAP_HT20_SGI | \ - WMI_HT_CAP_HT40_SGI | \ - WMI_HT_CAP_TX_STBC | \ - WMI_HT_CAP_RX_STBC | \ - WMI_HT_CAP_LDPC | \ - WMI_HT_CAP_TX_LDPC | \ - WMI_HT_CAP_RX_LDPC) + WMI_HT_CAP_HT20_SGI | \ + WMI_HT_CAP_HT40_SGI | \ + WMI_HT_CAP_TX_STBC | \ + WMI_HT_CAP_RX_STBC | \ + WMI_HT_CAP_LDPC | \ + WMI_HT_CAP_TX_LDPC | \ + WMI_HT_CAP_RX_LDPC) /* WMI_VHT_CAP_* these maps to ieee 802.11ac vht capability information - field. The fields not defined here are not supported, or reserved. - Do not change these masks and if you have to add new one follow the - bitmask as specified by 802.11ac draft. + field. The fields not defined here are not supported, or reserved. + Do not change these masks and if you have to add new one follow the + bitmask as specified by 802.11ac draft. */ + #define WMI_VHT_CAP_MAX_MPDU_LEN_7935 0x00000001 #define WMI_VHT_CAP_MAX_MPDU_LEN_11454 0x00000002 #define WMI_VHT_CAP_MAX_MPDU_LEN_MASK 0x00000003 @@ -1654,6 +1634,7 @@ typedef enum { #define WMI_VHT_CAP_TX_FIXED_ANT 0x20000000 #define WMI_VHT_CAP_TX_LDPC 0x40000000 + /* TEMPORARY: * Preserve the incorrect old name as an alias for the correct new name * until all references to the old name have been removed from all hosts @@ -1661,6 +1642,7 @@ typedef enum { */ #define WMI_VHT_CAP_MAX_AMPDU_LEN_EXP_SHIT WMI_VHT_CAP_MAX_AMPDU_LEN_EXP_SHIFT + /* These macros should be used when we wish to advertise STBC support for * only 1SS or 2SS or 3SS. */ #define WMI_VHT_CAP_RX_STBC_1SS 0x00000100 @@ -1674,20 +1656,20 @@ typedef enum { */ #define WMI_vHT_CAP_RX_STBC_3SS WMI_VHT_CAP_RX_STBC_3SS -#define WMI_VHT_CAP_DEFAULT_ALL (WMI_VHT_CAP_MAX_MPDU_LEN_11454 | \ - WMI_VHT_CAP_SGI_80MHZ | \ - WMI_VHT_CAP_TX_STBC | \ - WMI_VHT_CAP_RX_STBC_MASK | \ - WMI_VHT_CAP_RX_LDPC | \ - WMI_VHT_CAP_TX_LDPC | \ - WMI_VHT_CAP_MAX_AMPDU_LEN_EXP | \ - WMI_VHT_CAP_RX_FIXED_ANT | \ - WMI_VHT_CAP_TX_FIXED_ANT) +#define WMI_VHT_CAP_DEFAULT_ALL (WMI_VHT_CAP_MAX_MPDU_LEN_11454 | \ + WMI_VHT_CAP_SGI_80MHZ | \ + WMI_VHT_CAP_TX_STBC | \ + WMI_VHT_CAP_RX_STBC_MASK | \ + WMI_VHT_CAP_RX_LDPC | \ + WMI_VHT_CAP_TX_LDPC | \ + WMI_VHT_CAP_MAX_AMPDU_LEN_EXP | \ + WMI_VHT_CAP_RX_FIXED_ANT | \ + WMI_VHT_CAP_TX_FIXED_ANT) /* Interested readers refer to Rx/Tx MCS Map definition as defined in - 802.11ac + 802.11ac */ -#define WMI_VHT_MAX_MCS_4_SS_MASK(r, ss) ((3 & (r)) << (((ss) - 1) << 1)) +#define WMI_VHT_MAX_MCS_4_SS_MASK(r,ss) ((3 & (r)) << (((ss) - 1) << 1)) #define WMI_VHT_MAX_SUPP_RATE_MASK 0x1fff0000 #define WMI_VHT_MAX_SUPP_RATE_MASK_SHIFT 16 @@ -1698,25 +1680,15 @@ typedef enum { #define WMI_HE_FRAG_SUPPORT_MASK 0x00000018 #define WMI_HE_FRAG_SUPPORT_SHIFT 3 - /* fragmentation support field value */ enum { - WMI_HE_FRAG_SUPPORT_LEVEL0, /* No Fragmentation support */ - /* - * support for fragments within a VHT single MPDU, - * no support for fragments within AMPDU - */ - WMI_HE_FRAG_SUPPORT_LEVEL1, - /* support for up to 1 fragment per MSDU within a single A-MPDU */ - WMI_HE_FRAG_SUPPORT_LEVEL2, - /* support for multiple fragments per MSDU within an A-MPDU */ - WMI_HE_FRAG_SUPPORT_LEVEL3, + WMI_HE_FRAG_SUPPORT_LEVEL0, /* No Fragmentation support */ + WMI_HE_FRAG_SUPPORT_LEVEL1, /* support for fragments within a VHT single MPDU, no support for fragments within AMPDU */ + WMI_HE_FRAG_SUPPORT_LEVEL2, /* support for up to 1 fragment per MSDU within a single A-MPDU */ + WMI_HE_FRAG_SUPPORT_LEVEL3, /* support for multiple fragments per MSDU within an A-MPDU */ }; - -/** NOTE: This defs cannot be changed in the future without - * breaking WMI compatibility - */ +/** NOTE: This defs cannot be changed in the future without breaking WMI compatibility */ #define WMI_MAX_NUM_SS MAX_HE_NSS #define WMI_MAX_NUM_RU MAX_HE_RU @@ -1730,7 +1702,7 @@ enum { *31:23| 22:20 | 19:17 | 17:15 | 14:12 | 11:9 | 8:6 | 5:3 | 2:0 | * * ppet16_ppet8_ru3_ru0 array element 1 holds: - * | PPET8 | PPET16 | PPET8 | PPET16 | PPET8 | PPET16 | PPET8 | PPET16 | + * | PPET8 | PPET16 | PPET8 | PPET16 | PPET8 | PPET16 | PPET8 | PPET16 | *rsvd |NSS2,RU4|NSS2,RU4|NSS2,RU3|NSS2,RU3|NSS2,RU2|NSS2,RU2|NSS2,RU1|NSS2,RU1| *31:23| 22:20 | 19:17 | 17:15 | 14:12 | 11:9 | 8:6 | 5:3 | 2:0 | * @@ -1742,31 +1714,30 @@ enum { * nssm1 is zero-based. */ #define WMI_SET_PPET16(ppet16_ppet8_ru3_ru0, ru, nssm1, ppet) \ - do { \ - ppet16_ppet8_ru3_ru0[nssm1] &= ~(7 << (((ru-1)&3)*6)); \ - ppet16_ppet8_ru3_ru0[nssm1] |= ((ppet&7) << (((ru-1)&3)*6)); \ - } while (0) + do { \ + ppet16_ppet8_ru3_ru0[nssm1] &= ~(7 << (((ru-1) & 3) * 6)); \ + ppet16_ppet8_ru3_ru0[nssm1] |= ((ppet & 7) << (((ru-1) & 3) * 6)); \ + } while (0) #define WMI_GET_PPET16(ppet16_ppet8_ru3_ru0, ru, nssm1) \ - ((ppet16_ppet8_ru3_ru0[nssm1] >> (((ru-1)&3)*6))&7) + ((ppet16_ppet8_ru3_ru0[nssm1] >> (((ru-1) & 3) * 6)) & 7) #define WMI_SET_PPET8(ppet16_ppet8_ru3_ru0, ru, nssm1, ppet) \ - do { \ - ppet16_ppet8_ru3_ru0[nssm1] &= ~(7 << (((ru-1)&3)*6+3)); \ - ppet16_ppet8_ru3_ru0[nssm1] |= ((ppet&7) << (((ru-1)&3)*6+3)); \ - } while (0) + do { \ + ppet16_ppet8_ru3_ru0[nssm1] &= ~(7 << (((ru-1) & 3) * 6 + 3)); \ + ppet16_ppet8_ru3_ru0[nssm1] |= ((ppet&7) << (((ru-1) & 3) * 6 + 3)); \ + } while (0) #define WMI_GET_PPET8(ppet16_ppet8_ru3_ru0, ru, nssm1) \ - ((ppet16_ppet8_ru3_ru0[nssm1] >> (((ru-1)&3)*6+3))&7) + ((ppet16_ppet8_ru3_ru0[nssm1] >> (((ru-1) & 3) * 6 + 3)) & 7) typedef struct _wmi_ppe_threshold { - A_UINT32 numss_m1; /** NSS - 1*/ - union { - A_UINT32 ru_count; /** RU COUNT OBSOLETE to be removed after few versions */ - A_UINT32 ru_mask; /** RU index mask */ - }; - /** ppet8 and ppet16 for max num ss */ - A_UINT32 ppet16_ppet8_ru3_ru0[WMI_MAX_NUM_SS]; + A_UINT32 numss_m1; /** NSS - 1*/ + union { + A_UINT32 ru_count; /** RU COUNT OBSOLETE to be removed after few versions */ + A_UINT32 ru_mask; /** RU index mask */ + }; + A_UINT32 ppet16_ppet8_ru3_ru0[WMI_MAX_NUM_SS]; /** ppet8 and ppet16 for max num ss */ } wmi_ppe_threshold; /* WMI_SYS_CAPS_* refer to the capabilities that system support @@ -1859,29 +1830,23 @@ typedef struct _wmi_ppe_threshold { #define WMI_DBS_FW_MODE_CFG_AGILE_DFS_MASK (0x1 << WMI_DBS_FW_MODE_CFG_AGILE_DFS_BITPOS) #define WMI_DBS_FW_MODE_CFG_DBS_SET(fw_mode, value) \ - WMI_SET_BITS(fw_mode, WMI_DBS_FW_MODE_CFG_DBS_BITPOS, 1, value) + WMI_SET_BITS(fw_mode, WMI_DBS_FW_MODE_CFG_DBS_BITPOS, 1, value) #define WMI_DBS_FW_MODE_CFG_AGILE_DFS_SET(fw_mode, value) \ - WMI_SET_BITS(fw_mode, WMI_DBS_FW_MODE_CFG_AGILE_DFS_BITPOS, 1, value) + WMI_SET_BITS(fw_mode, WMI_DBS_FW_MODE_CFG_AGILE_DFS_BITPOS, 1, value) #define WMI_DBS_FW_MODE_CFG_DBS_GET(fw_mode) \ - ((fw_mode & WMI_DBS_FW_MODE_CFG_DBS_MASK) >> WMI_DBS_FW_MODE_CFG_DBS_BITPOS) + ((fw_mode & WMI_DBS_FW_MODE_CFG_DBS_MASK) >> WMI_DBS_FW_MODE_CFG_DBS_BITPOS) #define WMI_DBS_FW_MODE_CFG_AGILE_DFS_GET(fw_mode) \ - ((fw_mode & WMI_DBS_FW_MODE_CFG_AGILE_DFS_MASK) >> WMI_DBS_FW_MODE_CFG_AGILE_DFS_BITPOS) + ((fw_mode & WMI_DBS_FW_MODE_CFG_AGILE_DFS_MASK) >> WMI_DBS_FW_MODE_CFG_AGILE_DFS_BITPOS) /** NOTE: This structure cannot be extended in the future without breaking WMI compatibility */ typedef struct _wmi_abi_version { - A_UINT32 abi_version_0; - /** WMI Major and Minor versions */ - A_UINT32 abi_version_1; - /** WMI change revision */ - A_UINT32 abi_version_ns_0; - /** ABI version namespace first four dwords */ - A_UINT32 abi_version_ns_1; - /** ABI version namespace second four dwords */ - A_UINT32 abi_version_ns_2; - /** ABI version namespace third four dwords */ - A_UINT32 abi_version_ns_3; - /** ABI version namespace fourth four dwords */ + A_UINT32 abi_version_0; /** WMI Major and Minor versions */ + A_UINT32 abi_version_1; /** WMI change revision */ + A_UINT32 abi_version_ns_0; /** ABI version namespace first four dwords */ + A_UINT32 abi_version_ns_1; /** ABI version namespace second four dwords */ + A_UINT32 abi_version_ns_2; /** ABI version namespace third four dwords */ + A_UINT32 abi_version_ns_3; /** ABI version namespace fourth four dwords */ } wmi_abi_version; /* @@ -1910,162 +1875,150 @@ typedef struct _wmi_abi_version { * device capability to the host. */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_SERVICE_READY_EVENT */ - A_UINT32 fw_build_vers; /* firmware build number */ - wmi_abi_version fw_abi_vers; - A_UINT32 phy_capability; /* WMI_PHY_CAPABILITY */ - A_UINT32 max_frag_entry; /* Maximum number of frag table entries that SW will populate less 1 */ - A_UINT32 num_rf_chains; - /* The following field is only valid for service type WMI_SERVICE_11AC */ - A_UINT32 ht_cap_info; /* WMI HT Capability */ - A_UINT32 vht_cap_info; /* VHT capability info field of 802.11ac */ - A_UINT32 vht_supp_mcs; /* VHT Supported MCS Set field Rx/Tx same */ - A_UINT32 hw_min_tx_power; - A_UINT32 hw_max_tx_power; - A_UINT32 sys_cap_info; - A_UINT32 min_pkt_size_enable; /* Enterprise mode short pkt enable */ - /** Max beacon and Probe Response IE offload size (includes - * optional P2P IEs) */ - A_UINT32 max_bcn_ie_size; - /* - * request to host to allocate a chuck of memory and pss it down to FW via WM_INIT. - * FW uses this as FW extesnsion memory for saving its data structures. Only valid - * for low latency interfaces like PCIE where FW can access this memory directly (or) - * by DMA. - */ - A_UINT32 num_mem_reqs; - /* Max No. scan channels target can support - * If FW is too old and doesn't indicate this number, host side value will default to - * 0, and host will take the original compatible value (62) for future scan channel - * setup. - */ - A_UINT32 max_num_scan_channels; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_SERVICE_READY_EVENT */ + A_UINT32 fw_build_vers; /* firmware build number */ + wmi_abi_version fw_abi_vers; + A_UINT32 phy_capability; /* WMI_PHY_CAPABILITY */ + A_UINT32 max_frag_entry; /* Maximum number of frag table entries that SW will populate less 1 */ + A_UINT32 num_rf_chains; + /* The following field is only valid for service type WMI_SERVICE_11AC */ + A_UINT32 ht_cap_info; /* WMI HT Capability */ + A_UINT32 vht_cap_info; /* VHT capability info field of 802.11ac */ + A_UINT32 vht_supp_mcs; /* VHT Supported MCS Set field Rx/Tx same */ + A_UINT32 hw_min_tx_power; + A_UINT32 hw_max_tx_power; + A_UINT32 sys_cap_info; + A_UINT32 min_pkt_size_enable; /* Enterprise mode short pkt enable */ + /** Max beacon and Probe Response IE offload size (includes + * optional P2P IEs) */ + A_UINT32 max_bcn_ie_size; + /* + * request to host to allocate a chuck of memory and pss it down to FW via WM_INIT. + * FW uses this as FW extesnsion memory for saving its data structures. Only valid + * for low latency interfaces like PCIE where FW can access this memory directly (or) + * by DMA. + */ + A_UINT32 num_mem_reqs; + /* Max No. scan channels target can support + * If FW is too old and doesn't indicate this number, host side value will default to + * 0, and host will take the original compatible value (62) for future scan channel + * setup. + */ + A_UINT32 max_num_scan_channels; - /* Hardware board specific ID. Values defined in enum WMI_HWBOARD_ID. - * Default 0 means tha hw_bd_info[] is invalid(legacy board). - */ - A_UINT32 hw_bd_id; - A_UINT32 hw_bd_info[HW_BD_INFO_SIZE]; /* Board specific information. Invalid if hw_hd_id is zero. */ + /* Hardware board specific ID. Values defined in enum WMI_HWBOARD_ID. + * Default 0 means tha hw_bd_info[] is invalid(legacy board). + */ + A_UINT32 hw_bd_id; + A_UINT32 hw_bd_info[HW_BD_INFO_SIZE]; /* Board specific information. Invalid if hw_hd_id is zero. */ - /* - * Number of MACs supported, i.e. a DBS-capable device will return 2 - */ - A_UINT32 max_supported_macs; + /* + * Number of MACs supported, i.e. a DBS-capable device will return 2 + */ + A_UINT32 max_supported_macs; - /* - * FW sub-feature capabilities to be used in concurrence with - * wmi_service_bitmap - * values from enum WMI_FW_SUB_FEAT_CAPS - */ - A_UINT32 wmi_fw_sub_feat_caps; - /* - * Number of Dual Band Simultaneous (DBS) hardware modes - */ - A_UINT32 num_dbs_hw_modes; - /* - * txrx_chainmask - * [7:0] - 2G band tx chain mask - * [15:8] - 2G band rx chain mask - * [23:16] - 5G band tx chain mask - * [31:24] - 5G band rx chain mask - * - */ - A_UINT32 txrx_chainmask; + /* + * FW sub-feature capabilities to be used in concurrence with wmi_service_bitmap + */ + A_UINT32 wmi_fw_sub_feat_caps; /* values from enum WMI_FW_SUB_FEAT_CAPS */ - /* - * default Dual Band Simultaneous (DBS) hardware mode - */ - A_UINT32 default_dbs_hw_mode_index; + /* + * Number of Dual Band Simultaneous (DBS) hardware modes + */ + A_UINT32 num_dbs_hw_modes; - /* - * Number of msdu descriptors target would use - */ - A_UINT32 num_msdu_desc; + /* + * txrx_chainmask + * [7:0] - 2G band tx chain mask + * [15:8] - 2G band rx chain mask + * [23:16] - 5G band tx chain mask + * [31:24] - 5G band rx chain mask + * + */ + A_UINT32 txrx_chainmask; - /* The TLVs for hal_reg_capabilities, wmi_service_bitmap and mem_reqs[] will follow this TLV. - * HAL_REG_CAPABILITIES hal_reg_capabilities; - * A_UINT32 wmi_service_bitmap[WMI_SERVICE_BM_SIZE]; - * wlan_host_mem_req mem_reqs[]; - * wlan_dbs_hw_mode_list[]; - */ + /* + * default Dual Band Simultaneous (DBS) hardware mode + */ + A_UINT32 default_dbs_hw_mode_index; + + /* + * Number of msdu descriptors target would use + */ + A_UINT32 num_msdu_desc; + +/* The TLVs for hal_reg_capabilities, wmi_service_bitmap and mem_reqs[] will follow this TLV. + * HAL_REG_CAPABILITIES hal_reg_capabilities; + * A_UINT32 wmi_service_bitmap[WMI_SERVICE_BM_SIZE]; + * wlan_host_mem_req mem_reqs[]; + * wlan_dbs_hw_mode_list[]; + */ } wmi_service_ready_event_fixed_param; #define WMI_SERVICE_SEGMENT_BM_SIZE32 4 /* 4x A_UINT32 = 128 bits */ typedef struct { - /** - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_service_available_event_fixed_param - */ - A_UINT32 tlv_header; - /** - * The wmi_service_segment offset field specifies the position - * within the logical bitmap of WMI service flags at which the - * WMI service flags specified within this message begin. - * Since the first 128 WMI service flags are specified within - * the wmi_service_bitmap field of the WMI_SERVICE_READY_EVENT - * message, the wmi_service_segment_offset value is expected to - * be 128 or more. - */ - A_UINT32 wmi_service_segment_offset; - A_UINT32 wmi_service_segment_bitmap[WMI_SERVICE_SEGMENT_BM_SIZE32]; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_service_available_event_fixed_param */ + /* + * The wmi_service_segment offset field specifies the position within the + * logical bitmap of WMI service flags at which the WMI service flags + * specified within this message begin. + * Since the first 128 WMI service flags are specified within the + * wmi_service_bitmap field of the WMI_SERVICE_READY_EVENT message, + * the wmi_service_segment_offset value is expected to be 128 or more. + */ + A_UINT32 wmi_service_segment_offset; + A_UINT32 wmi_service_segment_bitmap[WMI_SERVICE_SEGMENT_BM_SIZE32]; } wmi_service_available_event_fixed_param; typedef struct { - /* TLV tag and len; tag equals - *WMITLV_TAG_STRUC_WMI_SERVICE_EXT_READY_EVENT - */ - A_UINT32 tlv_header; - /* which WMI_DBS_CONC_SCAN_CFG setting the FW is initialized with */ - A_UINT32 default_conc_scan_config_bits; - /* which WMI_DBS_FW_MODE_CFG setting the FW is initialized with */ - A_UINT32 default_fw_config_bits; - wmi_ppe_threshold ppet; - /* - * see section 8.4.2.213 from draft r8 of 802.11ax; - * see WMI_HE_FRAG_SUPPORT enum - */ - A_UINT32 he_cap_info; - /* - * An HT STA shall not allow transmission of more than one MPDU start - * within the time limit described in the MPDU maximum density field. - */ - A_UINT32 mpdu_density; /* units are microseconds */ - /* - * Maximum no of BSSID based RX filters host can program - * Value 0 means FW hasn't given any limit to host. - */ - A_UINT32 max_bssid_rx_filters; - /* - * Extended FW build version information: - * bits 27:0 -> reserved - * bits 31:28 -> CRM sub ID - */ - A_UINT32 fw_build_vers_ext; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_SERVICE_EXT_READY_EVENT */ + /* which WMI_DBS_CONC_SCAN_CFG setting the FW is initialized with */ + A_UINT32 default_conc_scan_config_bits; + /* which WMI_DBS_FW_MODE_CFG setting the FW is initialized with */ + A_UINT32 default_fw_config_bits; + wmi_ppe_threshold ppet; + A_UINT32 he_cap_info; /* see section 8.4.2.213 from draft r8 of 802.11ax; see WMI_HE_FRAG_SUPPORT enum */ + /* + * An HT STA shall not allow transmission of more than one MPDU start + * within the time limit described in the MPDU maximum density field. + */ + A_UINT32 mpdu_density; /* units are microseconds */ + /* + * Maximum no of BSSID based RX filters host can program + * Value 0 means FW hasn't given any limit to host. + */ + A_UINT32 max_bssid_rx_filters; + /* + * Extended FW build version information: + * bits 27:0 -> reserved + * bits 31:28 -> CRM sub ID + */ + A_UINT32 fw_build_vers_ext; } wmi_service_ready_ext_event_fixed_param; typedef enum { - WMI_HWBD_NONE = 0, /* No hw board information is given */ - WMI_HWBD_QCA6174 = 1, /* Rome(AR6320) */ - WMI_HWBD_QCA2582 = 2, /* Killer 1525 */ -} WMI_HWBD_ID; + WMI_FW_STA_RTT_INITR = 0x00000001, + WMI_FW_STA_RTT_RESPR = 0x00000002, + WMI_FW_P2P_CLI_RTT_INITR = 0x00000004, + WMI_FW_P2P_CLI_RTT_RESPR = 0x00000008, + WMI_FW_P2P_GO_RTT_INITR = 0x00000010, + WMI_FW_P2P_GO_RTT_RESPR = 0x00000020, + WMI_FW_AP_RTT_INITR = 0x00000040, + WMI_FW_AP_RTT_RESPR = 0x00000080, + WMI_FW_NAN_RTT_INITR = 0x00000100, + WMI_FW_NAN_RTT_RESPR = 0x00000200, + /* + * New fw sub feature capabilites before + * WMI_FW_MAX_SUB_FEAT_CAP + */ + WMI_FW_MAX_SUB_FEAT_CAP = 0x80000000, +} WMI_FW_SUB_FEAT_CAPS; typedef enum { - WMI_FW_STA_RTT_INITR = 0x00000001, - WMI_FW_STA_RTT_RESPR = 0x00000002, - WMI_FW_P2P_CLI_RTT_INITR = 0x00000004, - WMI_FW_P2P_CLI_RTT_RESPR = 0x00000008, - WMI_FW_P2P_GO_RTT_INITR = 0x00000010, - WMI_FW_P2P_GO_RTT_RESPR = 0x00000020, - WMI_FW_AP_RTT_INITR = 0x00000040, - WMI_FW_AP_RTT_RESPR = 0x00000080, - WMI_FW_NAN_RTT_INITR = 0x00000100, - WMI_FW_NAN_RTT_RESPR = 0x00000200, - /* - * New fw sub feature capabilites before - * WMI_FW_MAX_SUB_FEAT_CAP - */ - WMI_FW_MAX_SUB_FEAT_CAP = 0x80000000, -} WMI_FW_SUB_FEAT_CAPS; + WMI_HWBD_NONE = 0, /* No hw board information is given */ + WMI_HWBD_QCA6174 = 1, /* Rome(AR6320) */ + WMI_HWBD_QCA2582 = 2, /* Killer 1525*/ +} WMI_HWBD_ID; #define ATH_BD_DATA_REV_MASK 0x000000FF #define ATH_BD_DATA_REV_SHIFT 0 @@ -2079,41 +2032,42 @@ typedef enum { #define ATH_BD_DATA_REF_DESIGN_ID_MASK 0xFF000000 #define ATH_BD_DATA_REF_DESIGN_ID_SHIFT 24 -#define SET_BD_DATA_REV(bd_data_ver, value) \ - ((bd_data_ver) &= ~ATH_BD_DATA_REV_MASK, (bd_data_ver) |= ((value) << ATH_BD_DATA_REV_SHIFT)) +#define SET_BD_DATA_REV(bd_data_ver, value) \ + ((bd_data_ver) &= ~ATH_BD_DATA_REV_MASK, (bd_data_ver) |= ((value) << ATH_BD_DATA_REV_SHIFT)) -#define GET_BD_DATA_REV(bd_data_ver) \ - (((bd_data_ver) & ATH_BD_DATA_REV_MASK) >> ATH_BD_DATA_REV_SHIFT) +#define GET_BD_DATA_REV(bd_data_ver) \ + (((bd_data_ver) & ATH_BD_DATA_REV_MASK) >> ATH_BD_DATA_REV_SHIFT) -#define SET_BD_DATA_PROJ_ID(bd_data_ver, value) \ - ((bd_data_ver) &= ~ATH_BD_DATA_PROJ_ID_MASK, (bd_data_ver) |= ((value) << ATH_BD_DATA_PROJ_ID_SHIFT)) +#define SET_BD_DATA_PROJ_ID(bd_data_ver, value) \ + ((bd_data_ver) &= ~ATH_BD_DATA_PROJ_ID_MASK, (bd_data_ver) |= ((value) << ATH_BD_DATA_PROJ_ID_SHIFT)) -#define GET_BD_DATA_PROJ_ID(bd_data_ver) \ - (((bd_data_ver) & ATH_BD_DATA_PROJ_ID_MASK) >> ATH_BD_DATA_PROJ_ID_SHIFT) +#define GET_BD_DATA_PROJ_ID(bd_data_ver) \ + (((bd_data_ver) & ATH_BD_DATA_PROJ_ID_MASK) >> ATH_BD_DATA_PROJ_ID_SHIFT) -#define SET_BD_DATA_CUST_ID(bd_data_ver, value) \ - ((bd_data_ver) &= ~ATH_BD_DATA_CUST_ID_MASK, (bd_data_ver) |= ((value) << ATH_BD_DATA_CUST_ID_SHIFT)) +#define SET_BD_DATA_CUST_ID(bd_data_ver, value) \ + ((bd_data_ver) &= ~ATH_BD_DATA_CUST_ID_MASK, (bd_data_ver) |= ((value) << ATH_BD_DATA_CUST_ID_SHIFT)) -#define GET_BD_DATA_CUST_ID(bd_data_ver) \ - (((bd_data_ver) & ATH_BD_DATA_CUST_ID_MASK) >> ATH_BD_DATA_CUST_ID_SHIFT) +#define GET_BD_DATA_CUST_ID(bd_data_ver) \ + (((bd_data_ver) & ATH_BD_DATA_CUST_ID_MASK) >> ATH_BD_DATA_CUST_ID_SHIFT) -#define SET_BD_DATA_REF_DESIGN_ID(bd_data_ver, value) \ - ((bd_data_ver) &= ~ATH_BD_DATA_REF_DESIGN_ID_MASK, (bd_data_ver) |= ((value) << ATH_BD_DATA_REF_DESIGN_ID_SHIFT)) +#define SET_BD_DATA_REF_DESIGN_ID(bd_data_ver, value) \ + ((bd_data_ver) &= ~ATH_BD_DATA_REF_DESIGN_ID_MASK, (bd_data_ver) |= ((value) << ATH_BD_DATA_REF_DESIGN_ID_SHIFT)) + +#define GET_BD_DATA_REF_DESIGN_ID(bd_data_ver) \ + (((bd_data_ver) & ATH_BD_DATA_REF_DESIGN_ID_MASK) >> ATH_BD_DATA_REF_DESIGN_ID_SHIFT) -#define GET_BD_DATA_REF_DESIGN_ID(bd_data_ver) \ - (((bd_data_ver) & ATH_BD_DATA_REF_DESIGN_ID_MASK) >> ATH_BD_DATA_REF_DESIGN_ID_SHIFT) #ifdef ROME_LTE_COEX_FREQ_AVOID typedef struct { - A_UINT32 start_freq; /* start frequency, not channel center freq */ - A_UINT32 end_freq; /* end frequency */ + A_UINT32 start_freq; /* start frequency, not channel center freq */ + A_UINT32 end_freq; /* end frequency */ } avoid_freq_range_desc; typedef struct { - /* bad channel range count, multi range is allowed, 0 means all channel clear */ - A_UINT32 num_freq_ranges; - /* multi range with num_freq_ranges, LTE advance multi carrier, CDMA,etc */ - avoid_freq_range_desc avd_freq_range[0]; + /* bad channel range count, multi range is allowed, 0 means all channel clear */ + A_UINT32 num_freq_ranges; + /* multi range with num_freq_ranges, LTE advance multi carrier, CDMA,etc */ + avoid_freq_range_desc avd_freq_range[0]; } wmi_wlan_avoid_freq_ranges_event; #endif @@ -2126,457 +2080,454 @@ typedef struct { typedef A_UINT32 WLAN_INIT_STATUS; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ready_event_fixed_param */ - wmi_abi_version fw_abi_vers; - wmi_mac_addr mac_addr; - A_UINT32 status; - A_UINT32 num_dscp_table; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ready_event_fixed_param */ + wmi_abi_version fw_abi_vers; + wmi_mac_addr mac_addr; + A_UINT32 status; + A_UINT32 num_dscp_table; } wmi_ready_event_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_resource_config */ -/** - * @brief num_vdev - number of virtual devices (VAPs) to support - */ - A_UINT32 num_vdevs; -/** - * @brief num_peers - number of peer nodes to support - */ - A_UINT32 num_peers; -/* - * @brief In offload mode target supports features like WOW, chatter and other - * protocol offloads. In order to support them some functionalities like - * reorder buffering, PN checking need to be done in target. This determines - * maximum number of peers suported by target in offload mode - */ - A_UINT32 num_offload_peers; -/* @brief Number of reorder buffers available for doing target based reorder - * Rx reorder buffering - */ - A_UINT32 num_offload_reorder_buffs; -/** - * @brief num_peer_keys - number of keys per peer - */ - A_UINT32 num_peer_keys; -/** - * @brief num_peer_tids - number of TIDs to provide storage for per peer. - */ - A_UINT32 num_tids; -/** - * @brief ast_skid_limit - max skid for resolving hash collisions - * @details - * The address search table is sparse, so that if two MAC addresses - * result in the same hash value, the second of these conflicting - * entries can slide to the next index in the address search table, - * and use it, if it is unoccupied. This ast_skid_limit parameter - * specifies the upper bound on how many subsequent indices to search - * over to find an unoccupied space. - */ - A_UINT32 ast_skid_limit; -/** - * @brief tx_chain_mask - the nominal chain mask for transmit - * @details - * The chain mask may be modified dynamically, e.g. to operate AP tx with - * a reduced number of chains if no clients are associated. - * This configuration parameter specifies the nominal chain-mask that - * should be used when not operating with a reduced set of tx chains. - */ - A_UINT32 tx_chain_mask; -/** - * @brief rx_chain_mask - the nominal chain mask for receive - * @details - * The chain mask may be modified dynamically, e.g. for a client to use - * a reduced number of chains for receive if the traffic to the client - * is low enough that it doesn't require downlink MIMO or antenna - * diversity. - * This configuration parameter specifies the nominal chain-mask that - * should be used when not operating with a reduced set of rx chains. - */ - A_UINT32 rx_chain_mask; -/** - * @brief rx_timeout_pri - what rx reorder timeout (ms) to use for the AC - * @details - * Each WMM access class (voice, video, best-effort, background) will - * have its own timeout value to dictate how long to wait for missing - * rx MPDUs to arrive before flushing subsequent MPDUs that have already - * been received. - * This parameter specifies the timeout in milliseconds for each class . - * NOTE: the number of class (defined as 4) cannot be - * changed in the future without breaking WMI compatibility. - */ - A_UINT32 rx_timeout_pri[4]; -/** - * @brief rx_decap mode - what mode the rx should decap packets to - * @details - * MAC can decap to RAW (no decap), native wifi or Ethernet types - * THis setting also determines the default TX behavior, however TX - * behavior can be modified on a per VAP basis during VAP init - */ - A_UINT32 rx_decap_mode; - /** - * @brief scan_max_pending_req - what is the maximum scan requests than can be queued - */ - A_UINT32 scan_max_pending_req; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_resource_config */ + /** + * @brief num_vdev - number of virtual devices (VAPs) to support + */ + A_UINT32 num_vdevs; + /** + * @brief num_peers - number of peer nodes to support + */ + A_UINT32 num_peers; + /* + * @brief In offload mode target supports features like WOW, chatter and other + * protocol offloads. In order to support them some functionalities like + * reorder buffering, PN checking need to be done in target. This determines + * maximum number of peers suported by target in offload mode + */ + A_UINT32 num_offload_peers; + /* @brief Number of reorder buffers available for doing target based reorder + * Rx reorder buffering + */ + A_UINT32 num_offload_reorder_buffs; + /** + * @brief num_peer_keys - number of keys per peer + */ + A_UINT32 num_peer_keys; + /** + * @brief num_peer_tids - number of TIDs to provide storage for per peer. + */ + A_UINT32 num_tids; + /** + * @brief ast_skid_limit - max skid for resolving hash collisions + * @details + * The address search table is sparse, so that if two MAC addresses + * result in the same hash value, the second of these conflicting + * entries can slide to the next index in the address search table, + * and use it, if it is unoccupied. This ast_skid_limit parameter + * specifies the upper bound on how many subsequent indices to search + * over to find an unoccupied space. + */ + A_UINT32 ast_skid_limit; + /** + * @brief tx_chain_mask - the nominal chain mask for transmit + * @details + * The chain mask may be modified dynamically, e.g. to operate AP tx with + * a reduced number of chains if no clients are associated. + * This configuration parameter specifies the nominal chain-mask that + * should be used when not operating with a reduced set of tx chains. + */ + A_UINT32 tx_chain_mask; + /** + * @brief rx_chain_mask - the nominal chain mask for receive + * @details + * The chain mask may be modified dynamically, e.g. for a client to use + * a reduced number of chains for receive if the traffic to the client + * is low enough that it doesn't require downlink MIMO or antenna + * diversity. + * This configuration parameter specifies the nominal chain-mask that + * should be used when not operating with a reduced set of rx chains. + */ + A_UINT32 rx_chain_mask; + /** + * @brief rx_timeout_pri - what rx reorder timeout (ms) to use for the AC + * @details + * Each WMM access class (voice, video, best-effort, background) will + * have its own timeout value to dictate how long to wait for missing + * rx MPDUs to arrive before flushing subsequent MPDUs that have already + * been received. + * This parameter specifies the timeout in milliseconds for each class . + * NOTE: the number of class (defined as 4) cannot be + * changed in the future without breaking WMI compatibility. + */ + A_UINT32 rx_timeout_pri[4]; + /** + * @brief rx_decap mode - what mode the rx should decap packets to + * @details + * MAC can decap to RAW (no decap), native wifi or Ethernet types + * THis setting also determines the default TX behavior, however TX + * behavior can be modified on a per VAP basis during VAP init + */ + A_UINT32 rx_decap_mode; + /** + * @brief scan_max_pending_req - what is the maximum scan requests than can be queued + */ + A_UINT32 scan_max_pending_req; - /** - * @brief maximum VDEV that could use BMISS offload - */ - A_UINT32 bmiss_offload_max_vdev; + /** + * @brief maximum VDEV that could use BMISS offload + */ + A_UINT32 bmiss_offload_max_vdev; - /** - * @brief maximum VDEV that could use offload roaming - */ - A_UINT32 roam_offload_max_vdev; + /** + * @brief maximum VDEV that could use offload roaming + */ + A_UINT32 roam_offload_max_vdev; - /** - * @brief maximum AP profiles that would push to offload roaming - */ - A_UINT32 roam_offload_max_ap_profiles; + /** + * @brief maximum AP profiles that would push to offload roaming + */ + A_UINT32 roam_offload_max_ap_profiles; -/** - * @brief num_mcast_groups - how many groups to use for mcast->ucast conversion - * @details - * The target's WAL maintains a table to hold information regarding which - * peers belong to a given multicast group, so that if multicast->unicast - * conversion is enabled, the target can convert multicast tx frames to a - * series of unicast tx frames, to each peer within the multicast group. - * This num_mcast_groups configuration parameter tells the target how - * many multicast groups to provide storage for within its multicast - * group membership table. - */ - A_UINT32 num_mcast_groups; + /** + * @brief num_mcast_groups - how many groups to use for mcast->ucast conversion + * @details + * The target's WAL maintains a table to hold information regarding which + * peers belong to a given multicast group, so that if multicast->unicast + * conversion is enabled, the target can convert multicast tx frames to a + * series of unicast tx frames, to each peer within the multicast group. + * This num_mcast_groups configuration parameter tells the target how + * many multicast groups to provide storage for within its multicast + * group membership table. + */ + A_UINT32 num_mcast_groups; -/** - * @brief num_mcast_table_elems - size to alloc for the mcast membership table - * @details - * This num_mcast_table_elems configuration parameter tells the target - * how many peer elements it needs to provide storage for in its - * multicast group membership table. - * These multicast group membership table elements are shared by the - * multicast groups stored within the table. - */ - A_UINT32 num_mcast_table_elems; + /** + * @brief num_mcast_table_elems - size to alloc for the mcast membership table + * @details + * This num_mcast_table_elems configuration parameter tells the target + * how many peer elements it needs to provide storage for in its + * multicast group membership table. + * These multicast group membership table elements are shared by the + * multicast groups stored within the table. + */ + A_UINT32 num_mcast_table_elems; -/** - * @brief mcast2ucast_mode - whether/how to do multicast->unicast conversion - * @details - * This configuration parameter specifies whether the target should - * perform multicast --> unicast conversion on transmit, and if so, - * what to do if it finds no entries in its multicast group membership - * table for the multicast IP address in the tx frame. - * Configuration value: - * 0 -> Do not perform multicast to unicast conversion. - * 1 -> Convert multicast frames to unicast, if the IP multicast address - * from the tx frame is found in the multicast group membership - * table. If the IP multicast address is not found, drop the frame. - * 2 -> Convert multicast frames to unicast, if the IP multicast address - * from the tx frame is found in the multicast group membership - * table. If the IP multicast address is not found, transmit the - * frame as multicast. - */ - A_UINT32 mcast2ucast_mode; + /** + * @brief mcast2ucast_mode - whether/how to do multicast->unicast conversion + * @details + * This configuration parameter specifies whether the target should + * perform multicast --> unicast conversion on transmit, and if so, + * what to do if it finds no entries in its multicast group membership + * table for the multicast IP address in the tx frame. + * Configuration value: + * 0 -> Do not perform multicast to unicast conversion. + * 1 -> Convert multicast frames to unicast, if the IP multicast address + * from the tx frame is found in the multicast group membership + * table. If the IP multicast address is not found, drop the frame. + * 2 -> Convert multicast frames to unicast, if the IP multicast address + * from the tx frame is found in the multicast group membership + * table. If the IP multicast address is not found, transmit the + * frame as multicast. + */ + A_UINT32 mcast2ucast_mode; - /** - * @brief tx_dbg_log_size - how much memory to allocate for a tx PPDU dbg log - * @details - * This parameter controls how much memory the target will allocate to - * store a log of tx PPDU meta-information (how large the PPDU was, - * when it was sent, whether it was successful, etc.) - */ - A_UINT32 tx_dbg_log_size; - /** - * @brief num_wds_entries - how many AST entries to be allocated for WDS - */ - A_UINT32 num_wds_entries; + /** + * @brief tx_dbg_log_size - how much memory to allocate for a tx PPDU dbg log + * @details + * This parameter controls how much memory the target will allocate to + * store a log of tx PPDU meta-information (how large the PPDU was, + * when it was sent, whether it was successful, etc.) + */ + A_UINT32 tx_dbg_log_size; - /** - * @brief dma_burst_size - MAC DMA burst size, e.g., on Peregrine on PCI - * this limit can be 0 -default, 1 256B - */ - A_UINT32 dma_burst_size; + /** + * @brief num_wds_entries - how many AST entries to be allocated for WDS + */ + A_UINT32 num_wds_entries; - /** - * @brief mac_aggr_delim - Fixed delimiters to be inserted after every MPDU - * to account for interface latency to avoid underrun. - */ - A_UINT32 mac_aggr_delim; - /** - * @brief rx_skip_defrag_timeout_dup_detection_check - * @details - * determine whether target is responsible for detecting duplicate - * non-aggregate MPDU and timing out stale fragments. - * - * A-MPDU reordering is always performed on the target. - * - * 0: target responsible for frag timeout and dup checking - * 1: host responsible for frag timeout and dup checking - */ - A_UINT32 rx_skip_defrag_timeout_dup_detection_check; + /** + * @brief dma_burst_size - MAC DMA burst size, e.g., on Peregrine on PCI + * this limit can be 0 -default, 1 256B + */ + A_UINT32 dma_burst_size; - /** - * @brief vow_config - Configuration for VoW : No of Video Nodes to be supported - * and Max no of descriptors for each Video link (node). - */ - A_UINT32 vow_config; + /** + * @brief mac_aggr_delim - Fixed delimiters to be inserted after every MPDU + * to account for interface latency to avoid underrun. + */ + A_UINT32 mac_aggr_delim; + /** + * @brief rx_skip_defrag_timeout_dup_detection_check + * @details + * determine whether target is responsible for detecting duplicate + * non-aggregate MPDU and timing out stale fragments. + * + * A-MPDU reordering is always performed on the target. + * + * 0: target responsible for frag timeout and dup checking + * 1: host responsible for frag timeout and dup checking + */ + A_UINT32 rx_skip_defrag_timeout_dup_detection_check; - /** - * @brief maximum VDEV that could use GTK offload - */ - A_UINT32 gtk_offload_max_vdev; + /** + * @brief vow_config - Configuration for VoW : No of Video Nodes to be supported + * and Max no of descriptors for each Video link (node). + */ + A_UINT32 vow_config; - /** - * @brief num_msdu_desc - Number of msdu descriptors target should use - */ - A_UINT32 num_msdu_desc; /* Number of msdu desc */ - /** - * @brief max_frag_entry - Max. number of Tx fragments per MSDU - * @details - * This parameter controls the max number of Tx fragments per MSDU. - * This is sent by the target as part of the WMI_SERVICE_READY event - * and is overriden by the OS shim as required. - */ - A_UINT32 max_frag_entries; + /** + * @brief maximum VDEV that could use GTK offload + */ + A_UINT32 gtk_offload_max_vdev; - /** - * @brief num_tdls_vdevs - Max. number of vdevs that can support TDLS - * @brief num_msdu_desc - Number of vdev that can support beacon offload - */ + /** + * @brief num_msdu_desc - Number of msdu descriptors target should use + */ + A_UINT32 num_msdu_desc; /* Number of msdu desc */ + /** + * @brief max_frag_entry - Max. number of Tx fragments per MSDU + * @details + * This parameter controls the max number of Tx fragments per MSDU. + * This is sent by the target as part of the WMI_SERVICE_READY event + * and is overriden by the OS shim as required. + */ + A_UINT32 max_frag_entries; - A_UINT32 num_tdls_vdevs; /* number of vdevs allowed to do tdls */ + /** + * @brief num_tdls_vdevs - Max. number of vdevs that can support TDLS + * @brief num_msdu_desc - Number of vdev that can support beacon offload + */ - /** - * @brief num_tdls_conn_table_entries - Number of peers tracked by tdls vdev - * @details - * Each TDLS enabled vdev can track outgoing transmits/rssi/rates to/of - * peers in a connection tracking table for possible TDLS link creation - * or deletion. This controls the number of tracked peers per vdev. - */ - A_UINT32 num_tdls_conn_table_entries; /* number of peers to track per TDLS vdev */ - A_UINT32 beacon_tx_offload_max_vdev; - A_UINT32 num_multicast_filter_entries; - A_UINT32 num_wow_filters; /*host can configure the number of wow filters */ + A_UINT32 num_tdls_vdevs; /* number of vdevs allowed to do tdls */ - /** - * @brief num_keep_alive_pattern - Num of keep alive patterns configured - * from host. - */ - A_UINT32 num_keep_alive_pattern; - /** - * @brief keep_alive_pattern_size - keep alive pattern size. - */ - A_UINT32 keep_alive_pattern_size; + /** + * @brief num_tdls_conn_table_entries - Number of peers tracked by tdls vdev + * @details + * Each TDLS enabled vdev can track outgoing transmits/rssi/rates to/of + * peers in a connection tracking table for possible TDLS link creation + * or deletion. This controls the number of tracked peers per vdev. + */ + A_UINT32 num_tdls_conn_table_entries; /* number of peers to track per TDLS vdev */ + A_UINT32 beacon_tx_offload_max_vdev; + A_UINT32 num_multicast_filter_entries; + A_UINT32 num_wow_filters; /*host can configure the number of wow filters*/ - /** - * @brief max_tdls_concurrent_sleep_sta - Number of tdls sleep sta supported - * @details - * Each TDLS STA can become a sleep STA independently. This parameter - * mentions how many such sleep STAs can be supported concurrently. - */ - A_UINT32 max_tdls_concurrent_sleep_sta; + /** + * @brief num_keep_alive_pattern - Num of keep alive patterns configured + * from host. + */ + A_UINT32 num_keep_alive_pattern; + /** + * @brief keep_alive_pattern_size - keep alive pattern size. + */ + A_UINT32 keep_alive_pattern_size; + /** + * @brief max_tdls_concurrent_sleep_sta - Number of tdls sleep sta supported + * @details + * Each TDLS STA can become a sleep STA independently. This parameter + * mentions how many such sleep STAs can be supported concurrently. + */ + A_UINT32 max_tdls_concurrent_sleep_sta; - /** - * @brief max_tdls_concurrent_buffer_sta - Number of tdls buffer sta supported - * @details - * Each TDLS STA can become a buffer STA independently. This parameter - * mentions how many such buffer STAs can be supported concurrently. - */ - A_UINT32 max_tdls_concurrent_buffer_sta; + /** + * @brief max_tdls_concurrent_buffer_sta - Number of tdls buffer sta supported + * @details + * Each TDLS STA can become a buffer STA independently. This parameter + * mentions how many such buffer STAs can be supported concurrently. + */ + A_UINT32 max_tdls_concurrent_buffer_sta; - /** - * @brief wmi_send_separate - host configures fw to send the wmi separately - */ - A_UINT32 wmi_send_separate; + /** + * @brief wmi_send_separate - host configures fw to send the wmi separately + */ + A_UINT32 wmi_send_separate; - /** - * @brief num_ocb_vdevs - Number of vdevs used for OCB support - */ - A_UINT32 num_ocb_vdevs; + /** + * @brief num_ocb_vdevs - Number of vdevs used for OCB support + */ + A_UINT32 num_ocb_vdevs; - /** - * @brief num_ocb_channels - The supported number of simultaneous OCB channels - */ - A_UINT32 num_ocb_channels; + /** + * @brief num_ocb_channels - The supported number of simultaneous OCB channels + */ + A_UINT32 num_ocb_channels; - /** - * @brief num_ocb_schedules - The supported number of OCB schedule segments - */ - A_UINT32 num_ocb_schedules; - /** - * @brief specific configuration from host, such as per platform configuration - */ - #define WMI_RSRC_CFG_FLAG_WOW_IGN_PCIE_RST_S 0 - #define WMI_RSRC_CFG_FLAG_WOW_IGN_PCIE_RST_M 0x1 + /** + * @brief num_ocb_schedules - The supported number of OCB schedule segments + */ + A_UINT32 num_ocb_schedules; - #define WMI_RSRC_CFG_FLAG_LTEU_SUPPORT_S 1 - #define WMI_RSRC_CFG_FLAG_LTEU_SUPPORT_M 0x2 + /** + * @brief specific configuration from host, such as per platform configuration + */ + #define WMI_RSRC_CFG_FLAG_WOW_IGN_PCIE_RST_S 0 + #define WMI_RSRC_CFG_FLAG_WOW_IGN_PCIE_RST_M 0x1 - #define WMI_RSRC_CFG_FLAG_COEX_GPIO_SUPPORT_S 2 - #define WMI_RSRC_CFG_FLAG_COEX_GPIO_SUPPORT_M 0x4 + #define WMI_RSRC_CFG_FLAG_LTEU_SUPPORT_S 1 + #define WMI_RSRC_CFG_FLAG_LTEU_SUPPORT_M 0x2 - #define WMI_RSRC_CFG_FLAG_AUX_RADIO_SPECTRAL_INTF_S 3 - #define WMI_RSRC_CFG_FLAG_AUX_RADIO_SPECTRAL_INTF_M 0x8 + #define WMI_RSRC_CFG_FLAG_COEX_GPIO_SUPPORT_S 2 + #define WMI_RSRC_CFG_FLAG_COEX_GPIO_SUPPORT_M 0x4 - #define WMI_RSRC_CFG_FLAG_AUX_RADIO_CHAN_LOAD_INTF_S 4 - #define WMI_RSRC_CFG_FLAG_AUX_RADIO_CHAN_LOAD_INTF_M 0x10 + #define WMI_RSRC_CFG_FLAG_AUX_RADIO_SPECTRAL_INTF_S 3 + #define WMI_RSRC_CFG_FLAG_AUX_RADIO_SPECTRAL_INTF_M 0x8 - #define WMI_RSRC_CFG_FLAG_BSS_CHANNEL_INFO_64_S 5 - #define WMI_RSRC_CFG_FLAG_BSS_CHANNEL_INFO_64_M 0x20 + #define WMI_RSRC_CFG_FLAG_AUX_RADIO_CHAN_LOAD_INTF_S 4 + #define WMI_RSRC_CFG_FLAG_AUX_RADIO_CHAN_LOAD_INTF_M 0x10 - #define WMI_RSRC_CFG_FLAG_ATF_CONFIG_ENABLE_S 6 - #define WMI_RSRC_CFG_FLAG_ATF_CONFIG_ENABLE_M 0x40 + #define WMI_RSRC_CFG_FLAG_BSS_CHANNEL_INFO_64_S 5 + #define WMI_RSRC_CFG_FLAG_BSS_CHANNEL_INFO_64_M 0x20 - #define WMI_RSRC_CFG_FLAG_IPHR_PAD_CONFIG_ENABLE_S 7 - #define WMI_RSRC_CFG_FLAG_IPHR_PAD_CONFIG_ENABLE_M 0x80 + #define WMI_RSRC_CFG_FLAG_ATF_CONFIG_ENABLE_S 6 + #define WMI_RSRC_CFG_FLAG_ATF_CONFIG_ENABLE_M 0x40 - #define WMI_RSRC_CFG_FLAG_QWRAP_MODE_ENABLE_S 8 - #define WMI_RSRC_CFG_FLAG_QWRAP_MODE_ENABLE_M 0x100 + #define WMI_RSRC_CFG_FLAG_IPHR_PAD_CONFIG_ENABLE_S 7 + #define WMI_RSRC_CFG_FLAG_IPHR_PAD_CONFIG_ENABLE_M 0x80 - #define WMI_RSRC_CFG_FLAG_MGMT_COMP_EVT_BUNDLE_SUPPORT_S 9 - #define WMI_RSRC_CFG_FLAG_MGMT_COMP_EVT_BUNDLE_SUPPORT_M 0x200 + #define WMI_RSRC_CFG_FLAG_QWRAP_MODE_ENABLE_S 8 + #define WMI_RSRC_CFG_FLAG_QWRAP_MODE_ENABLE_M 0x100 - #define WMI_RSRC_CFG_FLAG_TX_MSDU_ID_NEW_PARTITION_SUPPORT_S 10 - #define WMI_RSRC_CFG_FLAG_TX_MSDU_ID_NEW_PARTITION_SUPPORT_M 0x400 + #define WMI_RSRC_CFG_FLAG_MGMT_COMP_EVT_BUNDLE_SUPPORT_S 9 + #define WMI_RSRC_CFG_FLAG_MGMT_COMP_EVT_BUNDLE_SUPPORT_M 0x200 - A_UINT32 flag1; + #define WMI_RSRC_CFG_FLAG_TX_MSDU_ID_NEW_PARTITION_SUPPORT_S 10 + #define WMI_RSRC_CFG_FLAG_TX_MSDU_ID_NEW_PARTITION_SUPPORT_M 0x400 - /** @brief smart_ant_cap - Smart Antenna capabilities information - * @details - * 1 - Smart antenna is enabled. - * 0 - Smart antenna is disabled. - * In future this can contain smart antenna specifc capabilities. - */ - A_UINT32 smart_ant_cap; + A_UINT32 flag1; - /** - * User can configure the buffers allocated for each AC (BE, BK, VI, VO) - * during init - */ - A_UINT32 BK_Minfree; - A_UINT32 BE_Minfree; - A_UINT32 VI_Minfree; - A_UINT32 VO_Minfree; + /** @brief smart_ant_cap - Smart Antenna capabilities information + * @details + * 1 - Smart antenna is enabled. + * 0 - Smart antenna is disabled. + * In future this can contain smart antenna specifc capabilities. + */ + A_UINT32 smart_ant_cap; - /** - * @brief alloc_frag_desc_for_data_pkt . Controls data packet fragment - * descriptor memory allocation. - * 1 - Allocate fragment descriptor memory for data packet in firmware. - * If host wants to transmit data packet at its desired rate, - * this field must be set. - * 0 - Don't allocate fragment descriptor for data packet. - */ - A_UINT32 alloc_frag_desc_for_data_pkt; + /** + * User can configure the buffers allocated for each AC (BE, BK, VI, VO) + * during init + */ + A_UINT32 BK_Minfree; + A_UINT32 BE_Minfree; + A_UINT32 VI_Minfree; + A_UINT32 VO_Minfree; - /* - * how much space to allocate for NDP NS (neighbor solicitation) - * specs - */ - A_UINT32 num_ns_ext_tuples_cfg; - /** - * size (in bytes) of the buffer the FW shall allocate to store - * packet filtering instructions - */ - A_UINT32 bpf_instruction_size; - /** - * Maximum no of BSSID based RX filters host would program - * Value 0 means host doesn't given any limit to FW. - */ - A_UINT32 max_bssid_rx_filters; - /** - * Use PDEV ID instead of MAC ID, added for backward compatibility with - * older host which is using MAC ID. 1 means PDEV ID, 0 means MAC ID. - */ - A_UINT32 use_pdev_id; + /** + * @brief alloc_frag_desc_for_data_pkt . Controls data packet fragment + * descriptor memory allocation. + * 1 - Allocate fragment descriptor memory for data packet in firmware. + * If host wants to transmit data packet at its desired rate, + * this field must be set. + * 0 - Don't allocate fragment descriptor for data packet. + */ + A_UINT32 alloc_frag_desc_for_data_pkt; + + /** how much space to allocate for NDP NS (neighbor solicitation) specs */ + A_UINT32 num_ns_ext_tuples_cfg; + + /** + * size (in bytes) of the buffer the FW shall allocate to store + * packet filtering instructions + */ + A_UINT32 bpf_instruction_size; + + /** + * Maximum no of BSSID based RX filters host would program + * Value 0 means host doesn't given any limit to FW. + */ + A_UINT32 max_bssid_rx_filters; + /** + * Use PDEV ID instead of MAC ID, added for backward compatibility with older host + * which is using MAC ID. 1 means PDEV ID, 0 means MAC ID. + */ + A_UINT32 use_pdev_id; } wmi_resource_config; #define WMI_RSRC_CFG_FLAG_SET(word32, flag, value) \ - do { \ - (word32) &= ~WMI_RSRC_CFG_FLAG_ ## flag ## _M; \ - (word32) |= ((value) << WMI_RSRC_CFG_FLAG_ ## flag ## _S) & \ - WMI_RSRC_CFG_FLAG_ ## flag ## _M; \ - } while (0) + do { \ + (word32) &= ~WMI_RSRC_CFG_FLAG_ ## flag ## _M; \ + (word32) |= ((value) << WMI_RSRC_CFG_FLAG_ ## flag ## _S) & \ + WMI_RSRC_CFG_FLAG_ ## flag ## _M; \ + } while (0) #define WMI_RSRC_CFG_FLAG_GET(word32, flag) \ - (((word32) & WMI_RSRC_CFG_FLAG_ ## flag ## _M) >> \ - WMI_RSRC_CFG_FLAG_ ## flag ## _S) + (((word32) & WMI_RSRC_CFG_FLAG_ ## flag ## _M) >> \ + WMI_RSRC_CFG_FLAG_ ## flag ## _S) #define WMI_RSRC_CFG_FLAG_WOW_IGN_PCIE_RST_SET(word32, value) \ - WMI_RSRC_CFG_FLAG_SET((word32), WOW_IGN_PCIE_RST, (value)) + WMI_RSRC_CFG_FLAG_SET((word32), WOW_IGN_PCIE_RST, (value)) #define WMI_RSRC_CFG_FLAG_WOW_IGN_PCIE_RST_GET(word32) \ - WMI_RSRC_CFG_FLAG_GET((word32), WOW_IGN_PCIE_RST) + WMI_RSRC_CFG_FLAG_GET((word32), WOW_IGN_PCIE_RST) #define WMI_RSRC_CFG_FLAG_LTEU_SUPPORT_SET(word32, value) \ - WMI_RSRC_CFG_FLAG_SET((word32), LTEU_SUPPORT, (value)) + WMI_RSRC_CFG_FLAG_SET((word32), LTEU_SUPPORT, (value)) #define WMI_RSRC_CFG_FLAG_LTEU_SUPPORT_GET(word32) \ - WMI_RSRC_CFG_FLAG_GET((word32), LTEU_SUPPORT) + WMI_RSRC_CFG_FLAG_GET((word32), LTEU_SUPPORT) #define WMI_RSRC_CFG_FLAG_COEX_GPIO_SUPPORT_SET(word32, value) \ - WMI_RSRC_CFG_FLAG_SET((word32), COEX_GPIO_SUPPORT, (value)) + WMI_RSRC_CFG_FLAG_SET((word32), COEX_GPIO_SUPPORT, (value)) #define WMI_RSRC_CFG_FLAG_COEX_GPIO_SUPPORT_GET(word32) \ - WMI_RSRC_CFG_FLAG_GET((word32), COEX_GPIO_SUPPORT) + WMI_RSRC_CFG_FLAG_GET((word32), COEX_GPIO_SUPPORT) #define WMI_RSRC_CFG_FLAG_AUX_RADIO_SPECTRAL_INTF_SET(word32, value) \ - WMI_RSRC_CFG_FLAG_SET((word32), AUX_RADIO_SPECTRAL_INTF, (value)) + WMI_RSRC_CFG_FLAG_SET((word32), AUX_RADIO_SPECTRAL_INTF, (value)) #define WMI_RSRC_CFG_FLAG_AUX_RADIO_SPECTRAL_INTF_GET(word32) \ - WMI_RSRC_CFG_FLAG_GET((word32), AUX_RADIO_SPECTRAL_INTF) + WMI_RSRC_CFG_FLAG_GET((word32), AUX_RADIO_SPECTRAL_INTF) #define WMI_RSRC_CFG_FLAG_AUX_RADIO_CHAN_LOAD_INTF_SET(word32, value) \ - WMI_RSRC_CFG_FLAG_SET((word32), AUX_RADIO_CHAN_LOAD_INTF, (value)) + WMI_RSRC_CFG_FLAG_SET((word32), AUX_RADIO_CHAN_LOAD_INTF, (value)) #define WMI_RSRC_CFG_FLAG_AUX_RADIO_CHAN_LOAD_INTF_GET(word32) \ - WMI_RSRC_CFG_FLAG_GET((word32), AUX_RADIO_CHAN_LOAD_INTF) + WMI_RSRC_CFG_FLAG_GET((word32), AUX_RADIO_CHAN_LOAD_INTF) #define WMI_RSRC_CFG_FLAG_BSS_CHANNEL_INFO_64_SET(word32, value) \ - WMI_RSRC_CFG_FLAG_SET((word32), BSS_CHANNEL_INFO_64, (value)) + WMI_RSRC_CFG_FLAG_SET((word32), BSS_CHANNEL_INFO_64, (value)) #define WMI_RSRC_CFG_FLAG_BSS_CHANNEL_INFO_64_GET(word32) \ - WMI_RSRC_CFG_FLAG_GET((word32), BSS_CHANNEL_INFO_64) + WMI_RSRC_CFG_FLAG_GET((word32), BSS_CHANNEL_INFO_64) #define WMI_RSRC_CFG_FLAG_ATF_CONFIG_ENABLE_SET(word32, value) \ - WMI_RSRC_CFG_FLAG_SET((word32), ATF_CONFIG_ENABLE, (value)) + WMI_RSRC_CFG_FLAG_SET((word32), ATF_CONFIG_ENABLE, (value)) #define WMI_RSRC_CFG_FLAG_ATF_CONFIG_ENABLE_GET(word32) \ - WMI_RSRC_CFG_FLAG_GET((word32), ATF_CONFIG_ENABLE) + WMI_RSRC_CFG_FLAG_GET((word32), ATF_CONFIG_ENABLE) #define WMI_RSRC_CFG_FLAG_IPHR_PAD_CONFIG_ENABLE_SET(word32, value) \ - WMI_RSRC_CFG_FLAG_SET((word32), IPHR_PAD_CONFIG_ENABLE, (value)) + WMI_RSRC_CFG_FLAG_SET((word32), IPHR_PAD_CONFIG_ENABLE, (value)) #define WMI_RSRC_CFG_FLAG_IPHR_PAD_CONFIG_ENABLE_GET(word32) \ - WMI_RSRC_CFG_FLAG_GET((word32), IPHR_PAD_CONFIG_ENABLE) + WMI_RSRC_CFG_FLAG_GET((word32), IPHR_PAD_CONFIG_ENABLE) #define WMI_RSRC_CFG_FLAG_QWRAP_MODE_ENABLE_SET(word32, value) \ - WMI_RSRC_CFG_FLAG_SET((word32), QWRAP_MODE_ENABLE, (value)) + WMI_RSRC_CFG_FLAG_SET((word32), QWRAP_MODE_ENABLE, (value)) #define WMI_RSRC_CFG_FLAG_QWRAP_MODE_ENABLE_GET(word32) \ - WMI_RSRC_CFG_FLAG_GET((word32), QWRAP_MODE_ENABLE) + WMI_RSRC_CFG_FLAG_GET((word32), QWRAP_MODE_ENABLE) #define WMI_RSRC_CFG_FLAG_MGMT_COMP_EVT_BUNDLE_SUPPORT_SET(word32, value) \ - WMI_RSRC_CFG_FLAG_SET((word32), MGMT_COMP_EVT_BUNDLE_SUPPORT, (value)) + WMI_RSRC_CFG_FLAG_SET((word32), MGMT_COMP_EVT_BUNDLE_SUPPORT, (value)) #define WMI_RSRC_CFG_FLAG_MGMT_COMP_EVT_BUNDLE_SUPPORT_GET(word32) \ - WMI_RSRC_CFG_FLAG_GET((word32), MGMT_COMP_EVT_BUNDLE_SUPPORT) + WMI_RSRC_CFG_FLAG_GET((word32), MGMT_COMP_EVT_BUNDLE_SUPPORT) #define WMI_RSRC_CFG_FLAG_TX_MSDU_ID_NEW_PARTITION_SUPPORT_SET(word32, value) \ - WMI_RSRC_CFG_FLAG_SET((word32), \ - TX_MSDU_ID_NEW_PARTITION_SUPPORT, (value)) + WMI_RSRC_CFG_FLAG_SET((word32), TX_MSDU_ID_NEW_PARTITION_SUPPORT, (value)) #define WMI_RSRC_CFG_FLAG_TX_MSDU_ID_NEW_PARTITION_SUPPORT_GET(word32) \ - WMI_RSRC_CFG_FLAG_GET((word32), TX_MSDU_ID_NEW_PARTITION_SUPPORT) + WMI_RSRC_CFG_FLAG_GET((word32), TX_MSDU_ID_NEW_PARTITION_SUPPORT) typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_init_cmd_fixed_param */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_init_cmd_fixed_param */ - /** The following indicate the WMI versions to be supported by - * the host driver. Note that the host driver decide to - * "downgrade" its WMI version support and this may not be the - * native version of the host driver. */ - wmi_abi_version host_abi_vers; + /** The following indicate the WMI versions to be supported by + * the host driver. Note that the host driver decide to + * "downgrade" its WMI version support and this may not be the + * native version of the host driver. */ + wmi_abi_version host_abi_vers; - A_UINT32 num_host_mem_chunks; - /** size of array host_mem_chunks[] */ - /* The TLVs for resource_config, host_mem_chunks[], and - * hw_mode_config will follow. - * wmi_resource_config resource_config; - * wlan_host_memory_chunk host_mem_chunks[]; - * wmi_pdev_set_hw_mode_cmd_fixed_param hw_mode_config; - * Note that the hw_mode_config, in spite of its "pdev" name, - * applies to the entire target rather than for a single pdev - * within the target. - * To avoid specifying a HW mode for the target, the host should - * fill hw_mode_config's fields with 0x0. - */ + A_UINT32 num_host_mem_chunks; /** size of array host_mem_chunks[] */ +/* The TLVs for resource_config, host_mem_chunks[], and hw_mode_config will follow. + * wmi_resource_config resource_config; + * wlan_host_memory_chunk host_mem_chunks[]; + * wmi_pdev_set_hw_mode_cmd_fixed_param hw_mode_config; + * Note that the hw_mode_config, in spite of its "pdev" name, + * applies to the entire target rather than for a single pdev + * within the target. + * To avoid specifying a HW mode for the target, the host should + * fill hw_mode_config's fields with 0x0. + */ } wmi_init_cmd_fixed_param; @@ -2584,68 +2535,63 @@ typedef struct { * TLV for channel list */ typedef struct { - /** WMI_CHAN_LIST_TAG */ - A_UINT32 tag; - /** # of channels to scan */ - A_UINT32 num_chan; - /** channels in Mhz */ - A_UINT32 channel_list[1]; + /** WMI_CHAN_LIST_TAG */ + A_UINT32 tag; + /** # of channels to scan */ + A_UINT32 num_chan; + /** channels in Mhz */ + A_UINT32 channel_list[1]; } wmi_chan_list; /** * TLV for bssid list */ typedef struct { - /** WMI_BSSID_LIST_TAG */ - A_UINT32 tag; - /** number of bssids */ - A_UINT32 num_bssid; - /** bssid list */ - wmi_mac_addr bssid_list[1]; + /** WMI_BSSID_LIST_TAG */ + A_UINT32 tag; + /** number of bssids */ + A_UINT32 num_bssid; + /** bssid list */ + wmi_mac_addr bssid_list[1]; } wmi_bssid_list; /** * TLV for ie data. */ typedef struct { - /** WMI_IE_TAG */ - A_UINT32 tag; - /** number of bytes in ie data */ - A_UINT32 ie_len; - /** ie data array (ie_len adjusted to number of words (ie_len + 4)/4 ) */ - A_UINT32 ie_data[1]; + /** WMI_IE_TAG */ + A_UINT32 tag; + /** number of bytes in ie data */ + A_UINT32 ie_len; + /** ie data array (ie_len adjusted to number of words (ie_len + 4)/4) */ + A_UINT32 ie_data[1]; } wmi_ie_data; /** * TLV used for length/buffer */ typedef struct { - /** - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_tlv_buf_len_param - */ - A_UINT32 tlv_header; - A_UINT32 buf_len; /** Length of buf */ - /** - * Following this structure is the TLV byte stream of buf - * of length buf_len: - * A_UINT8 buf[]; - * - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tlv_buf_len_param */ + A_UINT32 buf_len; /** Length of buf */ + /** + * Following this structure is the TLV byte stream of buf of length buf_len: + * A_UINT8 buf[]; + * + */ } wmi_tlv_buf_len_param; typedef struct { - /** Len of the SSID */ - A_UINT32 ssid_len; - /** SSID */ - A_UINT32 ssid[8]; + /** Len of the SSID */ + A_UINT32 ssid_len; + /** SSID */ + A_UINT32 ssid[8]; } wmi_ssid; typedef struct { - /** WMI_SSID_LIST_TAG */ - A_UINT32 tag; - A_UINT32 num_ssids; - wmi_ssid ssids[1]; + /** WMI_SSID_LIST_TAG */ + A_UINT32 tag; + A_UINT32 num_ssids; + wmi_ssid ssids[1]; } wmi_ssid_list; /* prefix used by scan requestor ids on the host */ @@ -2659,80 +2605,80 @@ typedef struct { #define WLAN_SCAN_PARAMS_MAX_IE_LEN 512 /* NOTE: This constant cannot be changed without breaking WMI compatibility */ -#define WMI_IE_BITMAP_SIZE 8 +#define WMI_IE_BITMAP_SIZE 8 typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_start_scan_cmd_fixed_param */ - /** Scan ID */ - A_UINT32 scan_id; - /** Scan requestor ID */ - A_UINT32 scan_req_id; - /** VDEV id(interface) that is requesting scan */ - A_UINT32 vdev_id; - /** Scan Priority, input to scan scheduler */ - A_UINT32 scan_priority; - /** Scan events subscription */ - A_UINT32 notify_scan_events; - /** dwell time in msec on active channels */ - A_UINT32 dwell_time_active; - /** dwell time in msec on passive channels */ - A_UINT32 dwell_time_passive; - /** min time in msec on the BSS channel,only valid if atleast one VDEV is active*/ - A_UINT32 min_rest_time; - /** max rest time in msec on the BSS channel,only valid if at least one VDEV is active*/ - /** the scanner will rest on the bss channel at least min_rest_time. after min_rest_time the scanner - * will start checking for tx/rx activity on all VDEVs. if there is no activity the scanner will - * switch to off channel. if there is activity the scanner will let the radio on the bss channel - * until max_rest_time expires.at max_rest_time scanner will switch to off channel - * irrespective of activity. activity is determined by the idle_time parameter. - */ - A_UINT32 max_rest_time; - /** time before sending next set of probe requests. - * The scanner keeps repeating probe requests transmission with period specified by repeat_probe_time. - * The number of probe requests specified depends on the ssid_list and bssid_list - */ - A_UINT32 repeat_probe_time; - /** time in msec between 2 consequetive probe requests with in a set. */ - A_UINT32 probe_spacing_time; - /** data inactivity time in msec on bss channel that will be used by scanner for measuring the inactivity */ - A_UINT32 idle_time; - /** maximum time in msec allowed for scan */ - A_UINT32 max_scan_time; - /** delay in msec before sending first probe request after switching to a channel */ - A_UINT32 probe_delay; - /** Scan control flags */ - A_UINT32 scan_ctrl_flags; - /** Burst duration time in msec*/ - A_UINT32 burst_duration; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_start_scan_cmd_fixed_param */ + /** Scan ID */ + A_UINT32 scan_id; + /** Scan requestor ID */ + A_UINT32 scan_req_id; + /** VDEV id(interface) that is requesting scan */ + A_UINT32 vdev_id; + /** Scan Priority, input to scan scheduler */ + A_UINT32 scan_priority; + /** Scan events subscription */ + A_UINT32 notify_scan_events; + /** dwell time in msec on active channels */ + A_UINT32 dwell_time_active; + /** dwell time in msec on passive channels */ + A_UINT32 dwell_time_passive; + /** min time in msec on the BSS channel,only valid if atleast one VDEV is active*/ + A_UINT32 min_rest_time; + /** max rest time in msec on the BSS channel,only valid if at least one VDEV is active*/ + /** the scanner will rest on the bss channel at least min_rest_time. after min_rest_time the scanner + * will start checking for tx/rx activity on all VDEVs. if there is no activity the scanner will + * switch to off channel. if there is activity the scanner will let the radio on the bss channel + * until max_rest_time expires.at max_rest_time scanner will switch to off channel + * irrespective of activity. activity is determined by the idle_time parameter. + */ + A_UINT32 max_rest_time; + /** time before sending next set of probe requests. + * The scanner keeps repeating probe requests transmission with period specified by repeat_probe_time. + * The number of probe requests specified depends on the ssid_list and bssid_list + */ + A_UINT32 repeat_probe_time; + /** time in msec between 2 consequetive probe requests with in a set. */ + A_UINT32 probe_spacing_time; + /** data inactivity time in msec on bss channel that will be used by scanner for measuring the inactivity */ + A_UINT32 idle_time; + /** maximum time in msec allowed for scan */ + A_UINT32 max_scan_time; + /** delay in msec before sending first probe request after switching to a channel */ + A_UINT32 probe_delay; + /** Scan control flags */ + A_UINT32 scan_ctrl_flags; + /** Burst duration time in msec*/ + A_UINT32 burst_duration; - /** # if channels to scan. In the TLV channel_list[] */ - A_UINT32 num_chan; - /** number of bssids. In the TLV bssid_list[] */ - A_UINT32 num_bssid; - /** number of ssid. In the TLV ssid_list[] */ - A_UINT32 num_ssids; - /** number of bytes in ie data. In the TLV ie_data[]. Max len is defined by WLAN_SCAN_PARAMS_MAX_IE_LEN */ - A_UINT32 ie_len; - /** Max number of probes to be sent */ - A_UINT32 n_probes; - /** MAC Address to use in Probe Req as SA **/ - wmi_mac_addr mac_addr; - /** Mask on which MAC has to be randomized **/ - wmi_mac_addr mac_mask; - /** ie bitmap to use in probe req **/ - A_UINT32 ie_bitmap[WMI_IE_BITMAP_SIZE]; - /** Number of vendor OUIs. In the TLV vendor_oui[] **/ - A_UINT32 num_vendor_oui; + /** # if channels to scan. In the TLV channel_list[] */ + A_UINT32 num_chan; + /** number of bssids. In the TLV bssid_list[] */ + A_UINT32 num_bssid; + /** number of ssid. In the TLV ssid_list[] */ + A_UINT32 num_ssids; + /** number of bytes in ie data. In the TLV ie_data[]. Max len is defined by WLAN_SCAN_PARAMS_MAX_IE_LEN */ + A_UINT32 ie_len; + /** Max number of probes to be sent */ + A_UINT32 n_probes; + /** MAC Address to use in Probe Req as SA **/ + wmi_mac_addr mac_addr; + /** Mask on which MAC has to be randomized **/ + wmi_mac_addr mac_mask; + /** ie bitmap to use in probe req **/ + A_UINT32 ie_bitmap[WMI_IE_BITMAP_SIZE]; + /** Number of vendor OUIs. In the TLV vendor_oui[] **/ + A_UINT32 num_vendor_oui; - /** - * TLV (tag length value ) parameters follow the scan_cmd - * structure. The TLV's are: - * A_UINT32 channel_list[]; - * wmi_ssid ssid_list[]; - * wmi_mac_addr bssid_list[]; - * A_UINT8 ie_data[]; - * wmi_vendor_oui vendor_oui[]; - */ +/** + * TLV (tag length value) parameters follow the scan_cmd + * structure. The TLV's are: + * A_UINT32 channel_list[]; + * wmi_ssid ssid_list[]; + * wmi_mac_addr bssid_list[]; + * A_UINT8 ie_data[]; + * wmi_vendor_oui vendor_oui[]; + */ } wmi_start_scan_cmd_fixed_param; /** @@ -2756,7 +2702,7 @@ typedef struct { /**When set, certain errors are ignored and scan continues. * Different FW scan engine may use its own logic to decide what errors to ignore*/ #define WMI_SCAN_CONTINUE_ON_ERROR 0x80 -/** Enable promiscous mode for ese */ +/** Enable promiscous mode for CCXv4 */ #define WMI_SCAN_FILTER_PROMISCOUS 0x100 /** allow to send probe req on DFS channel */ #define WMI_SCAN_FLAG_FORCE_ACTIVE_ON_DFS 0x200 @@ -2775,7 +2721,7 @@ typedef struct { /** allow capture ppdu with phy errrors */ #define WMI_SCAN_CAPTURE_PHY_ERROR 0x8000 /** always do passive scan on passive channels */ -#define WMI_SCAN_FLAG_STRICT_PASSIVE_ON_PCHN 0x1000 +#define WMI_SCAN_FLAG_STRICT_PASSIVE_ON_PCHN 0x10000 /** set HALF (10MHz) rate support */ #define WMI_SCAN_FLAG_HALF_RATE_SUPPORT 0x20000 /** set Quarter (5MHz) rate support */ @@ -2788,21 +2734,21 @@ typedef struct { #define WMI_SCAN_DWELL_MODE_SHIFT 21 typedef enum { - WMI_SCAN_DWELL_MODE_DEFAULT = 0, - WMI_SCAN_DWELL_MODE_CONSERVATIVE = 1, - WMI_SCAN_DWELL_MODE_MODERATE = 2, - WMI_SCAN_DWELL_MODE_AGGRESSIVE = 3, - WMI_SCAN_DWELL_MODE_STATIC = 4, + WMI_SCAN_DWELL_MODE_DEFAULT = 0, + WMI_SCAN_DWELL_MODE_CONSERVATIVE = 1, + WMI_SCAN_DWELL_MODE_MODERATE = 2, + WMI_SCAN_DWELL_MODE_AGGRESSIVE = 3, + WMI_SCAN_DWELL_MODE_STATIC = 4, } WMI_SCAN_DWELL_MODE; #define WMI_SCAN_SET_DWELL_MODE(flag, mode) \ - do { \ - (flag) |= (((mode) << WMI_SCAN_DWELL_MODE_SHIFT) & \ - WMI_SCAN_DWELL_MODE_MASK); \ - } while (0) + do { \ + (flag) |= (((mode) << WMI_SCAN_DWELL_MODE_SHIFT) & \ + WMI_SCAN_DWELL_MODE_MASK); \ + } while (0) #define WMI_SCAN_GET_DWELL_MODE(flag) \ - (((flag) & WMI_SCAN_DWELL_MODE_MASK) >> WMI_SCAN_DWELL_MODE_SHIFT) + (((flag) & WMI_SCAN_DWELL_MODE_MASK) >> WMI_SCAN_DWELL_MODE_SHIFT) /** WMI_SCAN_CLASS_MASK must be the same value as IEEE80211_SCAN_CLASS_MASK */ #define WMI_SCAN_CLASS_MASK 0xFF000000 @@ -2819,37 +2765,42 @@ typedef enum { #define WMI_SCAN_STOP_ALL 0x04000000 typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_stop_scan_cmd_fixed_param */ - /** requestor requesting cancel */ - A_UINT32 requestor; - /** Scan ID */ - A_UINT32 scan_id; - /** - * Req Type - * req_type should be WMI_SCAN_STOP_ONE, WMI_SCN_STOP_VAP_ALL or WMI_SCAN_STOP_ALL - * WMI_SCAN_STOP_ONE indicates to stop a specific scan with scan_id - * WMI_SCN_STOP_VAP_ALL indicates to stop all scan requests on a specific vDev with vdev_id - * WMI_SCAN_STOP_ALL indicates to stop all scan requests in both Scheduler's queue and Scan Engine - */ - A_UINT32 req_type; - /** - * vDev ID - * used when req_type equals to WMI_SCN_STOP_VAP_ALL, it indexed the vDev on which to stop the scan - */ - A_UINT32 vdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_stop_scan_cmd_fixed_param */ + /** requestor requesting cancel */ + A_UINT32 requestor; + /** Scan ID */ + A_UINT32 scan_id; + /** + * Req Type + * req_type should be WMI_SCAN_STOP_ONE, WMI_SCN_STOP_VAP_ALL or WMI_SCAN_STOP_ALL + * WMI_SCAN_STOP_ONE indicates to stop a specific scan with scan_id (on a specific pdev in DBDC) + * WMI_SCN_STOP_VAP_ALL indicates to stop all scan requests on a specific vDev with vdev_id + * WMI_SCAN_STOP_ALL indicates to stop all scan requests in both Scheduler's queue and Scan Engine (on a specific pdev in DBDC) + */ + A_UINT32 req_type; + /** + * vDev ID + * used when req_type equals to WMI_SCN_STOP_VAP_ALL, it indexed the vDev on which to stop the scan + */ + A_UINT32 vdev_id; + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + * In non-DBDC case host should set it to 0 + */ + A_UINT32 pdev_id; } wmi_stop_scan_cmd_fixed_param; -#define MAX_NUM_CHAN_PER_WMI_CMD 58 /* each WMI cmd can hold 58 channel entries at most */ + +#define MAX_NUM_CHAN_PER_WMI_CMD 58 /* each WMI cmd can hold 58 channel entries at most */ #define APPEND_TO_EXISTING_CHAN_LIST 1 typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_scan_chan_list_cmd_fixed_param */ - A_UINT32 num_scan_chans; - /** no of elements in chan_info[] */ - A_UINT32 flags; /* Flags used to control the behavior of channel list update on target side */ - A_UINT32 pdev_id; /* pdev_id for identifying the MAC. See macros starting with WMI_PDEV_ID_ for values */ - /** Followed by the variable length TLV chan_info: - * wmi_channel chan_info[] */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_scan_chan_list_cmd_fixed_param */ + A_UINT32 num_scan_chans; /** no of elements in chan_info[] */ + A_UINT32 flags; /* Flags used to control the behavior of channel list update on target side */ + A_UINT32 pdev_id; /** pdev_id for identifying the MAC. See macros starting with WMI_PDEV_ID_ for values. In non-DBDC case host should set it to 0. */ +/** Followed by the variable length TLV chan_info: + * wmi_channel chan_info[] */ } wmi_scan_chan_list_cmd_fixed_param; /* @@ -2857,13 +2808,13 @@ typedef struct { */ /* NOTE: WLAN SCAN_PRIORITY_COUNT can't be changed without breaking the compatibility */ typedef enum { - WMI_SCAN_PRIORITY_VERY_LOW = 0, - WMI_SCAN_PRIORITY_LOW, - WMI_SCAN_PRIORITY_MEDIUM, - WMI_SCAN_PRIORITY_HIGH, - WMI_SCAN_PRIORITY_VERY_HIGH, + WMI_SCAN_PRIORITY_VERY_LOW = 0, + WMI_SCAN_PRIORITY_LOW, + WMI_SCAN_PRIORITY_MEDIUM, + WMI_SCAN_PRIORITY_HIGH, + WMI_SCAN_PRIORITY_VERY_HIGH, - WMI_SCAN_PRIORITY_COUNT /* number of priorities supported */ + WMI_SCAN_PRIORITY_COUNT /* number of priorities supported */ } wmi_scan_priority; /* Five Levels for Requested Priority */ @@ -2876,19 +2827,24 @@ typedef A_UINT32 WLAN_PRIORITY_MAPPING[WMI_SCAN_PRIORITY_COUNT]; * we will generate the new WLAN_M_STA table with modified P2P Client Entry but keep STA entry intact */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_scan_sch_priority_table_cmd_fixed_param */ - /** - * used as an index to find the proper table for a specific vdev type in default_scan_priority_mapping_table - * vdev_type should be one of enum in WLAN_OPMODE which inculdes WLAN_M_IBSS, WLAN_M_STA, WLAN_M_AP and WLAN_M_MONITOR currently - */ - A_UINT32 vdev_type; - /** - * number of rows in mapping_table for a specific vdev - * for WLAN_M_STA type, there are 3 entries in the table (refer to default_scan_priority_mapping_table definition) - */ - A_UINT32 number_rows; - /** mapping_table for a specific vdev follows this TLV - * WLAN_PRIORITY_MAPPING mapping_table[]; */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_scan_sch_priority_table_cmd_fixed_param */ + /** + * used as an index to find the proper table for a specific vdev type in default_scan_priority_mapping_table + * vdev_type should be one of enum in WLAN_OPMODE which inculdes WLAN_M_IBSS, WLAN_M_STA, WLAN_M_AP and WLAN_M_MONITOR currently + */ + A_UINT32 vdev_type; + /** + * number of rows in mapping_table for a specific vdev + * for WLAN_M_STA type, there are 3 entries in the table (refer to default_scan_priority_mapping_table definition) + */ + A_UINT32 number_rows; + /** + * pdev_id for identifying the MAC. See macros starting with WMI_PDEV_ID_ for values. + * In non-DBDC case host should set it to 0 + */ + A_UINT32 pdev_id; +/** mapping_table for a specific vdev follows this TLV + * WLAN_PRIORITY_MAPPING mapping_table[]; */ } wmi_scan_sch_priority_table_cmd_fixed_param; /** update flags */ @@ -2897,19 +2853,21 @@ typedef struct { #define WMI_SCAN_UPDATE_SCAN_MAX_REST_TIME 0x4 typedef struct { - A_UINT32 tlv_header; - /** requestor requesting update scan request */ - A_UINT32 requestor; - /** Scan ID of the scan request that need to be update */ - A_UINT32 scan_id; - /** update flags, indicating which of the following fields are valid and need to be updated*/ - A_UINT32 scan_update_flags; - /** scan priority. Only valid if WMI_SCAN_UPDATE_SCAN_PRIORITY flag is set in scan_update_flag */ - A_UINT32 scan_priority; - /** min rest time. Only valid if WMI_SCAN_UPDATE_MIN_REST_TIME flag is set in scan_update_flag */ - A_UINT32 min_rest_time; - /** min rest time. Only valid if WMI_SCAN_UPDATE_MAX_REST_TIME flag is set in scan_update_flag */ - A_UINT32 max_rest_time; + A_UINT32 tlv_header; + /** requestor requesting update scan request */ + A_UINT32 requestor; + /** Scan ID of the scan request that need to be update */ + A_UINT32 scan_id; + /** update flags, indicating which of the following fields are valid and need to be updated*/ + A_UINT32 scan_update_flags; + /** scan priority. Only valid if WMI_SCAN_UPDATE_SCAN_PRIORITY flag is set in scan_update_flag */ + A_UINT32 scan_priority; + /** min rest time. Only valid if WMI_SCAN_UPDATE_MIN_REST_TIME flag is set in scan_update_flag */ + A_UINT32 min_rest_time; + /** min rest time. Only valid if WMI_SCAN_UPDATE_MAX_REST_TIME flag is set in scan_update_flag */ + A_UINT32 max_rest_time; + /** pdev_id for identifying the MAC. See macros starting with WMI_PDEV_ID_ for values. In non-DBDC case host should set it to 0 */ + A_UINT32 pdev_id; } wmi_scan_update_request_cmd_fixed_param; #define WMI_SCAN_PROBE_OUI_SPOOFED_MAC_IN_PROBE_REQ 0x1 @@ -2917,96 +2875,99 @@ typedef struct { #define WMI_SCAN_PROBE_OUI_ENABLE_IE_WHITELIST_IN_PROBE_REQ 0x4 typedef struct _wmi_vendor_oui { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vendor_oui */ - A_UINT32 oui_type_subtype; /** Vendor OUI type and subtype, lower 3 bytes is type and highest byte is subtype**/ -} wmi_vendor_oui; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vendor_oui */ + A_UINT32 oui_type_subtype; /** Vendor OUI type and subtype, lower 3 bytes is type and highest byte is subtype**/ +}wmi_vendor_oui; typedef struct { - A_UINT32 tlv_header; - /** oui to be used in probe request frame when random mac addresss is - * requested part of scan parameters. this is applied to both FW internal scans and - * host initated scans. host can request for random mac address with - * WMI_SCAN_ADD_SPOOFED_MAC_IN_PROBE_REQ flag. */ - A_UINT32 prob_req_oui; - A_UINT32 vdev_id; - /** Control Flags **/ - A_UINT32 flags; - /** ie bitmap to use in probe req **/ - A_UINT32 ie_bitmap[WMI_IE_BITMAP_SIZE]; - /** Number of vendor OUIs. In the TLV vendor_oui[] **/ - A_UINT32 num_vendor_oui; - /* Following this tlv, there comes an array of structure of type wmi_vendor_ouiwmi_vendor_oui vendor_oui[];*/ - + A_UINT32 tlv_header; + /** oui to be used in probe request frame when random mac addresss is + * requested part of scan parameters. this is applied to both FW internal scans and + * host initated scans. host can request for random mac address with + * WMI_SCAN_ADD_SPOOFED_MAC_IN_PROBE_REQ flag. */ + A_UINT32 prob_req_oui; + A_UINT32 vdev_id; + /** Control Flags **/ + A_UINT32 flags; + /** ie bitmap to use in probe req **/ + A_UINT32 ie_bitmap[WMI_IE_BITMAP_SIZE]; + /** Number of vendor OUIs. In the TLV vendor_oui[] **/ + A_UINT32 num_vendor_oui; + /** pdev_id for identifying the MAC. See macros starting with WMI_PDEV_ID_ for values. In non-DBDC case host should set it to 0 */ + A_UINT32 pdev_id; + /* Following this tlv, there comes an array of structure of type wmi_vendor_oui + wmi_vendor_oui vendor_oui[];*/ } wmi_scan_prob_req_oui_cmd_fixed_param; + enum wmi_scan_event_type { - WMI_SCAN_EVENT_STARTED = 0x1, - WMI_SCAN_EVENT_COMPLETED = 0x2, - WMI_SCAN_EVENT_BSS_CHANNEL = 0x4, - WMI_SCAN_EVENT_FOREIGN_CHANNEL = 0x8, - WMI_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */ - WMI_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */ - WMI_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */ - WMI_SCAN_EVENT_RESTARTED = 0x80, /* scan restarted */ - WMI_SCAN_EVENT_FOREIGN_CHANNEL_EXIT = 0x100, - WMI_SCAN_EVENT_SUSPENDED = 0x200, /* scan request is suspended */ - WMI_SCAN_EVENT_RESUMED = 0x400, /* scan request is resumed */ - WMI_SCAN_EVENT_MAX = 0x8000 + WMI_SCAN_EVENT_STARTED = 0x1, + WMI_SCAN_EVENT_COMPLETED = 0x2, + WMI_SCAN_EVENT_BSS_CHANNEL = 0x4, + WMI_SCAN_EVENT_FOREIGN_CHANNEL = 0x8, + WMI_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */ + WMI_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */ + WMI_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */ + WMI_SCAN_EVENT_RESTARTED = 0x80, /* scan restarted */ + WMI_SCAN_EVENT_FOREIGN_CHANNEL_EXIT = 0x100, + WMI_SCAN_EVENT_SUSPENDED = 0x200, /* scan request is suspended */ + WMI_SCAN_EVENT_RESUMED = 0x400, /* scan request is resumed */ + WMI_SCAN_EVENT_MAX = 0x8000 }; enum wmi_scan_completion_reason { - /** scan related events */ - WMI_SCAN_REASON_NONE = 0xFF, - WMI_SCAN_REASON_COMPLETED = 0, - WMI_SCAN_REASON_CANCELLED = 1, - WMI_SCAN_REASON_PREEMPTED = 2, - WMI_SCAN_REASON_TIMEDOUT = 3, - WMI_SCAN_REASON_INTERNAL_FAILURE = 4, /* This reason indication failures when performaing scan */ - WMI_SCAN_REASON_SUSPENDED = 5, - WMI_SCAN_REASON_MAX, + /** scan related events */ + WMI_SCAN_REASON_NONE = 0xFF, + WMI_SCAN_REASON_COMPLETED = 0, + WMI_SCAN_REASON_CANCELLED = 1, + WMI_SCAN_REASON_PREEMPTED = 2, + WMI_SCAN_REASON_TIMEDOUT = 3, + WMI_SCAN_REASON_INTERNAL_FAILURE = 4, /* This reason indication failures when performaing scan */ + WMI_SCAN_REASON_SUSPENDED = 5, + WMI_SCAN_REASON_MAX, }; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_scan_event_fixed_param */ - /** scan event (wmi_scan_event_type) */ - A_UINT32 event; - /** status of the scan completion event */ - A_UINT32 reason; - /** channel freq , only valid for FOREIGN channel event*/ - A_UINT32 channel_freq; - /**id of the requestor whose scan is in progress */ - A_UINT32 requestor; - /**id of the scan that is in progress */ - A_UINT32 scan_id; - /**id of VDEV that requested the scan */ - A_UINT32 vdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_scan_event_fixed_param */ + /** scan event (wmi_scan_event_type) */ + A_UINT32 event; + /** status of the scan completion event */ + A_UINT32 reason; + /** channel freq , only valid for FOREIGN channel event*/ + A_UINT32 channel_freq; + /**id of the requestor whose scan is in progress */ + A_UINT32 requestor; + /**id of the scan that is in progress */ + A_UINT32 scan_id; + /**id of VDEV that requested the scan */ + A_UINT32 vdev_id; } wmi_scan_event_fixed_param; /* WMI Diag event */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag is WMITLV_TAG_STRUC_wmi_diag_event_fixed_param */ - A_UINT32 time_stamp; /* Reference timestamp. diag frame contains diff value */ - A_UINT32 count; /* Number of diag frames added to current event */ - A_UINT32 dropped; - /* followed by WMITLV_TAG_ARRAY_BYTE */ + A_UINT32 tlv_header; /* TLV tag and len; tag is WMITLV_TAG_STRUC_wmi_diag_event_fixed_param */ + A_UINT32 time_stamp; /* Reference timestamp. diag frame contains diff value */ + A_UINT32 count; /* Number of diag frames added to current event */ + A_UINT32 dropped; + /* followed by WMITLV_TAG_ARRAY_BYTE */ } wmi_diag_event_fixed_param; /* - * If FW has multiple active channels due to MCC(multi channel concurrency), - * then these stats are combined stats for all the active channels. - */ +* If FW has multiple active channels due to MCC(multi channel concurrency), +* then these stats are combined stats for all the active channels. +*/ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_update_whal_mib_stats_event_fixed_param */ - /** ack count, it is an incremental number, not accumulated number */ - A_UINT32 ackRcvBad; - /** bad rts count, it is an incremental number, not accumulated number */ - A_UINT32 rtsBad; - /** good rts, it is an incremental number, not accumulated number */ - A_UINT32 rtsGood; - /** fcs count, it is an incremental number, not accumulated number */ - A_UINT32 fcsBad; - /** beacon count, it is an incremental number, not accumulated number */ - A_UINT32 noBeacons; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_update_whal_mib_stats_event_fixed_param */ + /** ack count, it is an incremental number, not accumulated number */ + A_UINT32 ackRcvBad; + /** bad rts count, it is an incremental number, not accumulated number */ + A_UINT32 rtsBad; + /** good rts, it is an incremental number, not accumulated number */ + A_UINT32 rtsGood; + /** fcs count, it is an incremental number, not accumulated number */ + A_UINT32 fcsBad; + /** beacon count, it is an incremental number, not accumulated number */ + A_UINT32 noBeacons; } wmi_update_whal_mib_stats_event_fixed_param; /* @@ -3017,7 +2978,7 @@ typedef struct { * * This is in bytes. */ -#define WMI_MGMT_RX_HDR_HEADROOM sizeof(wmi_comb_phyerr_rx_hdr) + WMI_TLV_HDR_SIZE + sizeof(wmi_single_phyerr_rx_hdr) +#define WMI_MGMT_RX_HDR_HEADROOM (sizeof(wmi_comb_phyerr_rx_hdr) + WMI_TLV_HDR_SIZE + sizeof(wmi_single_phyerr_rx_hdr)) /** This event will be used for sending scan results * as well as rx mgmt frames to the host. The rx buffer @@ -3026,122 +2987,117 @@ typedef struct { * descriptor up to the host. */ /* ATH_MAX_ANTENNA value (4) can't be changed without breaking the compatibility */ -#define ATH_MAX_ANTENNA 4 /* To support beelinear, which is up to 4 chains */ +#define ATH_MAX_ANTENNA 4 /* To support beelinear, which is up to 4 chains */ /** flag indicating that the the mgmt frame (probe req/beacon) is received in the context of extscan performed by FW */ #define WMI_MGMT_RX_HDR_EXTSCAN 0x01 +/** flag indicating that the the mgmt frame (probe req/beacon) is received in the context of matched network by FW ENLO */ +#define WMI_MGMT_RX_HDR_ENLO 0x02 -/** - * flag indicating that the the mgmt frame (probe req/beacon) is received in - * the context of matched network by FW ENLO - */ -#define WMI_MGMT_RX_HDR_ENLO 0x02 typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mgmt_rx_hdr */ - /** channel on which this frame is received. */ - A_UINT32 channel; - /** snr information used to cal rssi */ - A_UINT32 snr; - /** Rate kbps */ - A_UINT32 rate; - /** rx phy mode WLAN_PHY_MODE */ - A_UINT32 phy_mode; - /** length of the frame */ - A_UINT32 buf_len; - /** rx status */ - A_UINT32 status; - /** RSSI of PRI 20MHz for each chain. */ - A_UINT32 rssi_ctl[ATH_MAX_ANTENNA]; - /** information about the management frame e.g. can give a scan source for a scan result mgmt frame */ - A_UINT32 flags; - /** combined RSSI, i.e. the sum of the snr + noise floor (dBm units) */ - A_INT32 rssi; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mgmt_rx_hdr */ + /** channel on which this frame is received. */ + A_UINT32 channel; + /** snr information used to cal rssi */ + A_UINT32 snr; + /** Rate kbps */ + A_UINT32 rate; + /** rx phy mode WLAN_PHY_MODE */ + A_UINT32 phy_mode; + /** length of the frame */ + A_UINT32 buf_len; + /** rx status */ + A_UINT32 status; + /** RSSI of PRI 20MHz for each chain. */ + A_UINT32 rssi_ctl[ATH_MAX_ANTENNA]; + /** information about the management frame e.g. can give a scan source for a scan result mgmt frame */ + A_UINT32 flags; + /** combined RSSI, i.e. the sum of the snr + noise floor (dBm units) */ + A_INT32 rssi; + /** delta between local TSF(TSF timestamp when frame was RXd) + * and remote TSF(TSF timestamp in the IE for mgmt frame - + * beacon,proberesp for e.g). If remote TSF is not available, + * delta set to 0. + * Although tsf_delta is stored as A_UINT32, it can be negative, + * and thus would need to be sign-extended if added to a value + * larger than 32 bits. + */ + A_UINT32 tsf_delta; - /** delta between local TSF(TSF timestamp when frame was RXd) - * and remote TSF(TSF timestamp in the IE for mgmt frame - * beacon,proberesp for e.g). If remote TSF is not available, - * delta set to 0. - * Although tsf_delta is stored as A_UINT32, it can be negative, - * and thus would need to be sign-extended if added to a value - * larger than 32 bits. - */ - A_UINT32 tsf_delta; - /* - * The lower 32 bits of the TSF (rx_tsf_l32) is copied by FW from - * TSF timestamp in the RX MAC descriptor provided by HW. - */ - A_UINT32 rx_tsf_l32; + /* The lower 32 bits of the TSF (rx_tsf_l32) is copied by FW from + * TSF timestamp in the RX MAC descriptor provided by HW. + */ + A_UINT32 rx_tsf_l32; - /* - *The Upper 32 bits (rx_tsf_u32) is filled by reading the TSF register - * after the packet is received. - */ - A_UINT32 rx_tsf_u32; - /* This TLV is followed by array of bytes: - * // management frame buffer - * A_UINT8 bufp[]; - */ + /* The Upper 32 bits (rx_tsf_u32) is filled by reading the TSF register + * after the packet is received. + */ + A_UINT32 rx_tsf_u32; + +/* This TLV is followed by array of bytes: + * A_UINT8 bufp[]; <-- management frame buffer + */ } wmi_mgmt_rx_hdr; typedef struct { - /** TSF timestamp */ - A_UINT32 tsf_timestamp; + /** TSF timestamp */ + A_UINT32 tsf_timestamp; - /** - * Current freq1, freq2 - * - * [7:0]: freq1[lo] - * [15:8] : freq1[hi] - * [23:16]: freq2[lo] - * [31:24]: freq2[hi] - */ - A_UINT32 freq_info_1; + /** + * Current freq1, freq2 + * + * [7:0]: freq1[lo] + * [15:8] : freq1[hi] + * [23:16]: freq2[lo] + * [31:24]: freq2[hi] + */ + A_UINT32 freq_info_1; - /** - * Combined RSSI over all chains and channel width for this PHY error - * - * [7:0]: RSSI combined - * [15:8]: Channel width (MHz) - * [23:16]: PHY error code - * [24:16]: reserved (future use) - */ - A_UINT32 freq_info_2; + /** + * Combined RSSI over all chains and channel width for this PHY error + * + * [7:0]: RSSI combined + * [15:8]: Channel width (MHz) + * [23:16]: PHY error code + * [24:16]: reserved (future use) + */ + A_UINT32 freq_info_2; - /** - * RSSI on chain 0 through 3 - * - * This is formatted the same as the PPDU_START RX descriptor - * field: - * - * [7:0]: pri20 - * [15:8]: sec20 - * [23:16]: sec40 - * [31:24]: sec80 - */ - A_UINT32 rssi_chain0; - A_UINT32 rssi_chain1; - A_UINT32 rssi_chain2; - A_UINT32 rssi_chain3; + /** + * RSSI on chain 0 through 3 + * + * This is formatted the same as the PPDU_START RX descriptor + * field: + * + * [7:0]: pri20 + * [15:8]: sec20 + * [23:16]: sec40 + * [31:24]: sec80 + */ + A_UINT32 rssi_chain0; + A_UINT32 rssi_chain1; + A_UINT32 rssi_chain2; + A_UINT32 rssi_chain3; - /** - * Last calibrated NF value for chain 0 through 3 - * - * nf_list_1: - * - * + [15:0] - chain 0 - * + [31:16] - chain 1 - * - * nf_list_2: - * - * + [15:0] - chain 2 - * + [31:16] - chain 3 - */ - A_UINT32 nf_list_1; - A_UINT32 nf_list_2; + /** + * Last calibrated NF value for chain 0 through 3 + * + * nf_list_1: + * + * + [15:0] - chain 0 + * + [31:16] - chain 1 + * + * nf_list_2: + * + * + [15:0] - chain 2 + * + [31:16] - chain 3 + */ + A_UINT32 nf_list_1; + A_UINT32 nf_list_2; - /** Length of the frame */ - A_UINT32 buf_len; + /** Length of the frame */ + A_UINT32 buf_len; } wmi_single_phyerr_rx_hdr; #define WMI_UNIFIED_FREQINFO_1_LO 0x000000ff @@ -3157,19 +3113,19 @@ typedef struct { * Please keep in mind that these _SET macros break macro side effect * assumptions; don't be clever with them. */ -#define WMI_UNIFIED_FREQ_INFO_GET(hdr, f) \ - (WMI_F_MS((hdr)->freq_info_1, \ - WMI_UNIFIED_FREQINFO_ ## f ## _LO) \ - | (WMI_F_MS((hdr)->freq_info_1, \ - WMI_UNIFIED_FREQINFO_ ## f ## _HI) << 8)) +#define WMI_UNIFIED_FREQ_INFO_GET(hdr, f) \ + (WMI_F_MS((hdr)->freq_info_1, \ + WMI_UNIFIED_FREQINFO_##f##_LO) \ + | (WMI_F_MS((hdr)->freq_info_1, \ + WMI_UNIFIED_FREQINFO_##f##_HI) << 8)) -#define WMI_UNIFIED_FREQ_INFO_SET(hdr, f, v) \ - do { \ - WMI_F_RMW((hdr)->freq_info_1, (v) & 0xff, \ - WMI_UNIFIED_FREQINFO_ ## f ## _LO); \ - WMI_F_RMW((hdr)->freq_info_1, ((v) >> 8) & 0xff, \ - WMI_UNIFIED_FREQINFO_ ## f ## _HI); \ - } while (0) +#define WMI_UNIFIED_FREQ_INFO_SET(hdr, f, v) \ + do { \ + WMI_F_RMW((hdr)->freq_info_1, (v) & 0xff, \ + WMI_UNIFIED_FREQINFO_##f##_LO); \ + WMI_F_RMW((hdr)->freq_info_1, ((v) >> 8) & 0xff, \ + WMI_UNIFIED_FREQINFO_##f##_HI); \ + } while (0) #define WMI_UNIFIED_FREQINFO_2_RSSI_COMB 0x000000ff #define WMI_UNIFIED_FREQINFO_2_RSSI_COMB_S 0 @@ -3178,27 +3134,27 @@ typedef struct { #define WMI_UNIFIED_FREQINFO_2_PHYERRCODE 0x00ff0000 #define WMI_UNIFIED_FREQINFO_2_PHYERRCODE_S 16 -#define WMI_UNIFIED_RSSI_COMB_GET(hdr) \ - ((int8_t) (WMI_F_MS((hdr)->freq_info_2, \ - WMI_UNIFIED_FREQINFO_2_RSSI_COMB))) +#define WMI_UNIFIED_RSSI_COMB_GET(hdr) \ + ((int8_t) (WMI_F_MS((hdr)->freq_info_2, \ + WMI_UNIFIED_FREQINFO_2_RSSI_COMB))) -#define WMI_UNIFIED_RSSI_COMB_SET(hdr, v) \ - WMI_F_RMW((hdr)->freq_info_2, (v) & 0xff, \ - WMI_UNIFIED_FREQINFO_2_RSSI_COMB); +#define WMI_UNIFIED_RSSI_COMB_SET(hdr, v) \ + WMI_F_RMW((hdr)->freq_info_2, (v) & 0xff, \ + WMI_UNIFIED_FREQINFO_2_RSSI_COMB); -#define WMI_UNIFIED_CHWIDTH_GET(hdr) \ - WMI_F_MS((hdr)->freq_info_2, WMI_UNIFIED_FREQINFO_2_CHWIDTH) +#define WMI_UNIFIED_CHWIDTH_GET(hdr) \ + WMI_F_MS((hdr)->freq_info_2, WMI_UNIFIED_FREQINFO_2_CHWIDTH) -#define WMI_UNIFIED_CHWIDTH_SET(hdr, v) \ - WMI_F_RMW((hdr)->freq_info_2, (v) & 0xff, \ - WMI_UNIFIED_FREQINFO_2_CHWIDTH); +#define WMI_UNIFIED_CHWIDTH_SET(hdr, v) \ + WMI_F_RMW((hdr)->freq_info_2, (v) & 0xff, \ + WMI_UNIFIED_FREQINFO_2_CHWIDTH); -#define WMI_UNIFIED_PHYERRCODE_GET(hdr) \ - WMI_F_MS((hdr)->freq_info_2, WMI_UNIFIED_FREQINFO_2_PHYERRCODE) +#define WMI_UNIFIED_PHYERRCODE_GET(hdr) \ + WMI_F_MS((hdr)->freq_info_2, WMI_UNIFIED_FREQINFO_2_PHYERRCODE) -#define WMI_UNIFIED_PHYERRCODE_SET(hdr, v) \ - WMI_F_RMW((hdr)->freq_info_2, (v) & 0xff, \ - WMI_UNIFIED_FREQINFO_2_PHYERRCODE); +#define WMI_UNIFIED_PHYERRCODE_SET(hdr, v) \ + WMI_F_RMW((hdr)->freq_info_2, (v) & 0xff, \ + WMI_UNIFIED_FREQINFO_2_PHYERRCODE); #define WMI_UNIFIED_CHAIN_0 0x0000ffff #define WMI_UNIFIED_CHAIN_0_S 0 @@ -3214,13 +3170,13 @@ typedef struct { #define WMI_UNIFIED_CHAIN_2_FIELD nf_list_2 #define WMI_UNIFIED_CHAIN_3_FIELD nf_list_2 -#define WMI_UNIFIED_NF_CHAIN_GET(hdr, c) \ - ((int16_t) (WMI_F_MS((hdr)->WMI_UNIFIED_CHAIN_ ## c ## _FIELD, \ - WMI_UNIFIED_CHAIN_ ## c))) +#define WMI_UNIFIED_NF_CHAIN_GET(hdr, c) \ + ((int16_t) (WMI_F_MS((hdr)->WMI_UNIFIED_CHAIN_##c##_FIELD, \ + WMI_UNIFIED_CHAIN_##c))) -#define WMI_UNIFIED_NF_CHAIN_SET(hdr, c, nf) \ - WMI_F_RMW((hdr)->WMI_UNIFIED_CHAIN_ ## c ## _FIELD, (nf) & 0xffff, \ - WMI_UNIFIED_CHAIN_ ## c); +#define WMI_UNIFIED_NF_CHAIN_SET(hdr, c, nf) \ + WMI_F_RMW((hdr)->WMI_UNIFIED_CHAIN_##c##_FIELD, (nf) & 0xffff, \ + WMI_UNIFIED_CHAIN_##c); /* * For now, this matches what the underlying hardware is doing. @@ -3238,256 +3194,202 @@ typedef struct { #define WMI_UNIFIED_RSSI_CHAN_SEC80 0xff000000 #define WMI_UNIFIED_RSSI_CHAN_SEC80_S 24 -#define WMI_UNIFIED_RSSI_CHAN_SET(hdr, c, ch, rssi) \ - WMI_F_RMW((hdr)->rssi_chain ## c, (rssi) & 0xff, \ - WMI_UNIFIED_RSSI_CHAN_ ## ch); +#define WMI_UNIFIED_RSSI_CHAN_SET(hdr, c, ch, rssi) \ + WMI_F_RMW((hdr)->rssi_chain##c, (rssi) & 0xff, \ + WMI_UNIFIED_RSSI_CHAN_##ch); -#define WMI_UNIFIED_RSSI_CHAN_GET(hdr, c, ch) \ - ((int8_t) (WMI_F_MS((hdr)->rssi_chain ## c, \ - WMI_UNIFIED_RSSI_CHAN_ ## ch))) +#define WMI_UNIFIED_RSSI_CHAN_GET(hdr, c, ch) \ + ((int8_t) (WMI_F_MS((hdr)->rssi_chain##c, \ + WMI_UNIFIED_RSSI_CHAN_##ch))) typedef struct { - /** Phy error event header */ - wmi_single_phyerr_rx_hdr hdr; - /** frame buffer */ - A_UINT8 bufp[1]; + /** Phy error event header */ + wmi_single_phyerr_rx_hdr hdr; + /** frame buffer */ + A_UINT8 bufp[1]; } wmi_single_phyerr_rx_event; /* PHY ERROR MASK 0 */ /* bits 1:0 defined but not published */ -#define WMI_PHY_ERROR_MASK0_RADAR (1<<2) +#define WMI_PHY_ERROR_MASK0_RADAR (1 << 2) /* bits 23:3 defined but not published */ -#define WMI_PHY_ERROR_MASK0_FALSE_RADAR_EXT (1<<24) +#define WMI_PHY_ERROR_MASK0_FALSE_RADAR_EXT (1 << 24) /* bits 25:24 defined but not published */ -#define WMI_PHY_ERROR_MASK0_SPECTRAL_SCAN (1<<26) +#define WMI_PHY_ERROR_MASK0_SPECTRAL_SCAN (1 << 26) /* bits 31:27 defined but not published */ -/* PHY ERROR MASK 1 - * bits 13:0 defined but not published - * bits 31:14 reserved - */ +/* PHY ERROR MASK 1 */ +/* bits 13:0 defined but not published */ +/* bits 31:14 reserved */ -/* PHY ERROR MASK 2 - * bits 31:0 reserved - */ +/* PHY ERROR MASK 2 */ +/* bits 31:0 reserved */ typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_comb_phyerr_rx_hdr - */ - A_UINT32 tlv_header; - /** Phy error phy error count */ - A_UINT32 num_phyerr_events; - A_UINT32 tsf_l32; - A_UINT32 tsf_u32; - A_UINT32 buf_len; - union { - /* OBSOLETE - will be removed once all refs are gone */ - A_UINT32 pmac_id; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - }; - A_UINT32 rsPhyErrMask0; /* see WMI_PHY_ERROR_MASK0 */ - A_UINT32 rsPhyErrMask1; /* see WMI_PHY_ERROR_MASK1 */ - A_UINT32 rsPhyErrMask2; /* see WMI_PHY_ERROR_MASK2 */ - - /* This TLV is followed by array of bytes: - * // frame buffer - contains multiple payloads in the order: - * // header - payload, header - payload... - * (The header is of type: wmi_single_phyerr_rx_hdr) - * A_UINT8 bufp[]; - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_comb_phyerr_rx_hdr */ + /** Phy error phy error count */ + A_UINT32 num_phyerr_events; + A_UINT32 tsf_l32; + A_UINT32 tsf_u32; + A_UINT32 buf_len; + union { + A_UINT32 pmac_id; /* OBSOLETE - will be removed once all refs are gone */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + }; + A_UINT32 rsPhyErrMask0; /* see WMI_PHY_ERROR_MASK0 */ + A_UINT32 rsPhyErrMask1; /* see WMI_PHY_ERROR_MASK1 */ + A_UINT32 rsPhyErrMask2; /* see WMI_PHY_ERROR_MASK2 */ +/* This TLV is followed by array of bytes: + * frame buffer - contains multiple payloads in the order: + * header - payload, header - payload... + * (The header is of type: wmi_single_phyerr_rx_hdr) + * A_UINT8 bufp[]; + */ } wmi_comb_phyerr_rx_hdr; /* WMI MGMT TX */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mgmt_tx_hdr */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /** xmit rate */ - A_UINT32 tx_rate; - /** xmit power */ - A_UINT32 tx_power; - /** Buffer length in bytes */ - A_UINT32 buf_len; - /* This TLV is followed by array of bytes: - * // management frame buffer - * A_UINT8 bufp[]; - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mgmt_tx_hdr */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** xmit rate */ + A_UINT32 tx_rate; + /** xmit power */ + A_UINT32 tx_power; + /** Buffer length in bytes */ + A_UINT32 buf_len; +/* This TLV is followed by array of bytes: + * A_UINT8 bufp[]; <-- management frame buffer + */ } wmi_mgmt_tx_hdr; typedef struct { - /* - * TLV tag and len; - * tag equals WMITLV_TAG_STRUC_wmi_mgmt_tx_send_cmd_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; - /* echoed in tx_compl_event */ - A_UINT32 desc_id; - /* MHz units */ - A_UINT32 chanfreq; - A_UINT32 paddr_lo; - A_UINT32 paddr_hi; - A_UINT32 frame_len; - /* Buffer length in bytes */ - A_UINT32 buf_len; - /* - * This TLV is followed by array of bytes: - * First 64 bytes of management frame - * A_UINT8 bufp[]; - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mgmt_tx_send_cmd_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 desc_id; /* echoed in tx_compl_event */ + A_UINT32 chanfreq; /* MHz units */ + A_UINT32 paddr_lo; + A_UINT32 paddr_hi; + A_UINT32 frame_len; + A_UINT32 buf_len; /** Buffer length in bytes */ +/* This TLV is followed by array of bytes: First 64 bytes of management frame + * A_UINT8 bufp[]; + */ } wmi_mgmt_tx_send_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_echo_event_fixed_param */ - A_UINT32 value; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_echo_event_fixed_param */ + A_UINT32 value; } wmi_echo_event_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_echo_cmd_fixed_param */ - A_UINT32 value; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_echo_cmd_fixed_param */ + A_UINT32 value; } wmi_echo_cmd_fixed_param; + typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_set_regdomain_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - /** reg domain code */ - A_UINT32 reg_domain; - A_UINT32 reg_domain_2G; - A_UINT32 reg_domain_5G; - A_UINT32 conformance_test_limit_2G; - A_UINT32 conformance_test_limit_5G; - A_UINT32 dfs_domain; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_regdomain_cmd_fixed_param */ + + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + /** reg domain code */ + A_UINT32 reg_domain; + A_UINT32 reg_domain_2G; + A_UINT32 reg_domain_5G; + A_UINT32 conformance_test_limit_2G; + A_UINT32 conformance_test_limit_5G; + A_UINT32 dfs_domain; } wmi_pdev_set_regdomain_cmd_fixed_param; typedef struct { - /** true for scan start and flase for scan end */ - A_UINT32 scan_start; + /** TRUE for scan start and flase for scan end */ + A_UINT32 scan_start; } wmi_pdev_scan_cmd; /* WMI support for setting ratemask in target */ typedef struct { - A_UINT32 tlv_header; - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_vdev_config_ratemask_fixed_param - */ - A_UINT32 vdev_id; - /* - * 0 - cck/ofdm - * 1 - HT - * 2 - VHT */ - A_UINT32 type; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_config_ratemask_fixed_param */ + A_UINT32 vdev_id; + /* 0 - cck/ofdm + * 1 - HT + * 2 - VHT */ + A_UINT32 type; - A_UINT32 mask_lower32; - A_UINT32 mask_higher32; + A_UINT32 mask_lower32; + A_UINT32 mask_higher32; } wmi_vdev_config_ratemask_cmd_fixed_param; /* nrp action - Filter Neighbor Rx Packets - add/remove filter */ enum { - WMI_FILTER_NRP_ACTION_ADD = 0x1, - WMI_FILTER_NRP_ACTION_REMOVE = 0x2, - WMI_FILTER_NRP_ACTION_GET_LIST = 0x3, + WMI_FILTER_NRP_ACTION_ADD = 0x1, + WMI_FILTER_NRP_ACTION_REMOVE = 0x2, + WMI_FILTER_NRP_ACTION_GET_LIST = 0x3, }; /* nrp - Neighbor Rx Packets */ /* nrp type - Filter Neighbor Rx Packets - ap/client addr */ enum { - WMI_FILTER_NRP_TYPE_AP_BSSID = 0x1, - WMI_FILTER_NRP_TYPE_STA_MACADDR = 0x2, + WMI_FILTER_NRP_TYPE_AP_BSSID = 0x1, + WMI_FILTER_NRP_TYPE_STA_MACADDR = 0x2, }; /* nrp flag - Filter Neighbor Rx Packets * (capture flag, 2 & 3 not initially supported) */ enum { - WMI_FILTER_NRP_CAPTURE_ONLY_RX_PACKETS = 0x1, - WMI_FILTER_NRP_CAPTURE_ONLY_TX_PACKETS = 0x2, - WMI_FILTER_NRP_CAPTURE_BOTH_TXRX_PACKETS = 0x3, + WMI_FILTER_NRP_CAPTURE_ONLY_RX_PACKETS = 0x1, + WMI_FILTER_NRP_CAPTURE_ONLY_TX_PACKETS = 0x2, + WMI_FILTER_NRP_CAPTURE_BOTH_TXRX_PACKETS = 0x3, }; -/* Filter for Neighbor Rx Packets */ typedef struct { - A_UINT32 tlv_header; - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_vdev_filter_nrp_config_cmd_fixed_param - */ - A_UINT32 vdev_id; - /* AP Bssid or Client Mac-addr */ - wmi_mac_addr addr; - /* Add/Remove NRF Filter */ - A_UINT32 action; /* WMI_FILTER_NRP_ACTION enum */ - /* client/ap filter */ - A_UINT32 type; /* WMI_FILTER_NRP_TYPE enum */ - /* optional - tx/rx capture */ - A_UINT32 flag; /* WMI_FILTER_NRP_CAPTURE enum */ - /* BSSID index - index of the BSSID register */ - A_UINT32 bssid_idx; -} wmi_vdev_filter_nrp_config_cmd_fixed_param; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_filter_nrp_config_cmd_fixed_param */ + A_UINT32 vdev_id; + /* AP Bssid or Client Mac-addr */ + wmi_mac_addr addr; + /* Add/Remove NRF Filter */ + A_UINT32 action; /* WMI_FILTER_NRP_ACTION enum */ + /* client/ap filter */ + A_UINT32 type; /* WMI_FILTER_NRP_TYPE enum */ + /* optional - tx/rx capture */ + A_UINT32 flag; /* WMI_FILTER_NRP_CAPTURE enum */ + /* BSSID index - index of the BSSID register */ + A_UINT32 bssid_idx; +} wmi_vdev_filter_nrp_config_cmd_fixed_param; /* Filter for Neighbor Rx Packets */ + /*Command to set/unset chip in quiet mode*/ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_set_quiet_cmd_fixed_param - */ - A_UINT32 tlv_header; - /* - * pdev_id for identifying the MAC, See macros - * starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - A_UINT32 period; /*period in TUs */ - A_UINT32 duration; /*duration in TUs */ - A_UINT32 next_start; /*offset in TUs */ - A_UINT32 enabled; /*enable/disable */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_quiet_cmd_fixed_param */ + A_UINT32 pdev_id; /** pdev_id for identifying the MAC, See macros starting with WMI_PDEV_ID_ for values. */ + A_UINT32 period; /*period in TUs*/ + A_UINT32 duration; /*duration in TUs*/ + A_UINT32 next_start; /*offset in TUs*/ + A_UINT32 enabled; /*enable/disable*/ } wmi_pdev_set_quiet_cmd_fixed_param; typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_vdev_set_quiet_cmd_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; /* Virtual interface ID */ - A_UINT32 period; /* period in TUs */ - A_UINT32 duration; /* duration in TUs */ - A_UINT32 next_start; /* offset in TUs */ - A_UINT32 enabled; /* enable/disable */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_set_quiet_cmd_fixed_param */ + A_UINT32 vdev_id; /* Virtual interface ID */ + A_UINT32 period; /* period in TUs */ + A_UINT32 duration; /* duration in TUs */ + A_UINT32 next_start; /* offset in TUs */ + A_UINT32 enabled; /* enable/disable */ } wmi_vdev_set_quiet_cmd_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_vdev_set_custom_aggr_size_cmd_fixed_param - */ - A_UINT32 tlv_header; - /* - * vdev id indicating to which the vdev custom aggregation size - * will be applied. - */ - A_UINT32 vdev_id; - /* - * Size for tx aggregation (max MPDUs per A-MPDU) for the vdev - * mentioned in vdev id - */ - A_UINT32 tx_aggr_size; - /* - * Size for rx aggregation (block ack window size limit) for - * the vdev mentioned in vdev id - */ - A_UINT32 rx_aggr_size; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_set_custom_aggr_size_cmd_fixed_param */ + A_UINT32 vdev_id; /* vdev id indicating to which the vdev custom aggregation size will be applied. */ + A_UINT32 tx_aggr_size; /* Size for tx aggregation (max MPDUs per A-MPDU) for the vdev mentioned in vdev id */ + A_UINT32 rx_aggr_size; /* Size for rx aggregation (block ack window size limit) for the vdev mentioned in vdev id*/ } wmi_vdev_set_custom_aggr_size_cmd_fixed_param; /* @@ -3498,57 +3400,48 @@ typedef struct { * chains. */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_green_ap_ps_enable_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - A_UINT32 enable; /*1:enable, 0:disable */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_green_ap_ps_enable_cmd_fixed_param */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + A_UINT32 enable; /*1:enable, 0:disable*/ } wmi_pdev_green_ap_ps_enable_cmd_fixed_param; + #define MAX_HT_IE_LEN 32 /* DEPRECATED */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_ht_ie_cmd_fixed_param */ - A_UINT32 reserved0; - /** placeholder for pdev_id of future multiple MAC products. Init. to 0. */ - A_UINT32 ie_len; /*length of the ht ie in the TLV ie_data[] */ - A_UINT32 tx_streams; /* Tx streams supported for this HT IE */ - A_UINT32 rx_streams; /* Rx streams supported for this HT IE */ - /** The TLV for the HT IE follows: - * A_UINT32 ie_data[]; - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_ht_ie_cmd_fixed_param */ + A_UINT32 reserved0; /** placeholder for pdev_id of future multiple MAC products. Init. to 0. */ + A_UINT32 ie_len; /*length of the ht ie in the TLV ie_data[] */ + A_UINT32 tx_streams; /* Tx streams supported for this HT IE */ + A_UINT32 rx_streams; /* Rx streams supported for this HT IE */ +/** The TLV for the HT IE follows: + * A_UINT32 ie_data[]; + */ } wmi_pdev_set_ht_ie_cmd_fixed_param; #define MAX_VHT_IE_LEN 32 /* DEPRECATED */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_vht_ie_cmd_fixed_param */ - A_UINT32 reserved0; - /** placeholder for pdev_id of future multiple MAC products. Init. to 0. */ - A_UINT32 ie_len; /*length of the vht ie in the TLV ie_data[] */ - A_UINT32 tx_streams; /* Tx streams supported for this HT IE */ - A_UINT32 rx_streams; /* Rx streams supported for this HT IE */ - /** The TLV for the VHT IE follows: - * A_UINT32 ie_data[]; - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_vht_ie_cmd_fixed_param */ + A_UINT32 reserved0; /** placeholder for pdev_id of future multiple MAC products. Init. to 0. */ + A_UINT32 ie_len; /*length of the vht ie in the TLV ie_data[] */ + A_UINT32 tx_streams; /* Tx streams supported for this HT IE */ + A_UINT32 rx_streams; /* Rx streams supported for this HT IE */ +/** The TLV for the VHT IE follows: + * A_UINT32 ie_data[]; + */ } wmi_pdev_set_vht_ie_cmd_fixed_param; typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_set_base_macaddr_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - wmi_mac_addr base_macaddr; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_base_macaddr_cmd_fixed_param */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + wmi_mac_addr base_macaddr; } wmi_pdev_set_base_macaddr_cmd_fixed_param; /* @@ -3557,26 +3450,26 @@ typedef struct { * by the firmware. */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_spectral_configure_cmd_fixed_param */ - A_UINT32 vdev_id; - A_UINT32 spectral_scan_count; - A_UINT32 spectral_scan_period; - A_UINT32 spectral_scan_priority; - A_UINT32 spectral_scan_fft_size; - A_UINT32 spectral_scan_gc_ena; - A_UINT32 spectral_scan_restart_ena; - A_UINT32 spectral_scan_noise_floor_ref; - A_UINT32 spectral_scan_init_delay; - A_UINT32 spectral_scan_nb_tone_thr; - A_UINT32 spectral_scan_str_bin_thr; - A_UINT32 spectral_scan_wb_rpt_mode; - A_UINT32 spectral_scan_rssi_rpt_mode; - A_UINT32 spectral_scan_rssi_thr; - A_UINT32 spectral_scan_pwr_format; - A_UINT32 spectral_scan_rpt_mode; - A_UINT32 spectral_scan_bin_scale; - A_UINT32 spectral_scan_dBm_adj; - A_UINT32 spectral_scan_chn_mask; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_spectral_configure_cmd_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 spectral_scan_count; + A_UINT32 spectral_scan_period; + A_UINT32 spectral_scan_priority; + A_UINT32 spectral_scan_fft_size; + A_UINT32 spectral_scan_gc_ena; + A_UINT32 spectral_scan_restart_ena; + A_UINT32 spectral_scan_noise_floor_ref; + A_UINT32 spectral_scan_init_delay; + A_UINT32 spectral_scan_nb_tone_thr; + A_UINT32 spectral_scan_str_bin_thr; + A_UINT32 spectral_scan_wb_rpt_mode; + A_UINT32 spectral_scan_rssi_rpt_mode; + A_UINT32 spectral_scan_rssi_thr; + A_UINT32 spectral_scan_pwr_format; + A_UINT32 spectral_scan_rpt_mode; + A_UINT32 spectral_scan_bin_scale; + A_UINT32 spectral_scan_dBm_adj; + A_UINT32 spectral_scan_chn_mask; } wmi_vdev_spectral_configure_cmd_fixed_param; /* @@ -3586,26 +3479,18 @@ typedef struct { * and multiple STA (eg p2p, tdls, multi-band STA) is possible. */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_spectral_enable_cmd_fixed_param */ - A_UINT32 vdev_id; - /* 0 - ignore; 1 - trigger, 2 - clear trigger */ - A_UINT32 trigger_cmd; - /* 0 - ignore; 1 - enable, 2 - disable */ - A_UINT32 enable_cmd; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_spectral_enable_cmd_fixed_param */ + A_UINT32 vdev_id; + /* 0 - ignore; 1 - trigger, 2 - clear trigger */ + A_UINT32 trigger_cmd; + /* 0 - ignore; 1 - enable, 2 - disable */ + A_UINT32 enable_cmd; } wmi_vdev_spectral_enable_cmd_fixed_param; -/* information sub element id for QSBW, expected value is 0x02 */ -#define WMI_CSA_EVENT_QSBW_ISE_ID_MASK 0x000000FF -/* length of QSBW ISE data, expected value is 0x02 */ -#define WMI_CSA_EVENT_QSBW_ISE_LEN_MASK 0x0000FF00 -/* capabilities, 0x01 for 5MHz, 0x02 for 10MHz, 0x01|0x2 for both - * (see WMI_CSA_EVENT_QSBW_ISE bitmask defs) - */ -#define WMI_CSA_EVENT_QSBW_ISE_CAP_MASK 0x00FF0000 -/* notification from AP, 0x01 for 5MHz, 0x02 for 10MHz - * (see WMI_CSA_EVENT_QSBW_ISE bitmask defs) - */ -#define WMI_CSA_EVENT_QSBW_ISE_NOTIF_MASK 0xFF000000 +#define WMI_CSA_EVENT_QSBW_ISE_ID_MASK 0x000000FF /* information sub element id for QSBW, expected value is 0x02 */ +#define WMI_CSA_EVENT_QSBW_ISE_LEN_MASK 0x0000FF00 /* length of QSBW ISE data, expected value is 0x02 */ +#define WMI_CSA_EVENT_QSBW_ISE_CAP_MASK 0x00FF0000 /* capabilities, 0x01 for 5MHz, 0x02 for 10MHz, 0x01|0x2 for both (see WMI_CSA_EVENT_QSBW_ISE bitmask defs) */ +#define WMI_CSA_EVENT_QSBW_ISE_NOTIF_MASK 0xFF000000 /* notification from AP, 0x01 for 5MHz, 0x02 for 10MHz (see WMI_CSA_EVENT_QSBW_ISE bitmask defs) */ #define WMI_CSA_EVENT_QSBW_ISE_ID 0x02 #define WMI_CSA_EVENT_QSBW_ISE_LEN 0x02 @@ -3614,608 +3499,528 @@ typedef struct { #define WMI_CSA_EVENT_QSBW_ISE_10M_BITMASK 0x02 #define WMI_CSA_EVENT_QSBW_ISE_CAP_5M(qsbw_ise) \ - (((qsbw_ise) >> 16) & WMI_CSA_EVENT_QSBW_ISE_5M_BITMASK) + (((qsbw_ise) >> 16) & WMI_CSA_EVENT_QSBW_ISE_5M_BITMASK) #define WMI_CSA_EVENT_QSBW_ISE_CAP_10M(qsbw_ise) \ - (((qsbw_ise) >> 16) & WMI_CSA_EVENT_QSBW_ISE_10M_BITMASK) + (((qsbw_ise) >> 16) & WMI_CSA_EVENT_QSBW_ISE_10M_BITMASK) #define WMI_CSA_EVENT_QSBW_ISE_NOTIF_5M(qsbw_ise) \ - (((qsbw_ise) >> 24) & WMI_CSA_EVENT_QSBW_ISE_5M_BITMASK) + (((qsbw_ise) >> 24) & WMI_CSA_EVENT_QSBW_ISE_5M_BITMASK) #define WMI_CSA_EVENT_QSBW_ISE_NOTIF_10M(qsbw_ise) \ - (((qsbw_ise) >> 24) & WMI_CSA_EVENT_QSBW_ISE_10M_BITMASK) + (((qsbw_ise) >> 24) & WMI_CSA_EVENT_QSBW_ISE_10M_BITMASK) typedef enum { - WMI_CSA_IE_PRESENT = 0x00000001, - WMI_XCSA_IE_PRESENT = 0x00000002, - WMI_WBW_IE_PRESENT = 0x00000004, - WMI_CSWARP_IE_PRESENT = 0x00000008, - WMI_QSBW_ISE_PRESENT = 0x00000010, + WMI_CSA_IE_PRESENT = 0x00000001, + WMI_XCSA_IE_PRESENT = 0x00000002, + WMI_WBW_IE_PRESENT = 0x00000004, + WMI_CSWARP_IE_PRESENT = 0x00000008, + WMI_QSBW_ISE_PRESENT = 0x00000010, } WMI_CSA_EVENT_IES_PRESENT_FLAG; /* wmi CSA receive event from beacon frame */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_csa_event_fixed_param */ - A_UINT32 i_fc_dur; -/* Bit 0-15: FC */ -/* Bit 16-31: DUR */ - wmi_mac_addr i_addr1; - wmi_mac_addr i_addr2; - /* NOTE: size of array of csa_ie[], xcsa_ie[], and wb_ie[] cannot be - * changed in the future without breaking WMI compatibility */ - A_UINT32 csa_ie[2]; - A_UINT32 xcsa_ie[2]; - A_UINT32 wb_ie[2]; - A_UINT32 cswarp_ie; - A_UINT32 ies_present_flag; /* WMI_CSA_EVENT_IES_PRESENT_FLAG */ - A_UINT32 qsbw_ise; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_csa_event_fixed_param */ + A_UINT32 i_fc_dur; /* Bit 0-15: FC, Bit 16-31: DUR */ + wmi_mac_addr i_addr1; + wmi_mac_addr i_addr2; + /* NOTE: size of array of csa_ie[], xcsa_ie[], and wb_ie[] cannot be + * changed in the future without breaking WMI compatibility */ + A_UINT32 csa_ie[2]; + A_UINT32 xcsa_ie[2]; + A_UINT32 wb_ie[2]; + A_UINT32 cswarp_ie; + A_UINT32 ies_present_flag; /* WMI_CSA_EVENT_IES_PRESENT_FLAG */ + A_UINT32 qsbw_ise; } wmi_csa_event_fixed_param; typedef enum { - WAL_PEER_MCAST2UCAST_DISABLED = 0, - /* Drop the frames if match is not found */ - WAL_PEER_MCAST2UCAST_DROP_EMPTY = 1, - /* Send as mcast if match is not found */ - WAL_PEER_MCAST2UCAST_MCAST_EMPTY = 2, + WAL_PEER_MCAST2UCAST_DISABLED = 0, + WAL_PEER_MCAST2UCAST_DROP_EMPTY = 1, /* Drop the frames if match is not found */ + WAL_PEER_MCAST2UCAST_MCAST_EMPTY = 2, /* Send as mcast if match is not found */ } WMI_PEER_MCAST2UCAST_MODE; typedef enum { - /** TX chain mask */ - WMI_PDEV_PARAM_TX_CHAIN_MASK = 0x1, - /** RX chain mask */ - WMI_PDEV_PARAM_RX_CHAIN_MASK, - /** TX power limit for 2G Radio */ - WMI_PDEV_PARAM_TXPOWER_LIMIT2G, - /** TX power limit for 5G Radio */ - WMI_PDEV_PARAM_TXPOWER_LIMIT5G, - /** TX power scale */ - WMI_PDEV_PARAM_TXPOWER_SCALE, - /** Beacon generation mode . 0: host, 1: target */ - WMI_PDEV_PARAM_BEACON_GEN_MODE, - /** Beacon generation mode . 0: staggered 1: bursted */ - WMI_PDEV_PARAM_BEACON_TX_MODE, - /** Resource manager off chan mode . - * 0: turn off off chan mode. 1: turn on offchan mode - */ - WMI_PDEV_PARAM_RESMGR_OFFCHAN_MODE, - /** Protection mode 0: no protection 1:use CTS-to-self 2: use RTS/CTS */ - WMI_PDEV_PARAM_PROTECTION_MODE, - /** Dynamic bandwidth 0: disable 1: enable */ - WMI_PDEV_PARAM_DYNAMIC_BW, - /** Non aggregrate/ 11g sw retry threshold.0-disable */ - WMI_PDEV_PARAM_NON_AGG_SW_RETRY_TH, - /** aggregrate sw retry threshold. 0-disable*/ - WMI_PDEV_PARAM_AGG_SW_RETRY_TH, - /** Station kickout threshold (non of consecutive failures).0-disable */ - WMI_PDEV_PARAM_STA_KICKOUT_TH, - /** Aggerate size scaling configuration per AC */ - WMI_PDEV_PARAM_AC_AGGRSIZE_SCALING, - /** LTR enable */ - WMI_PDEV_PARAM_LTR_ENABLE, - /** LTR latency for BE, in us */ - WMI_PDEV_PARAM_LTR_AC_LATENCY_BE, - /** LTR latency for BK, in us */ - WMI_PDEV_PARAM_LTR_AC_LATENCY_BK, - /** LTR latency for VI, in us */ - WMI_PDEV_PARAM_LTR_AC_LATENCY_VI, - /** LTR latency for VO, in us */ - WMI_PDEV_PARAM_LTR_AC_LATENCY_VO, - /** LTR AC latency timeout, in ms */ - WMI_PDEV_PARAM_LTR_AC_LATENCY_TIMEOUT, - /** LTR platform latency override, in us */ - WMI_PDEV_PARAM_LTR_SLEEP_OVERRIDE, - /** LTR-M override, in us */ - WMI_PDEV_PARAM_LTR_RX_OVERRIDE, - /** Tx activity timeout for LTR, in us */ - WMI_PDEV_PARAM_LTR_TX_ACTIVITY_TIMEOUT, - /** L1SS state machine enable */ - WMI_PDEV_PARAM_L1SS_ENABLE, - /** Deep sleep state machine enable */ - WMI_PDEV_PARAM_DSLEEP_ENABLE, - /** RX buffering flush enable */ - WMI_PDEV_PARAM_PCIELP_TXBUF_FLUSH, - /** RX buffering matermark */ - WMI_PDEV_PARAM_PCIELP_TXBUF_WATERMARK, - /** RX buffering timeout enable */ - WMI_PDEV_PARAM_PCIELP_TXBUF_TMO_EN, - /** RX buffering timeout value */ - WMI_PDEV_PARAM_PCIELP_TXBUF_TMO_VALUE, - /** pdev level stats update period in ms */ - WMI_PDEV_PARAM_PDEV_STATS_UPDATE_PERIOD, - /** vdev level stats update period in ms */ - WMI_PDEV_PARAM_VDEV_STATS_UPDATE_PERIOD, - /** peer level stats update period in ms */ - WMI_PDEV_PARAM_PEER_STATS_UPDATE_PERIOD, - /** beacon filter status update period */ - WMI_PDEV_PARAM_BCNFLT_STATS_UPDATE_PERIOD, - /** QOS Mgmt frame protection MFP/PMF 0: disable, 1: enable */ - WMI_PDEV_PARAM_PMF_QOS, - /** Access category on which ARP frames are sent */ - WMI_PDEV_PARAM_ARP_AC_OVERRIDE, - /** DCS configuration */ - WMI_PDEV_PARAM_DCS, - /** Enable/Disable ANI on target */ - WMI_PDEV_PARAM_ANI_ENABLE, - /** configure the ANI polling period */ - WMI_PDEV_PARAM_ANI_POLL_PERIOD, - /** configure the ANI listening period */ - WMI_PDEV_PARAM_ANI_LISTEN_PERIOD, - /** configure OFDM immunity level */ - WMI_PDEV_PARAM_ANI_OFDM_LEVEL, - /** configure CCK immunity level */ - WMI_PDEV_PARAM_ANI_CCK_LEVEL, - /** Enable/Disable CDD for 1x1 STAs in rate control module */ - WMI_PDEV_PARAM_DYNTXCHAIN, - /** Enable/Disable proxy STA */ - WMI_PDEV_PARAM_PROXY_STA, - /** Enable/Disable low power state when all VDEVs are inactive/idle. */ - WMI_PDEV_PARAM_IDLE_PS_CONFIG, - /** Enable/Disable power gating sleep */ - WMI_PDEV_PARAM_POWER_GATING_SLEEP, - /** Enable/Disable Rfkill */ - WMI_PDEV_PARAM_RFKILL_ENABLE, - /** Set Bursting DUR */ - WMI_PDEV_PARAM_BURST_DUR, - /** Set Bursting ENABLE */ - WMI_PDEV_PARAM_BURST_ENABLE, - /** HW rfkill config */ - WMI_PDEV_PARAM_HW_RFKILL_CONFIG, - /** Enable radio low power features */ - WMI_PDEV_PARAM_LOW_POWER_RF_ENABLE, - /** L1SS entry and residency time track */ - WMI_PDEV_PARAM_L1SS_TRACK, - /** set hyst at runtime, requirement from SS */ - WMI_PDEV_PARAM_HYST_EN, - /** Enable/ Disable POWER COLLAPSE */ - WMI_PDEV_PARAM_POWER_COLLAPSE_ENABLE, - /** configure LED system state */ - WMI_PDEV_PARAM_LED_SYS_STATE, - /** Enable/Disable LED */ - WMI_PDEV_PARAM_LED_ENABLE, - /** set DIRECT AUDIO time latency */ - WMI_PDEV_PARAM_AUDIO_OVER_WLAN_LATENCY, /* DEPRECATED */ - /** set DIRECT AUDIO Feature ENABLE */ - WMI_PDEV_PARAM_AUDIO_OVER_WLAN_ENABLE, /* DEPRECATED */ - /** pdev level whal mib stats update enable */ - WMI_PDEV_PARAM_WHAL_MIB_STATS_UPDATE_ENABLE, - /** ht/vht info based on vdev */ - WMI_PDEV_PARAM_VDEV_RATE_STATS_UPDATE_PERIOD, - /** Set CTS channel BW for dynamic BW adjustment feature */ - WMI_PDEV_PARAM_CTS_CBW, - /** Set GPIO pin info used by WNTS */ - WMI_PDEV_PARAM_WNTS_CONFIG, - /** Enable/Disable hardware adaptive early rx feature */ - WMI_PDEV_PARAM_ADAPTIVE_EARLY_RX_ENABLE, - /** The minimum early rx duration, to ensure early rx duration is non-zero */ - WMI_PDEV_PARAM_ADAPTIVE_EARLY_RX_MIN_SLEEP_SLOP, - /** Increasing/decreasing step used by hardware */ - WMI_PDEV_PARAM_ADAPTIVE_EARLY_RX_INC_DEC_STEP, - /** The fixed early rx duration when adaptive early rx is disabled */ - WMI_PDEV_PARAM_EARLY_RX_FIX_SLEEP_SLOP, - /** Enable/Disable bmiss based adaptive beacon timeout feature */ - WMI_PDEV_PARAM_BMISS_BASED_ADAPTIVE_BTO_ENABLE, - /* - * The minimum beacon timeout duration, to ensure beacon timeout - * duration is non-zero - */ - WMI_PDEV_PARAM_BMISS_BTO_MIN_BCN_TIMEOUT, - /** Increasing/decreasing step used by hardware */ - WMI_PDEV_PARAM_BMISS_BTO_INC_DEC_STEP, - /* - * The fixed beacon timeout duration when bmiss based adaptive beacon - * timeout is disabled - */ - WMI_PDEV_PARAM_BTO_FIX_BCN_TIMEOUT, - /* - * Enable/Disable Congestion Estimator based adaptive beacon - * timeout feature */ - WMI_PDEV_PARAM_CE_BASED_ADAPTIVE_BTO_ENABLE, - /* - * combo value of ce_id, ce_threshold, ce_time, refer - * to WMI_CE_BTO_CE_ID_MASK - */ - WMI_PDEV_PARAM_CE_BTO_COMBO_CE_VALUE, - /** 2G TX chain mask */ - WMI_PDEV_PARAM_TX_CHAIN_MASK_2G, - /** 2G RX chain mask */ - WMI_PDEV_PARAM_RX_CHAIN_MASK_2G, - /** 5G TX chain mask */ - WMI_PDEV_PARAM_TX_CHAIN_MASK_5G, - /** 5G RX chain mask */ - WMI_PDEV_PARAM_RX_CHAIN_MASK_5G, - /* Set tx chain mask for CCK rates */ - WMI_PDEV_PARAM_TX_CHAIN_MASK_CCK, - /* Set tx chain mask for 1SS stream */ - WMI_PDEV_PARAM_TX_CHAIN_MASK_1SS, - /* Enable/Disable CTS2Self for P2P GO when Non-P2P Client is connected*/ - WMI_PDEV_PARAM_CTS2SELF_FOR_P2P_GO_CONFIG, - /* TX power backoff in dB: tx power -= param value - * Host passes values(DB) to Halphy, Halphy reduces the power table by - * the values. Safety check will happen in Halphy - */ - WMI_PDEV_PARAM_TXPOWER_DECR_DB, - /** enable and disable aggregate burst along with duration */ - WMI_PDEV_PARAM_AGGR_BURST, - /** Set the global RX decap mode */ - WMI_PDEV_PARAM_RX_DECAP_MODE, - /** Enable/Disable Fast channel reset */ - WMI_PDEV_PARAM_FAST_CHANNEL_RESET, - /** Default antenna for Smart antenna */ - WMI_PDEV_PARAM_SMART_ANTENNA_DEFAULT_ANTENNA, - /** Set the user-specified antenna gain */ - WMI_PDEV_PARAM_ANTENNA_GAIN, - /** Set the user-specified RX filter */ - WMI_PDEV_PARAM_RX_FILTER, - /* - * configure the user-specified MCAST tid for managed mcast feature - * 0-15 is the valid range. 0xff will clear the tid setting - */ - WMI_PDEV_SET_MCAST_TO_UCAST_TID, - /** Enable/Disable Proxy sta mode */ - WMI_PDEV_PARAM_PROXY_STA_MODE, - /* - * configure the mcast2ucast mode for the pdev->peer_mcast. - * See WMI_PEER_MCAST2UCAST_MODE for possible values - */ - WMI_PDEV_PARAM_SET_MCAST2UCAST_MODE, - /** Sets the Mcast buffers for cloning, to support Mcast enhancement */ - WMI_PDEV_PARAM_SET_MCAST2UCAST_BUFFER, - /** Remove the Mcast buffers added by host */ - WMI_PDEV_PARAM_REMOVE_MCAST2UCAST_BUFFER, - /** En/disable station power save state indication */ - WMI_PDEV_PEER_STA_PS_STATECHG_ENABLE, - /** Access category on which ARP frames are sent */ - WMI_PDEV_PARAM_IGMPMLD_AC_OVERRIDE, - /** allow or disallow interbss frame forwarding */ - WMI_PDEV_PARAM_BLOCK_INTERBSS, - /** Enable/Disable reset */ - WMI_PDEV_PARAM_SET_DISABLE_RESET_CMDID, - /** Enable/Disable/Set MSDU_TTL in milliseconds. */ - WMI_PDEV_PARAM_SET_MSDU_TTL_CMDID, - /** Set global PPDU duration limit (usec). */ - WMI_PDEV_PARAM_SET_PPDU_DURATION_CMDID, - /** set txbf sounding period of vap in milliseconds */ - WMI_PDEV_PARAM_TXBF_SOUND_PERIOD_CMDID, - /** Set promiscuous mode */ - WMI_PDEV_PARAM_SET_PROMISC_MODE_CMDID, - /** Set burst mode */ - WMI_PDEV_PARAM_SET_BURST_MODE_CMDID, - /** enable enhanced stats */ - WMI_PDEV_PARAM_EN_STATS, - /** Set mu-grouping policy */ - WMI_PDEV_PARAM_MU_GROUP_POLICY, - /** Channel Hopping Enable */ - WMI_PDEV_PARAM_NOISE_DETECTION, - /** Set Channel Hopping NF threshold in dBm */ - WMI_PDEV_PARAM_NOISE_THRESHOLD, - /** Set PAPRD policy */ - WMI_PDEV_PARAM_DPD_ENABLE, - /** Enable/disable mcast/bcast echo, used by ProxySTA */ - WMI_PDEV_PARAM_SET_MCAST_BCAST_ECHO, - /** ATF enable/disable strict schedule */ - WMI_PDEV_PARAM_ATF_STRICT_SCH, - /** ATF set access category duration, B0-B29 duration, B30-B31: AC */ - WMI_PDEV_PARAM_ATF_SCHED_DURATION, - /** Default antenna polarization */ - WMI_PDEV_PARAM_ANT_PLZN, - /** Set mgmt retry limit */ - WMI_PDEV_PARAM_MGMT_RETRY_LIMIT, - /** Set CCA sensitivity level in dBm */ - WMI_PDEV_PARAM_SENSITIVITY_LEVEL, - /** Set 2G positive and negative Tx power in 0.5dBm units */ - WMI_PDEV_PARAM_SIGNED_TXPOWER_2G, - /** Set 5G positive and negative Tx power in 0.5dBm units */ - WMI_PDEV_PARAM_SIGNED_TXPOWER_5G, - /** Enable/disble AMSDU for tids */ - WMI_PDEV_PARAM_ENABLE_PER_TID_AMSDU, - /** Enable/disable AMPDU for tids */ - WMI_PDEV_PARAM_ENABLE_PER_TID_AMPDU, - /** Set CCA threshold in dBm */ - WMI_PDEV_PARAM_CCA_THRESHOLD, - /** RTS Fixed rate setting */ - WMI_PDEV_PARAM_RTS_FIXED_RATE, - /** Pdev reset */ - WMI_PDEV_PARAM_PDEV_RESET, - /** wapi mbssid offset **/ - WMI_PDEV_PARAM_WAPI_MBSSID_OFFSET, - /** ARP DEBUG source address*/ - WMI_PDEV_PARAM_ARP_DBG_SRCADDR, - /** ARP DEBUG destination address*/ - WMI_PDEV_PARAM_ARP_DBG_DSTADDR, - /** ATF enable/disable obss noise scheduling */ - WMI_PDEV_PARAM_ATF_OBSS_NOISE_SCH, - /** ATF obss noise scaling factor */ - WMI_PDEV_PARAM_ATF_OBSS_NOISE_SCALING_FACTOR, - /** - * TX power reduction scaling exponent - final tx power is the - * nominal tx power (A_MIN(reg_pow,ctl,etc..)) divided by - * 2^(scale exponent). For example: - * If this scale exponent is 0, the power is unchanged (divided by 2^0) - * If this factor is 1, the power is scaled down by 2^1, i.e. 3 dB - * If this factor is 2, the power is scaled down by 2^2, i.e. 6 dB - * If this factor is 3, the power is scaled down by 2^3, i.e. 9 dB - */ - WMI_PDEV_PARAM_CUST_TXPOWER_SCALE, - /** ATF enabe/disabe dynamically */ - WMI_PDEV_PARAM_ATF_DYNAMIC_ENABLE, - /** Set tx retry limit for control frames. 0 = disable, 31 = max */ - WMI_PDEV_PARAM_CTRL_RETRY_LIMIT, - /** Set propagation delay for 2G / 5G band. - * The propagation delay is fundamentally a per-peer property, but - * the target may not support per-peer settings for ack timeouts. - * This pdev parameter allows the MAC-level ack timeout to be set to - * a value suitable for the worst-case propagation delay of any peer - * within that pdev. - * Units are microseconds. - */ - WMI_PDEV_PARAM_PROPAGATION_DELAY, - /** - * Host can enable/disable ANT DIV feature - * if it's been enabled in BDF - */ - WMI_PDEV_PARAM_ENA_ANT_DIV, - /** Host can force one chain to select a specific ANT */ - WMI_PDEV_PARAM_FORCE_CHAIN_ANT, - /** - * Start a cycle ANT self test periodically. - * In the test, the FW would select each ANT pair - * one by one, the cycle time could be configured - * via WMI_PDEV_PARAM_ANT_DIV_SELFTEST_INTVL - */ - WMI_PDEV_PARAM_ANT_DIV_SELFTEST, - /** - * Configure the cycle time of ANT self test, - * the unit is micro second. Per the timer - * limitation, too small value could be not so - * accurate. - */ - WMI_PDEV_PARAM_ANT_DIV_SELFTEST_INTVL, - /** - * wlan stats observation period, the unit is millisecond. - * The value of 0 is used to turn off periodic stats report. - */ - WMI_PDEV_PARAM_STATS_OBSERVATION_PERIOD, - /** - * Set tx_ppdu_delay[] bin size to specify how many - * milliseconds each bin of the wmi_tx_stats.tx_ppdu_delay[] - * histogram represents. - */ - WMI_PDEV_PARAM_TX_PPDU_DELAY_BIN_SIZE_MS, - /** set wmi_tx_stats.tx_ppdu_delay[] array length */ - WMI_PDEV_PARAM_TX_PPDU_DELAY_ARRAY_LEN, - /** set wmi_tx_stats.tx_mpdu_aggr[] array length */ - WMI_PDEV_PARAM_TX_MPDU_AGGR_ARRAY_LEN, - /** set wmi_rx_stats.rx_mpdu_aggr[] array length */ - WMI_PDEV_PARAM_RX_MPDU_AGGR_ARRAY_LEN, - /** Set TX delay value in TX sch module, unit is microseconds */ - WMI_PDEV_PARAM_TX_SCH_DELAY, - /** Set RTS enable for SIFS bursting */ - WMI_PDEV_PARAM_ENABLE_RTS_SIFS_BURSTING, - /** Set Maximum number of MPDUs in an AMPDU*/ - WMI_PDEV_PARAM_MAX_MPDUS_IN_AMPDU, + /** TX chain mask */ + WMI_PDEV_PARAM_TX_CHAIN_MASK = 0x1, + /** RX chain mask */ + WMI_PDEV_PARAM_RX_CHAIN_MASK, + /** TX power limit for 2G Radio */ + WMI_PDEV_PARAM_TXPOWER_LIMIT2G, + /** TX power limit for 5G Radio */ + WMI_PDEV_PARAM_TXPOWER_LIMIT5G, + /** TX power scale */ + WMI_PDEV_PARAM_TXPOWER_SCALE, + /** Beacon generation mode . 0: host, 1: target */ + WMI_PDEV_PARAM_BEACON_GEN_MODE, + /** Beacon generation mode . 0: staggered 1: bursted */ + WMI_PDEV_PARAM_BEACON_TX_MODE, + /** Resource manager off chan mode . + * 0: turn off off chan mode. 1: turn on offchan mode + */ + WMI_PDEV_PARAM_RESMGR_OFFCHAN_MODE, + /** Protection mode 0: no protection 1:use CTS-to-self 2: use RTS/CTS */ + WMI_PDEV_PARAM_PROTECTION_MODE, + /** Dynamic bandwidth 0: disable 1: enable */ + WMI_PDEV_PARAM_DYNAMIC_BW, + /** Non aggregrate/ 11g sw retry threshold.0-disable */ + WMI_PDEV_PARAM_NON_AGG_SW_RETRY_TH, + /** aggregrate sw retry threshold. 0-disable*/ + WMI_PDEV_PARAM_AGG_SW_RETRY_TH, + /** Station kickout threshold (non of consecutive failures).0-disable */ + WMI_PDEV_PARAM_STA_KICKOUT_TH, + /** Aggerate size scaling configuration per AC */ + WMI_PDEV_PARAM_AC_AGGRSIZE_SCALING, + /** LTR enable */ + WMI_PDEV_PARAM_LTR_ENABLE, + /** LTR latency for BE, in us */ + WMI_PDEV_PARAM_LTR_AC_LATENCY_BE, + /** LTR latency for BK, in us */ + WMI_PDEV_PARAM_LTR_AC_LATENCY_BK, + /** LTR latency for VI, in us */ + WMI_PDEV_PARAM_LTR_AC_LATENCY_VI, + /** LTR latency for VO, in us */ + WMI_PDEV_PARAM_LTR_AC_LATENCY_VO, + /** LTR AC latency timeout, in ms */ + WMI_PDEV_PARAM_LTR_AC_LATENCY_TIMEOUT, + /** LTR platform latency override, in us */ + WMI_PDEV_PARAM_LTR_SLEEP_OVERRIDE, + /** LTR-M override, in us */ + WMI_PDEV_PARAM_LTR_RX_OVERRIDE, + /** Tx activity timeout for LTR, in us */ + WMI_PDEV_PARAM_LTR_TX_ACTIVITY_TIMEOUT, + /** L1SS state machine enable */ + WMI_PDEV_PARAM_L1SS_ENABLE, + /** Deep sleep state machine enable */ + WMI_PDEV_PARAM_DSLEEP_ENABLE, + /** RX buffering flush enable */ + WMI_PDEV_PARAM_PCIELP_TXBUF_FLUSH, + /** RX buffering matermark */ + WMI_PDEV_PARAM_PCIELP_TXBUF_WATERMARK, + /** RX buffering timeout enable */ + WMI_PDEV_PARAM_PCIELP_TXBUF_TMO_EN, + /** RX buffering timeout value */ + WMI_PDEV_PARAM_PCIELP_TXBUF_TMO_VALUE, + /** pdev level stats update period in ms */ + WMI_PDEV_PARAM_PDEV_STATS_UPDATE_PERIOD, + /** vdev level stats update period in ms */ + WMI_PDEV_PARAM_VDEV_STATS_UPDATE_PERIOD, + /** peer level stats update period in ms */ + WMI_PDEV_PARAM_PEER_STATS_UPDATE_PERIOD, + /** beacon filter status update period */ + WMI_PDEV_PARAM_BCNFLT_STATS_UPDATE_PERIOD, + /** QOS Mgmt frame protection MFP/PMF 0: disable, 1: enable */ + WMI_PDEV_PARAM_PMF_QOS, + /** Access category on which ARP frames are sent */ + WMI_PDEV_PARAM_ARP_AC_OVERRIDE, + /** DCS configuration */ + WMI_PDEV_PARAM_DCS, + /** Enable/Disable ANI on target */ + WMI_PDEV_PARAM_ANI_ENABLE, + /** configure the ANI polling period */ + WMI_PDEV_PARAM_ANI_POLL_PERIOD, + /** configure the ANI listening period */ + WMI_PDEV_PARAM_ANI_LISTEN_PERIOD, + /** configure OFDM immunity level */ + WMI_PDEV_PARAM_ANI_OFDM_LEVEL, + /** configure CCK immunity level */ + WMI_PDEV_PARAM_ANI_CCK_LEVEL, + /** Enable/Disable CDD for 1x1 STAs in rate control module */ + WMI_PDEV_PARAM_DYNTXCHAIN, + /** Enable/Disable proxy STA */ + WMI_PDEV_PARAM_PROXY_STA, + /** Enable/Disable low power state when all VDEVs are inactive/idle. */ + WMI_PDEV_PARAM_IDLE_PS_CONFIG, + /** Enable/Disable power gating sleep */ + WMI_PDEV_PARAM_POWER_GATING_SLEEP, + /** Enable/Disable Rfkill */ + WMI_PDEV_PARAM_RFKILL_ENABLE, + /** Set Bursting DUR */ + WMI_PDEV_PARAM_BURST_DUR, + /** Set Bursting ENABLE */ + WMI_PDEV_PARAM_BURST_ENABLE, + /** HW rfkill config */ + WMI_PDEV_PARAM_HW_RFKILL_CONFIG, + /** Enable radio low power features */ + WMI_PDEV_PARAM_LOW_POWER_RF_ENABLE, + /** L1SS entry and residency time track */ + WMI_PDEV_PARAM_L1SS_TRACK, + /** set hyst at runtime, requirement from SS */ + WMI_PDEV_PARAM_HYST_EN, + /** Enable/ Disable POWER COLLAPSE */ + WMI_PDEV_PARAM_POWER_COLLAPSE_ENABLE, + /** configure LED system state */ + WMI_PDEV_PARAM_LED_SYS_STATE, + /** Enable/Disable LED */ + WMI_PDEV_PARAM_LED_ENABLE, + /** set DIRECT AUDIO time latency */ + WMI_PDEV_PARAM_AUDIO_OVER_WLAN_LATENCY, /* DEPRECATED */ + /** set DIRECT AUDIO Feature ENABLE */ + WMI_PDEV_PARAM_AUDIO_OVER_WLAN_ENABLE, /* DEPRECATED */ + /** pdev level whal mib stats update enable */ + WMI_PDEV_PARAM_WHAL_MIB_STATS_UPDATE_ENABLE, + /** ht/vht info based on vdev */ + WMI_PDEV_PARAM_VDEV_RATE_STATS_UPDATE_PERIOD, + /** Set CTS channel BW for dynamic BW adjustment feature */ + WMI_PDEV_PARAM_CTS_CBW, + /** Set GPIO pin info used by WNTS */ + WMI_PDEV_PARAM_WNTS_CONFIG, + /** Enable/Disable hardware adaptive early rx feature */ + WMI_PDEV_PARAM_ADAPTIVE_EARLY_RX_ENABLE, + /** The minimum early rx duration, to ensure early rx duration is non-zero */ + WMI_PDEV_PARAM_ADAPTIVE_EARLY_RX_MIN_SLEEP_SLOP, + /** Increasing/decreasing step used by hardware */ + WMI_PDEV_PARAM_ADAPTIVE_EARLY_RX_INC_DEC_STEP, + /** The fixed early rx duration when adaptive early rx is disabled */ + WMI_PDEV_PARAM_EARLY_RX_FIX_SLEEP_SLOP, + /** Enable/Disable bmiss based adaptive beacon timeout feature */ + WMI_PDEV_PARAM_BMISS_BASED_ADAPTIVE_BTO_ENABLE, + /** The minimum beacon timeout duration, to ensure beacon timeout duration is non-zero */ + WMI_PDEV_PARAM_BMISS_BTO_MIN_BCN_TIMEOUT, + /** Increasing/decreasing step used by hardware */ + WMI_PDEV_PARAM_BMISS_BTO_INC_DEC_STEP, + /** The fixed beacon timeout duration when bmiss based adaptive beacon timeout is disabled */ + WMI_PDEV_PARAM_BTO_FIX_BCN_TIMEOUT, + /** Enable/Disable Congestion Estimator based adaptive beacon timeout feature */ + WMI_PDEV_PARAM_CE_BASED_ADAPTIVE_BTO_ENABLE, + /** combo value of ce_id, ce_threshold, ce_time, refer to WMI_CE_BTO_CE_ID_MASK */ + WMI_PDEV_PARAM_CE_BTO_COMBO_CE_VALUE, + /** 2G TX chain mask */ + WMI_PDEV_PARAM_TX_CHAIN_MASK_2G, + /** 2G RX chain mask */ + WMI_PDEV_PARAM_RX_CHAIN_MASK_2G, + /** 5G TX chain mask */ + WMI_PDEV_PARAM_TX_CHAIN_MASK_5G, + /** 5G RX chain mask */ + WMI_PDEV_PARAM_RX_CHAIN_MASK_5G, + /* Set tx chain mask for CCK rates */ + WMI_PDEV_PARAM_TX_CHAIN_MASK_CCK, + /* Set tx chain mask for 1SS stream */ + WMI_PDEV_PARAM_TX_CHAIN_MASK_1SS, + /* Enable/Disable CTS2Self for P2P GO when Non-P2P Client is connected */ + WMI_PDEV_PARAM_CTS2SELF_FOR_P2P_GO_CONFIG, + /** TX power backoff in dB: tx power -= param value + * Host passes values(DB) to Halphy, Halphy reduces the power table by + * the values. Safety check will happen in Halphy + */ + WMI_PDEV_PARAM_TXPOWER_DECR_DB, + /** enable and disable aggregate burst along with duration */ + WMI_PDEV_PARAM_AGGR_BURST, + /** Set the global RX decap mode */ + WMI_PDEV_PARAM_RX_DECAP_MODE, + /** Enable/Disable Fast channel reset */ + WMI_PDEV_PARAM_FAST_CHANNEL_RESET, + /** Default antenna for Smart antenna */ + WMI_PDEV_PARAM_SMART_ANTENNA_DEFAULT_ANTENNA, + /** Set the user-specified antenna gain */ + WMI_PDEV_PARAM_ANTENNA_GAIN, + /** Set the user-specified RX filter */ + WMI_PDEV_PARAM_RX_FILTER, + /** configure the user-specified MCAST tid for managed mcast feature + * 0-15 is the valid range. 0xff will clear the tid setting */ + WMI_PDEV_SET_MCAST_TO_UCAST_TID, + /** Enable/Disable Proxy sta mode */ + WMI_PDEV_PARAM_PROXY_STA_MODE, + /** configure the mcast2ucast mode for the pdev->peer_mcast. + * See WMI_PEER_MCAST2UCAST_MODE for possible values */ + WMI_PDEV_PARAM_SET_MCAST2UCAST_MODE, + /** Sets the Mcast buffers for cloning, to support Mcast enhancement */ + WMI_PDEV_PARAM_SET_MCAST2UCAST_BUFFER, + /** Remove the Mcast buffers added by host */ + WMI_PDEV_PARAM_REMOVE_MCAST2UCAST_BUFFER, + /** En/disable station power save state indication */ + WMI_PDEV_PEER_STA_PS_STATECHG_ENABLE, + /** Access category on which ARP frames are sent */ + WMI_PDEV_PARAM_IGMPMLD_AC_OVERRIDE, + /** allow or disallow interbss frame forwarding */ + WMI_PDEV_PARAM_BLOCK_INTERBSS, + /** Enable/Disable reset */ + WMI_PDEV_PARAM_SET_DISABLE_RESET_CMDID, + /** Enable/Disable/Set MSDU_TTL in milliseconds. */ + WMI_PDEV_PARAM_SET_MSDU_TTL_CMDID, + /** Set global PPDU duration limit (usec). */ + WMI_PDEV_PARAM_SET_PPDU_DURATION_CMDID, + /** set txbf sounding period of vap in milliseconds */ + WMI_PDEV_PARAM_TXBF_SOUND_PERIOD_CMDID, + /** Set promiscuous mode */ + WMI_PDEV_PARAM_SET_PROMISC_MODE_CMDID, + /** Set burst mode */ + WMI_PDEV_PARAM_SET_BURST_MODE_CMDID, + /** enable enhanced stats */ + WMI_PDEV_PARAM_EN_STATS, + /** Set mu-grouping policy */ + WMI_PDEV_PARAM_MU_GROUP_POLICY, + /** Channel Hopping Enable */ + WMI_PDEV_PARAM_NOISE_DETECTION, + /** Set Channel Hopping NF threshold in dBm */ + WMI_PDEV_PARAM_NOISE_THRESHOLD, + /** Set PAPRD policy */ + WMI_PDEV_PARAM_DPD_ENABLE, + /** Enable/disable mcast/bcast echo, used by ProxySTA */ + WMI_PDEV_PARAM_SET_MCAST_BCAST_ECHO, + /** ATF enable/disable strict schedule */ + WMI_PDEV_PARAM_ATF_STRICT_SCH, + /** ATF set access category duration, B0-B29 duration, B30-B31: AC */ + WMI_PDEV_PARAM_ATF_SCHED_DURATION, + /** Default antenna polarization */ + WMI_PDEV_PARAM_ANT_PLZN, + /** Set mgmt retry limit */ + WMI_PDEV_PARAM_MGMT_RETRY_LIMIT, + /** Set CCA sensitivity level in dBm */ + WMI_PDEV_PARAM_SENSITIVITY_LEVEL, + /** Set 2G positive and negative Tx power in 0.5dBm units */ + WMI_PDEV_PARAM_SIGNED_TXPOWER_2G, + /** Set 5G positive and negative Tx power in 0.5dBm + * units */ + WMI_PDEV_PARAM_SIGNED_TXPOWER_5G, + /** Enable/disble AMSDU for tids */ + WMI_PDEV_PARAM_ENABLE_PER_TID_AMSDU, + /** Enable/disable AMPDU for tids */ + WMI_PDEV_PARAM_ENABLE_PER_TID_AMPDU, + /** Set CCA threshold in dBm */ + WMI_PDEV_PARAM_CCA_THRESHOLD, + /** RTS Fixed rate setting */ + WMI_PDEV_PARAM_RTS_FIXED_RATE, + /** Pdev reset */ + WMI_PDEV_PARAM_PDEV_RESET, + /** wapi mbssid offset **/ + WMI_PDEV_PARAM_WAPI_MBSSID_OFFSET, + /** ARP DEBUG source address*/ + WMI_PDEV_PARAM_ARP_DBG_SRCADDR, + /** ARP DEBUG destination address*/ + WMI_PDEV_PARAM_ARP_DBG_DSTADDR, + /** ATF enable/disable obss noise scheduling */ + WMI_PDEV_PARAM_ATF_OBSS_NOISE_SCH, + /** ATF obss noise scaling factor */ + WMI_PDEV_PARAM_ATF_OBSS_NOISE_SCALING_FACTOR, + /** + * TX power reduction scaling exponent - final tx power is the + * nominal tx power (A_MIN(reg_pow,ctl,etc..)) divided by + * 2^(scale exponent). For example: + * If this scale exponent is 0, the power is unchanged (divided by 2^0) + * If this factor is 1, the power is scaled down by 2^1, i.e. 3 dB + * If this factor is 2, the power is scaled down by 2^2, i.e. 6 dB + * If this factor is 3, the power is scaled down by 2^3, i.e. 9 dB + */ + WMI_PDEV_PARAM_CUST_TXPOWER_SCALE, + /** ATF enabe/disabe dynamically */ + WMI_PDEV_PARAM_ATF_DYNAMIC_ENABLE, + /** Set tx retry limit for control frames. 0 = disable, 31 = max */ + WMI_PDEV_PARAM_CTRL_RETRY_LIMIT, + /** Set propagation delay for 2G / 5G band. + * The propagation delay is fundamentally a per-peer property, but + * the target may not support per-peer settings for ack timeouts. + * This pdev parameter allows the MAC-level ack timeout to be set to + * a value suitable for the worst-case propagation delay of any peer + * within that pdev. + * Units are microseconds. + */ + WMI_PDEV_PARAM_PROPAGATION_DELAY, + /** + * Host can enable/disable ANT DIV feature + * if it's been enabled in BDF + */ + WMI_PDEV_PARAM_ENA_ANT_DIV, + /** Host can force one chain to select a specific ANT */ + WMI_PDEV_PARAM_FORCE_CHAIN_ANT, + /** + * Start a cycle ANT self test periodically. + * In the test, the FW would select each ANT pair + * one by one, the cycle time could be configured + * via WMI_PDEV_PARAM_ANT_DIV_SELFTEST_INTVL + */ + WMI_PDEV_PARAM_ANT_DIV_SELFTEST, + /** + * Configure the cycle time of ANT self test, + * the unit is micro second. Per the timer + * limitation, too small value could be not so + * accurate. + */ + WMI_PDEV_PARAM_ANT_DIV_SELFTEST_INTVL, + /** + * wlan stats observation period, the unit is millisecond. + * The value of 0 is used to turn off periodic stats report. + */ + WMI_PDEV_PARAM_STATS_OBSERVATION_PERIOD, + /** + * Set tx_ppdu_delay[] bin size to specify how many + * milliseconds each bin of the wmi_tx_stats.tx_ppdu_delay[] + * histogram represents. + */ + WMI_PDEV_PARAM_TX_PPDU_DELAY_BIN_SIZE_MS, + /** set wmi_tx_stats.tx_ppdu_delay[] array length */ + WMI_PDEV_PARAM_TX_PPDU_DELAY_ARRAY_LEN, + /** set wmi_tx_stats.tx_mpdu_aggr[] array length */ + WMI_PDEV_PARAM_TX_MPDU_AGGR_ARRAY_LEN, + /** set wmi_rx_stats.rx_mpdu_aggr[] array length */ + WMI_PDEV_PARAM_RX_MPDU_AGGR_ARRAY_LEN, + /** Set TX delay value in TX sch module, unit is microseconds */ + WMI_PDEV_PARAM_TX_SCH_DELAY, + /** Set RTS enable for SIFS bursting */ + WMI_PDEV_PARAM_ENABLE_RTS_SIFS_BURSTING, + /** Set Maximum number of MPDUs in an AMPDU*/ + WMI_PDEV_PARAM_MAX_MPDUS_IN_AMPDU, + + /** Enable/disable peer stats info mechanism + * A zero value disables; a non-zero value enables. + */ + WMI_PDEV_PARAM_PEER_STATS_INFO_ENABLE, + + /** Configure Fast PWR Transition mode + * 0x0 -> inidcates Fast PWR transition disabled + * 0x1 -> indicates Static mode enabled + * 0x2 -> indicates Dynamic mode enabled + */ + WMI_PDEV_PARAM_FAST_PWR_TRANSITION, } WMI_PDEV_PARAM; -typedef enum { - /** Set the loglevel */ - WMI_DBGLOG_LOG_LEVEL = 0x1, - /** Enable VAP level debug */ - WMI_DBGLOG_VAP_ENABLE, - /** Disable VAP level debug */ - WMI_DBGLOG_VAP_DISABLE, - /** Enable MODULE level debug */ - WMI_DBGLOG_MODULE_ENABLE, - /** Disable MODULE level debug */ - WMI_DBGLOG_MODULE_DISABLE, - /** Enable MODULE level debug */ - WMI_DBGLOG_MOD_LOG_LEVEL, - /** set type of the debug output */ - WMI_DBGLOG_TYPE, - /** Enable Disable debug */ - WMI_DBGLOG_REPORT_ENABLE -} WMI_DBG_PARAM; +typedef struct { + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_param_cmd_fixed_param */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + /** parameter id */ + A_UINT32 param_id; + /** parametr value */ + A_UINT32 param_value; +} wmi_pdev_set_param_cmd_fixed_param; /* param_value for param_id WMI_PDEV_PARAM_CTS_CBW */ typedef enum { - WMI_CTS_CBW_INVALID = 0, - WMI_CTS_CBW_20, - WMI_CTS_CBW_40, - WMI_CTS_CBW_80, - WMI_CTS_CBW_80_80, - WMI_CTS_CBW_160, + WMI_CTS_CBW_INVALID = 0, + WMI_CTS_CBW_20, + WMI_CTS_CBW_40, + WMI_CTS_CBW_80, + WMI_CTS_CBW_80_80, + WMI_CTS_CBW_160, } WMI_CTS_CBW; typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_set_param_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - /** parameter id */ - A_UINT32 param_id; - /** parametr value */ - A_UINT32 param_value; -} wmi_pdev_set_param_cmd_fixed_param; - -typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_get_tpc_config_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - /** parameter */ - A_UINT32 param; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_get_tpc_config_cmd_fixed_param */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + /** parameter */ + A_UINT32 param; } wmi_pdev_get_tpc_config_cmd_fixed_param; #define WMI_FAST_DIVERSITY_BIT_OFFSET 0 #define WMI_SLOW_DIVERSITY_BIT_OFFSET 1 #define WMI_SLOW_DIVERSITY_CH0_WEIGHT_SHIFT 2 -#define WMI_SLOW_DIVERSITY_CH0_WEIGHT_MASK \ - (0xf << WMI_SLOW_DIVERSITY_CH0_WEIGHT_SHIFT) +#define WMI_SLOW_DIVERSITY_CH0_WEIGHT_MASK (0xf << WMI_SLOW_DIVERSITY_CH0_WEIGHT_SHIFT) #define WMI_SLOW_DIVERSITY_CH0_WEIGHT_GET_BITS(word32) \ - (((word32) & WMI_SLOW_DIVERSITY_CH0_WEIGHT_MASK) >> \ - WMI_SLOW_DIVERSITY_CH0_WEIGHT_SHIFT) + (((word32) & WMI_SLOW_DIVERSITY_CH0_WEIGHT_MASK) >> WMI_SLOW_DIVERSITY_CH0_WEIGHT_SHIFT) #define WMI_SLOW_DIVERSITY_CH0_WEIGHT_SET_BITS(word32, value) \ - do { \ - (word32) &= ~WMI_SLOW_DIVERSITY_CH0_WEIGHT_MASK; \ - (word32) |= ((value) << WMI_SLOW_DIVERSITY_CH0_WEIGHT_SHIFT) & \ - WMI_SLOW_DIVERSITY_CH0_WEIGHT_MASK; \ - } while (0) + do { \ + (word32) &= ~WMI_SLOW_DIVERSITY_CH0_WEIGHT_MASK; \ + (word32) |= ((value) << WMI_SLOW_DIVERSITY_CH0_WEIGHT_SHIFT) & \ + WMI_SLOW_DIVERSITY_CH0_WEIGHT_MASK; \ + } while (0) #define WMI_SLOW_DIVERSITY_CH1_WEIGHT_SHIFT 6 -#define WMI_SLOW_DIVERSITY_CH1_WEIGHT_MASK \ - (0xf << WMI_SLOW_DIVERSITY_CH1_WEIGHT_SHIFT) +#define WMI_SLOW_DIVERSITY_CH1_WEIGHT_MASK (0xf << WMI_SLOW_DIVERSITY_CH1_WEIGHT_SHIFT) #define WMI_SLOW_DIVERSITY_CH1_WEIGHT_GET_BITS(word32) \ - (((word32) & WMI_SLOW_DIVERSITY_CH1_WEIGHT_MASK) >> \ - WMI_SLOW_DIVERSITY_CH1_WEIGHT_SHIFT) + (((word32) & WMI_SLOW_DIVERSITY_CH1_WEIGHT_MASK) >> WMI_SLOW_DIVERSITY_CH1_WEIGHT_SHIFT) #define WMI_SLOW_DIVERSITY_CH1_WEIGHT_SET_BITS(word32, value) \ - do { \ - (word32) &= ~WMI_SLOW_DIVERSITY_CH1_WEIGHT_MASK; \ - (word32) |= ((value) << WMI_SLOW_DIVERSITY_CH1_WEIGHT_SHIFT) & \ - WMI_SLOW_DIVERSITY_CH1_WEIGHT_MASK; \ - } while (0) + do { \ + (word32) &= ~WMI_SLOW_DIVERSITY_CH1_WEIGHT_MASK; \ + (word32) |= ((value) << WMI_SLOW_DIVERSITY_CH1_WEIGHT_SHIFT) & \ + WMI_SLOW_DIVERSITY_CH1_WEIGHT_MASK; \ + } while (0) typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_set_antenna_diversity_cmd_fixed_param - */ - A_UINT32 tlv_header; - union { - /* OBSOLETE - will be removed once all refs are gone */ - A_UINT32 mac_id; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - }; - /* - * The following "value" field is divided into bit fields as follows: - * bits | purpose - * -----+--------------------------------------- - * 0 | enable/disable FAST diversity - * 1 | enable/disable SLOW diversity - * 5:2 | chain0 slow-diversity weighting factor - * 9:6 | chain1 slow-diversity weighting factor - * 31:10| currenty unused (set to 0x0) - * Refer to the above WMI_[FAST/SLOW]_DIVERSITY constants. - */ - A_UINT32 value; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_antenna_diversity_cmd_fixed_param */ + union { + A_UINT32 mac_id; /* OBSOLETE - will be removed once all refs are gone */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + }; + /** + * The following "value" field is divided into bit fields as follows: + * bits | purpose + * -----+--------------------------------------- + * 0 | enable/disable FAST diversity + * 1 | enable/disable SLOW diversity + * 5:2 | chain0 slow-diversity weighting factor + * 9:6 | chain1 slow-diversity weighting factor + * 31:10| currenty unused (set to 0x0) + * Refer to the above WMI_[FAST/SLOW]_DIVERSITY constants. + */ + A_UINT32 value; } wmi_pdev_set_antenna_diversity_cmd_fixed_param; #define WMI_MAX_RSSI_THRESHOLD_SUPPORTED 3 typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_rssi_breach_monitor_config_cmd_fixed_param - */ - A_UINT32 tlv_header; - /* vdev_id, where RSSI monitoring will take place */ - A_UINT32 vdev_id; - /* - * host will configure request_id and firmware echo - * this id in RSSI_BREACH_EVENT - */ - A_UINT32 request_id; - /* - * bit [0-2] = low_rssi_breach_enabled[0-2] - * enabled, bit [3-5] = hi_rssi_breach_enabled[0-2] - */ - A_UINT32 enabled_bitmap; - /* unit dBm. host driver to make sure [0] > [1] > [2] */ - A_UINT32 low_rssi_breach_threshold[WMI_MAX_RSSI_THRESHOLD_SUPPORTED]; - /* unit dBm. host driver to make sure [0] < [1] < [2] */ - A_UINT32 hi_rssi_breach_threshold[WMI_MAX_RSSI_THRESHOLD_SUPPORTED]; - /* - * unit dBm. once low rssi[] breached, same event - * bitmap will be generated only after signal gets better - * than this level. This value is adopted for all low_rssi_breach_threshold[3] - */ - A_UINT32 lo_rssi_reenable_hysteresis; - /* - * unit dBm. once hi rssi[] breached, same event bitmap - * will be generated only after signal gets worse than this - * level. This value is adopted for all hi_rssi_breach_threshold[3] - */ - A_UINT32 hi_rssi_reenable_histeresis; - /* - * After last event is generated, we wait - * until this interval to generate next event - */ - A_UINT32 min_report_interval; - /* this is to suppress number of event to be generated */ - A_UINT32 max_num_report; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_rssi_breach_monitor_config_cmd_fixed_param */ + A_UINT32 vdev_id; /* vdev_id, where RSSI monitoring will take place */ + A_UINT32 request_id; /* host will configure request_id and firmware echo this id in RSSI_BREACH_EVENT */ + A_UINT32 enabled_bitmap; /* bit [0-2] = low_rssi_breach_enabled[0-2] enabled, bit [3-5] = hi_rssi_breach_enabled[0-2] */ + A_UINT32 low_rssi_breach_threshold[WMI_MAX_RSSI_THRESHOLD_SUPPORTED]; /* unit dBm. host driver to make sure [0] > [1] > [2] */ + A_UINT32 hi_rssi_breach_threshold[WMI_MAX_RSSI_THRESHOLD_SUPPORTED]; /* unit dBm. host driver to make sure [0] < [1] < [2] */ + A_UINT32 lo_rssi_reenable_hysteresis; /* unit dBm. once low rssi[] breached, same event bitmap will be generated only after signal gets better than this level. This value is adopted for all low_rssi_breach_threshold[3] */ + A_UINT32 hi_rssi_reenable_histeresis;/* unit dBm. once hi rssi[] breached, same event bitmap will be generated only after signal gets worse than this level. This value is adopted for all hi_rssi_breach_threshold[3] */ + A_UINT32 min_report_interval; /* After last event is generated, we wait until this interval to generate next event */ + A_UINT32 max_num_report; /* this is to suppress number of event to be generated */ } wmi_rssi_breach_monitor_config_fixed_param; typedef struct { - /** parameter */ - A_UINT32 param; + /** parameter */ + A_UINT32 param; } wmi_pdev_dump_cmd; typedef enum { - PAUSE_TYPE_CHOP = 0x1, - /** for MCC (switch channel), only vdev_map is valid */ - PAUSE_TYPE_PS = 0x2, /** for peer station sleep in sap mode, only peer_id is valid */ - PAUSE_TYPE_UAPSD = 0x3, - /** for uapsd, only peer_id and tid_map are valid. */ - PAUSE_TYPE_P2P_CLIENT_NOA = 0x4, - /** only vdev_map is valid, actually only one vdev id is set at one time */ - PAUSE_TYPE_P2P_GO_PS = 0x5, - /** only vdev_map is valid, actually only one vdev id is set at one time */ - PAUSE_TYPE_STA_ADD_BA = 0x6, - /** only peer_id and tid_map are valid, actually only one tid is set at one time */ - PAUSE_TYPE_AP_PS = 0x7, - /** for pausing AP vdev when all the connected clients are in PS. only vdev_map is valid */ - PAUSE_TYPE_IBSS_PS = 0x8, - /** for pausing IBSS vdev when all the peers are in PS. only vdev_map is valid */ - PAUSE_TYPE_CHOP_TDLS_OFFCHAN = 0x9, - /* - * for TDLS offchannel MCC (switch channel), only vdev_map is valid, - * TDLS connection tracker needs to be notified - */ - PAUSE_TYPE_HOST = 0x15, - /** host is requesting vdev pause */ + PAUSE_TYPE_CHOP = 0x1, /** for MCC (switch channel), only vdev_map is valid */ + PAUSE_TYPE_PS = 0x2, /** for peer station sleep in sap mode, only peer_id is valid */ + PAUSE_TYPE_UAPSD = 0x3, /** for uapsd, only peer_id and tid_map are valid. */ + PAUSE_TYPE_P2P_CLIENT_NOA = 0x4, /** only vdev_map is valid, actually only one vdev id is set at one time */ + PAUSE_TYPE_P2P_GO_PS = 0x5, /** only vdev_map is valid, actually only one vdev id is set at one time */ + PAUSE_TYPE_STA_ADD_BA = 0x6, /** only peer_id and tid_map are valid, actually only one tid is set at one time */ + PAUSE_TYPE_AP_PS = 0x7, /** for pausing AP vdev when all the connected clients are in PS. only vdev_map is valid */ + PAUSE_TYPE_IBSS_PS = 0x8, /** for pausing IBSS vdev when all the peers are in PS. only vdev_map is valid */ + PAUSE_TYPE_CHOP_TDLS_OFFCHAN = 0x9, /** for TDLS offchannel MCC (switch channel), only vdev_map is valid, TDLS connection tracker needs to be notified */ + + PAUSE_TYPE_HOST = 0x15, /* host is requesting vdev pause */ } wmi_tx_pause_type; typedef enum { - ACTION_PAUSE = 0x0, - ACTION_UNPAUSE = 0x1, + ACTION_PAUSE = 0x0, + ACTION_UNPAUSE = 0x1, } wmi_tx_pause_action; typedef struct { - A_UINT32 tlv_header; - A_UINT32 pause_type; - A_UINT32 action; - A_UINT32 vdev_map; - A_UINT32 peer_id; - A_UINT32 tid_map; + A_UINT32 tlv_header; + A_UINT32 pause_type; + A_UINT32 action; + A_UINT32 vdev_map; + A_UINT32 peer_id; + A_UINT32 tid_map; } wmi_tx_pause_event_fixed_param; typedef enum { - WMI_MGMT_TX_COMP_TYPE_COMPLETE_OK = 0, - WMI_MGMT_TX_COMP_TYPE_DISCARD, - WMI_MGMT_TX_COMP_TYPE_INSPECT, - WMI_MGMT_TX_COMP_TYPE_COMPLETE_NO_ACK, - WMI_MGMT_TX_COMP_TYPE_MAX, + WMI_MGMT_TX_COMP_TYPE_COMPLETE_OK = 0, + WMI_MGMT_TX_COMP_TYPE_DISCARD, + WMI_MGMT_TX_COMP_TYPE_INSPECT, + WMI_MGMT_TX_COMP_TYPE_COMPLETE_NO_ACK, + WMI_MGMT_TX_COMP_TYPE_MAX, } WMI_MGMT_TX_COMP_STATUS_TYPE; typedef struct { - A_UINT32 tlv_header; - A_UINT32 desc_id; /* from tx_send_cmd */ - A_UINT32 status; /* WMI_MGMT_TX_COMP_STATUS_TYPE */ + A_UINT32 tlv_header; + A_UINT32 desc_id; /* from tx_send_cmd */ + A_UINT32 status; /* WMI_MGMT_TX_COMP_STATUS_TYPE */ } wmi_mgmt_tx_compl_event_fixed_param; typedef struct { - A_UINT32 tlv_header; - A_UINT32 num_reports; - /* tlv for completion - * A_UINT32 desc_ids[num_reports]; <- from tx_send_cmd - * A_UINT32 status[num_reports]; <- WMI_MGMT_TX_COMP_STATUS_TYPE - */ + A_UINT32 tlv_header; + A_UINT32 num_reports; + /* tlv for completion + * A_UINT32 desc_ids[num_reports]; <- from tx_send_cmd + * A_UINT32 status[num_reports]; <- WMI_MGMT_TX_COMP_STATUS_TYPE + */ } wmi_mgmt_tx_compl_bundle_event_fixed_param; #define WMI_TPC_RATE_MAX 160 @@ -4223,163 +4028,137 @@ typedef struct { #define WMI_TPC_TX_NUM_CHAIN 4 typedef enum { - WMI_TPC_CONFIG_EVENT_FLAG_TABLE_CDD = 0x1, - WMI_TPC_CONFIG_EVENT_FLAG_TABLE_STBC = 0x2, - WMI_TPC_CONFIG_EVENT_FLAG_TABLE_TXBF = 0x4, + WMI_TPC_CONFIG_EVENT_FLAG_TABLE_CDD = 0x1, + WMI_TPC_CONFIG_EVENT_FLAG_TABLE_STBC = 0x2, + WMI_TPC_CONFIG_EVENT_FLAG_TABLE_TXBF = 0x4, } WMI_TPC_CONFIG_EVENT_FLAG; typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_tpc_config_event_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 regDomain; - A_UINT32 chanFreq; - A_UINT32 phyMode; - A_UINT32 twiceAntennaReduction; - A_UINT32 twiceMaxRDPower; - A_INT32 twiceAntennaGain; - A_UINT32 powerLimit; - A_UINT32 rateMax; - A_UINT32 numTxChain; - A_UINT32 ctl; - A_UINT32 flags; - /* WMI_TPC_TX_NUM_CHAIN macro can't be changed without - * breaking the WMI compatibility - */ - A_INT8 maxRegAllowedPower[WMI_TPC_TX_NUM_CHAIN]; - A_INT8 - maxRegAllowedPowerAGCDD[WMI_TPC_TX_NUM_CHAIN] - [WMI_TPC_TX_NUM_CHAIN]; - A_INT8 - maxRegAllowedPowerAGSTBC[WMI_TPC_TX_NUM_CHAIN] - [WMI_TPC_TX_NUM_CHAIN]; - A_INT8 - maxRegAllowedPowerAGTXBF[WMI_TPC_TX_NUM_CHAIN] - [WMI_TPC_TX_NUM_CHAIN]; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - /* This TLV is followed by a byte array: - * A_UINT8 ratesArray[]; - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_tpc_config_event_fixed_param */ + A_UINT32 regDomain; + A_UINT32 chanFreq; + A_UINT32 phyMode; + A_UINT32 twiceAntennaReduction; + A_UINT32 twiceMaxRDPower; + A_INT32 twiceAntennaGain; + A_UINT32 powerLimit; + A_UINT32 rateMax; + A_UINT32 numTxChain; + A_UINT32 ctl; + A_UINT32 flags; + /* WMI_TPC_TX_NUM_CHAIN macro can't be changed without breaking the WMI compatibility */ + A_INT8 maxRegAllowedPower[WMI_TPC_TX_NUM_CHAIN]; + A_INT8 maxRegAllowedPowerAGCDD[WMI_TPC_TX_NUM_CHAIN][WMI_TPC_TX_NUM_CHAIN]; + A_INT8 maxRegAllowedPowerAGSTBC[WMI_TPC_TX_NUM_CHAIN][WMI_TPC_TX_NUM_CHAIN]; + A_INT8 maxRegAllowedPowerAGTXBF[WMI_TPC_TX_NUM_CHAIN][WMI_TPC_TX_NUM_CHAIN]; + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; +/* This TLV is followed by a byte array: + * A_UINT8 ratesArray[]; + */ } wmi_pdev_tpc_config_event_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_l1ss_track_event_fixed_param */ - A_UINT32 periodCnt; - A_UINT32 L1Cnt; - A_UINT32 L11Cnt; - A_UINT32 L12Cnt; - A_UINT32 L1Entry; - A_UINT32 L11Entry; - A_UINT32 L12Entry; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_l1ss_track_event_fixed_param */ + A_UINT32 periodCnt; + A_UINT32 L1Cnt; + A_UINT32 L11Cnt; + A_UINT32 L12Cnt; + A_UINT32 L1Entry; + A_UINT32 L11Entry; + A_UINT32 L12Entry; + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; } wmi_pdev_l1ss_track_event_fixed_param; typedef struct { - A_UINT32 len; - A_UINT32 msgref; - A_UINT32 segmentInfo; + A_UINT32 len; + A_UINT32 msgref; + A_UINT32 segmentInfo; } wmi_pdev_seg_hdr_info; + /* * Transmit power scale factor. * */ typedef enum { - WMI_TP_SCALE_MAX = 0, /* no scaling (default) */ - WMI_TP_SCALE_50 = 1, /* 50% of max (-3 dBm) */ - WMI_TP_SCALE_25 = 2, /* 25% of max (-6 dBm) */ - WMI_TP_SCALE_12 = 3, /* 12% of max (-9 dBm) */ - WMI_TP_SCALE_MIN = 4, /* min, but still on */ - WMI_TP_SCALE_SIZE = 5, /* max num of enum */ + WMI_TP_SCALE_MAX = 0, /* no scaling (default) */ + WMI_TP_SCALE_50 = 1, /* 50% of max (-3 dBm) */ + WMI_TP_SCALE_25 = 2, /* 25% of max (-6 dBm) */ + WMI_TP_SCALE_12 = 3, /* 12% of max (-9 dBm) */ + WMI_TP_SCALE_MIN = 4, /* min, but still on */ + WMI_TP_SCALE_SIZE = 5, /* max num of enum */ } WMI_TP_SCALE; #define WMI_MAX_DEBUG_MESG (sizeof(A_UINT32) * 32) typedef struct { - /** message buffer, NULL terminated */ - char bufp[WMI_MAX_DEBUG_MESG]; + /** message buffer, NULL terminated */ + char bufp[WMI_MAX_DEBUG_MESG]; } wmi_debug_mesg_event; enum { - /** P2P device */ - VDEV_SUBTYPE_P2PDEV = 0, - /** P2P client */ - VDEV_SUBTYPE_P2PCLI, - /** P2P GO */ - VDEV_SUBTYPE_P2PGO, - /** BT3.0 HS */ - VDEV_SUBTYPE_BT, + /** P2P device */ + VDEV_SUBTYPE_P2PDEV = 0, + /** P2P client */ + VDEV_SUBTYPE_P2PCLI, + /** P2P GO */ + VDEV_SUBTYPE_P2PGO, + /** BT3.0 HS */ + VDEV_SUBTYPE_BT, }; typedef struct { - /** idnore power , only use flags , mode and freq */ - wmi_channel chan; + /** idnore power , only use flags , mode and freq */ + wmi_channel chan; } wmi_pdev_set_channel_cmd; typedef enum { - WMI_PKTLOG_EVENT_RX = 0x1, - WMI_PKTLOG_EVENT_TX = 0x2, - WMI_PKTLOG_EVENT_RCF = 0x4, /* Rate Control Find */ - WMI_PKTLOG_EVENT_RCU = 0x8, /* Rate Control Update */ - /* 0x10 used by deprecated DBG_PRINT */ - WMI_PKTLOG_EVENT_SMART_ANTENNA = 0x20, /* To support Smart Antenna */ - WMI_PKTLOG_EVENT_SW = 0x40, /* To support SW defined events */ + WMI_PKTLOG_EVENT_RX = 0x1, + WMI_PKTLOG_EVENT_TX = 0x2, + WMI_PKTLOG_EVENT_RCF = 0x4, /* Rate Control Find */ + WMI_PKTLOG_EVENT_RCU = 0x8, /* Rate Control Update */ + /* 0x10 used by deprecated DBG_PRINT */ + WMI_PKTLOG_EVENT_SMART_ANTENNA = 0x20, /* To support Smart Antenna */ + WMI_PKTLOG_EVENT_SW = 0x40, /* To support SW defined events */ } WMI_PKTLOG_EVENT; typedef enum { - /* (default) FW will decide under what conditions to enable pktlog */ - WMI_PKTLOG_ENABLE_AUTO = 0, - WMI_PKTLOG_ENABLE_FORCE = 1, /* pktlog unconditionally enabled */ + WMI_PKTLOG_ENABLE_AUTO = 0, /* (default) FW will decide under what conditions to enable pktlog */ + WMI_PKTLOG_ENABLE_FORCE = 1, /* pktlog unconditionally enabled */ } WMI_PKTLOG_ENABLE; typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_pktlog_enable_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - A_UINT32 evlist; /* WMI_PKTLOG_EVENT */ - A_UINT32 enable; /* WMI_PKTLOG_ENABLE */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_pktlog_enable_cmd_fixed_param */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + A_UINT32 evlist; /* WMI_PKTLOG_EVENT */ + A_UINT32 enable; /* WMI_PKTLOG_ENABLE */ } wmi_pdev_pktlog_enable_cmd_fixed_param; typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_pktlog_disable_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_pktlog_disable_cmd_fixed_param */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; } wmi_pdev_pktlog_disable_cmd_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_mib_stats_enable_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - /* - * enable for mib stats collection. - * Stats are delivered to host in wmi_mib_stats structure. - * If enable_Mib=1, stats collection is enabled. - * If enable_Mib=0, stats collection does not happen - */ - A_UINT32 enable_Mib; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mib_stats_enable_cmd_fixed_param */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + A_UINT32 enable_Mib; /** enable for mib stats collection. Stats are delivered to host in wmi_mib_stats structure. + * If enable_Mib=1, stats collection is enabled. If enable_Mib=0, stats collection does not happen */ } wmi_mib_stats_enable_cmd_fixed_param; /** Customize the DSCP (bit) to TID (0-7) mapping for QOS. @@ -4401,19 +4180,19 @@ typedef struct { * Implementation details of the API to send the map to the target are as described- * * 1. The function will have 2 arguments- struct ieee80211com, DSCP-to-TID map. - * DSCP-to-TID map is a one dimensional uint32_t array of length 64 to accomodate + * DSCP-to-TID map is a one dimensional u_int32_t array of length 64 to accomodate * 64 TID values for 2^6 (64) DSCP ids. * Example: * A_UINT32 dscp_tid_map[WMI_DSCP_MAP_MAX] = { - * 0, 0, 0, 0, 0, 0, 0, 0, - * 1, 1, 1, 1, 1, 1, 1, 1, - * 2, 2, 2, 2, 2, 2, 2, 2, - * 3, 3, 3, 3, 3, 3, 3, 3, - * 4, 4, 4, 4, 4, 4, 4, 4, - * 5, 5, 5, 5, 5, 5, 5, 5, - * 6, 6, 6, 6, 6, 6, 6, 6, - * 7, 7, 7, 7, 7, 7, 7, 7, - * }; + * 0, 0, 0, 0, 0, 0, 0, 0, + * 1, 1, 1, 1, 1, 1, 1, 1, + * 2, 2, 2, 2, 2, 2, 2, 2, + * 3, 3, 3, 3, 3, 3, 3, 3, + * 4, 4, 4, 4, 4, 4, 4, 4, + * 5, 5, 5, 5, 5, 5, 5, 5, + * 6, 6, 6, 6, 6, 6, 6, 6, + * 7, 7, 7, 7, 7, 7, 7, 7, + * }; * * 2. Request for the WMI buffer of size equal to the size of the DSCP-to-TID map. * @@ -4425,55 +4204,40 @@ typedef struct { * the WMI_PDEV_SET_DSCP_TID_MAP_CMDID id. * */ - /* DEPRECATED - use VDEV level command instead * (wmi_vdev_set_dscp_tid_map_cmd_fixed_param) */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_dscp_tid_map_cmd_fixed_param */ - A_UINT32 reserved0; - /** placeholder for pdev_id of future multiple MAC products. Init. to 0. */ - /* map indicating DSCP to TID conversion */ - A_UINT32 dscp_to_tid_map[WMI_DSCP_MAP_MAX]; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_dscp_tid_map_cmd_fixed_param */ + A_UINT32 reserved0; /** placeholder for pdev_id of future multiple MAC products. Init. to 0. */ + /* map indicating DSCP to TID conversion */ + A_UINT32 dscp_to_tid_map[WMI_DSCP_MAP_MAX]; } wmi_pdev_set_dscp_tid_map_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_vdev_set_dscp_tid_map_cmd_fixed_param - */ - A_UINT32 vdev_id; - /** map indicating DSCP to TID conversion */ - A_UINT32 dscp_to_tid_map[WMI_DSCP_MAP_MAX]; - A_UINT32 enable_override; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_set_dscp_tid_map_cmd_fixed_param */ + A_UINT32 vdev_id; + /** map indicating DSCP to TID conversion */ + A_UINT32 dscp_to_tid_map[WMI_DSCP_MAP_MAX]; + A_UINT32 enable_override; } wmi_vdev_set_dscp_tid_map_cmd_fixed_param; enum WMI_WAKE_GPIO_TYPE { - WMI_WAKE_GPIO_LOW = 1, - WMI_WAKE_GPIO_HIGH = 2, - WMI_WAKE_GPIO_RISING_EDGE = 3, - WMI_WAKE_GPIO_FALLING_EDGE = 4, + WMI_WAKE_GPIO_LOW = 1, + WMI_WAKE_GPIO_HIGH = 2, + WMI_WAKE_GPIO_RISING_EDGE = 3, + WMI_WAKE_GPIO_FALLING_EDGE = 4, }; /** * Set GPIO numbers used to wakeup host and wakeup target. */ typedef struct { - /** - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_WMI_PDEV_SET_WAKEUP_CONFIG_CMDID_fixed_param - */ - A_UINT32 tlv_header; - /* gpio num used to wakeup host, 0xff disable wakeup gpio */ - A_UINT32 host_wakeup_gpio; - /* refer to WMI_WAKE_GPIO_TYPE */ - A_UINT32 host_wakeup_type; - /* gpio num used to wakeup target, 0xff disable wakeup gpio */ - A_UINT32 target_wakeup_gpio; - /* refer to WMI_WAKE_GPIO_TYPE */ - A_UINT32 target_wakeup_type; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_PDEV_SET_WAKEUP_CONFIG_CMDID_fixed_param */ + A_UINT32 host_wakeup_gpio; /* gpio num used to wakeup host, 0xff disable wakeup gpio */ + A_UINT32 host_wakeup_type; /* refer to WMI_WAKE_GPIO_TYPE */ + A_UINT32 target_wakeup_gpio; /* gpio num used to wakeup target, 0xff disable wakeup gpio */ + A_UINT32 target_wakeup_type; /* refer to WMI_WAKE_GPIO_TYPE */ } WMI_PDEV_SET_WAKEUP_CONFIG_CMDID_fixed_param; /** Fixed rate (rate-code) for broadcast/ multicast data frames */ @@ -4525,63 +4289,60 @@ typedef struct { * rate value. */ typedef enum { - WMI_SET_MCAST_RATE, - WMI_SET_BCAST_RATE + WMI_SET_MCAST_RATE, + WMI_SET_BCAST_RATE } MCAST_BCAST_RATE_ID; typedef struct { - MCAST_BCAST_RATE_ID rate_id; - A_UINT32 rate; + MCAST_BCAST_RATE_ID rate_id; + A_UINT32 rate; } mcast_bcast_rate; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wmm_params */ - A_UINT32 cwmin; - A_UINT32 cwmax; - A_UINT32 aifs; - A_UINT32 txoplimit; - A_UINT32 acm; - A_UINT32 no_ack; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wmm_params */ + A_UINT32 cwmin; + A_UINT32 cwmax; + A_UINT32 aifs; + A_UINT32 txoplimit; + A_UINT32 acm; + A_UINT32 no_ack; } wmi_wmm_params; /* DEPRECATED - use VDEV level command instead * (wmi_vdev_set_wmm_params_cmd_fixed_param) */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_wmm_params_cmd_fixed_param */ - A_UINT32 reserved0; - /** placeholder for pdev_id of future multiple MAC products. Init. to 0. */ - A_UINT32 dg_type; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_wmm_params_cmd_fixed_param */ + A_UINT32 reserved0; /** placeholder for pdev_id of future multiple MAC products. Init. to 0. */ + A_UINT32 dg_type; - /* The TLVs for the 4 AC follows: - * wmi_wmm_params wmm_params_ac_be; - * wmi_wmm_params wmm_params_ac_bk; - * wmi_wmm_params wmm_params_ac_vi; - * wmi_wmm_params wmm_params_ac_vo; - */ +/* The TLVs for the 4 AC follows: + * wmi_wmm_params wmm_params_ac_be; + * wmi_wmm_params wmm_params_ac_bk; + * wmi_wmm_params wmm_params_ac_vi; + * wmi_wmm_params wmm_params_ac_vo; + */ } wmi_pdev_set_wmm_params_cmd_fixed_param; typedef enum { - WMI_REQUEST_PEER_STAT = 0x01, - WMI_REQUEST_AP_STAT = 0x02, - WMI_REQUEST_PDEV_STAT = 0x04, - WMI_REQUEST_VDEV_STAT = 0x08, - WMI_REQUEST_BCNFLT_STAT = 0x10, - WMI_REQUEST_VDEV_RATE_STAT = 0x20, - WMI_REQUEST_INST_STAT = 0x40, - WMI_REQUEST_MIB_STAT = 0x80, - WMI_REQUEST_RSSI_PER_CHAIN_STAT = 0x100, + WMI_REQUEST_PEER_STAT = 0x01, + WMI_REQUEST_AP_STAT = 0x02, + WMI_REQUEST_PDEV_STAT = 0x04, + WMI_REQUEST_VDEV_STAT = 0x08, + WMI_REQUEST_BCNFLT_STAT = 0x10, + WMI_REQUEST_VDEV_RATE_STAT = 0x20, + WMI_REQUEST_INST_STAT = 0x40, + WMI_REQUEST_MIB_STAT = 0x80, + WMI_REQUEST_RSSI_PER_CHAIN_STAT = 0x100, } wmi_stats_id; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_request_stats_cmd_fixed_param */ - wmi_stats_id stats_id; - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_request_stats_cmd_fixed_param */ + wmi_stats_id stats_id; + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; } wmi_request_stats_cmd_fixed_param; /* stats type bitmap */ @@ -4590,6 +4351,7 @@ typedef struct { #define WMI_LINK_STATS_ALL_PEER 0x00000004 #define WMI_LINK_STATS_PER_PEER 0x00000008 + /* wifi clear statistics bitmap */ #define WIFI_STATS_RADIO 0x00000001 /** all radio statistics */ #define WIFI_STATS_RADIO_CCA 0x00000002 /** cca_busy_time (within radio statistics) */ @@ -4613,8 +4375,8 @@ typedef struct { #define WMI_DIAG_ID_ENABLED_DISABLED_SET(diag_events_logs, value) WMI_SET_BITS(diag_events_logs, 17, 1, value) typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_diag_event_log_config_fixed_param */ - A_UINT32 num_of_diag_events_logs; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_diag_event_log_config_fixed_param */ + A_UINT32 num_of_diag_events_logs; /* The TLVs will follow. * A_UINT32 diag_events_logs_list[]; 0-15 Bits Diag EVENT/LOG ID, * Bit 16 - DIAG type EVENT/LOG, 0 - Event, 1 - LOG @@ -4628,8 +4390,8 @@ typedef struct { #define WMI_DIAG_EXT_FEATURE_SET(diag_events_logs, value) WMI_SET_BITS(diag_events_logs, 18, 1, value) typedef struct { - A_UINT32 tlv_header; - A_UINT32 num_of_diag_events_logs; + A_UINT32 tlv_header; + A_UINT32 num_of_diag_events_logs; /* The TLVs will follow. * A_UINT32 diag_events_logs_list[]; 0-15 Bits Diag EVENT/LOG ID, * Bit 16 - DIAG type EVENT/LOG, 0 - Event, 1 - LOG @@ -4639,179 +4401,150 @@ typedef struct { } wmi_diag_event_log_supported_event_fixed_params; typedef struct { - /** - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_debug_mesg_flush_fixed_param - */ - A_UINT32 tlv_header; - /** placeholder for future */ - A_UINT32 reserved0; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_debug_mesg_flush_fixed_param*/ + A_UINT32 reserved0; /** placeholder for future */ } wmi_debug_mesg_flush_fixed_param; typedef struct { - /** - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_debug_mesg_flush_complete_fixed_param - */ - A_UINT32 tlv_header; - /** placeholder for future */ - A_UINT32 reserved0; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_debug_mesg_flush_complete_fixed_param*/ + A_UINT32 reserved0; /** placeholder for future */ } wmi_debug_mesg_flush_complete_fixed_param; - typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_rssi_breach_fixed_param - * vdev_id, where RSSI breach event occurred - */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; - /* request id */ - A_UINT32 request_id; - /* - * bitmap[0-2] is corresponding to low_rssi[0-2]. bitmap[3-5] is - * corresponding to hi_rssi[0-2] - */ - A_UINT32 event_bitmap; - /* rssi at the time of RSSI breach. Unit dBm */ - A_UINT32 rssi; - /* bssid of the monitored AP's */ - wmi_mac_addr bssid; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_rssi_breach_fixed_param */ + /* vdev_id, where RSSI breach event occurred */ + A_UINT32 vdev_id; + /* request id */ + A_UINT32 request_id; + /* bitmap[0-2] is corresponding to low_rssi[0-2]. bitmap[3-5] is corresponding to hi_rssi[0-2]*/ + A_UINT32 event_bitmap; + /* rssi at the time of RSSI breach. Unit dBm */ + A_UINT32 rssi; + /* bssid of the monitored AP's */ + wmi_mac_addr bssid; } wmi_rssi_breach_event_fixed_param; - typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_fw_mem_dump */ - A_UINT32 tlv_header; - /** unique id identifying the segment */ - A_UINT32 seg_id; - /** Start address of the segment to be read */ - A_UINT32 seg_start_addr_lo; - A_UINT32 seg_start_addr_hi; - /** Length of the segment to be read */ - A_UINT32 seg_length; - /** Host bufeer address to which the segment will be read and dumped */ - A_UINT32 dest_addr_lo; - A_UINT32 dest_addr_hi; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_fw_mem_dump */ + /** unique id identifying the segment */ + A_UINT32 seg_id; + /** Start address of the segment to be read */ + A_UINT32 seg_start_addr_lo; + A_UINT32 seg_start_addr_hi; + /** Length of the segment to be read */ + A_UINT32 seg_length; + /** Host bufeer address to which the segment will be read and dumped */ + A_UINT32 dest_addr_lo; + A_UINT32 dest_addr_hi; } wmi_fw_mem_dump; /* Command to get firmware memory dump*/ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_get_fw_mem_dump_fixed_param */ - A_UINT32 tlv_header; - /** unique id identifying the request */ - A_UINT32 request_id; - /** number of memory dump segments */ - A_UINT32 num_fw_mem_dump_segs; - /** - * This TLV is followed by another TLV - * wmi_fw_mem_dump fw_mem_dump[]; - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_get_fw_mem_dump_fixed_param */ + /** unique id identifying the request */ + A_UINT32 request_id; + /** number of memory dump segments */ + A_UINT32 num_fw_mem_dump_segs; +/** + * This TLV is followed by another TLV + * wmi_fw_mem_dump fw_mem_dump[]; + */ } wmi_get_fw_mem_dump_fixed_param; /** Event to indicate the completion of fw mem dump */ typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_update_fw_mem_dump_fixed_param */ - A_UINT32 tlv_header; - /** unique id identifying the request, given - * in the request stats command */ - A_UINT32 request_id; - /*In case of Firmware memory dump */ - A_UINT32 fw_mem_dump_complete; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_update_fw_mem_dump_fixed_param */ + /** unique id identifying the request, given in the request stats command */ + A_UINT32 request_id; + /*In case of Firmware memory dump */ + A_UINT32 fw_mem_dump_complete; } wmi_update_fw_mem_dump_fixed_param; + typedef enum { - WMI_ROAMING_IDLE = 0, - WMI_ROAMING_ACTIVE = 1, + WMI_ROAMING_IDLE = 0, + WMI_ROAMING_ACTIVE = 1, } wmi_roam_state; /* access categories */ typedef enum { - WMI_AC_VO = 0, - WMI_AC_VI = 1, - WMI_AC_BE = 2, - WMI_AC_BK = 3, - WMI_AC_MAX = 4, + WMI_AC_VO = 0, + WMI_AC_VI = 1, + WMI_AC_BE = 2, + WMI_AC_BK = 3, + WMI_AC_MAX = 4, } wmi_traffic_ac; typedef enum { - WMI_STA_STATS = 0, - WMI_SOFTAP_STATS = 1, - WMI_IBSS_STATS = 2, - WMI_P2P_CLIENT_STATS = 3, - WMI_P2P_GO_STATS = 4, - WMI_NAN_STATS = 5, - WMI_MESH_STATS = 6, -} wmi_link_iface_type; + WMI_STA_STATS = 0, + WMI_SOFTAP_STATS = 1, + WMI_IBSS_STATS = 2, + WMI_P2P_CLIENT_STATS = 3, + WMI_P2P_GO_STATS = 4, + WMI_NAN_STATS = 5, + WMI_MESH_STATS = 6, + } wmi_link_iface_type; /* channel operating width */ typedef enum { - WMI_CHAN_WIDTH_20 = 0, - WMI_CHAN_WIDTH_40 = 1, - WMI_CHAN_WIDTH_80 = 2, - WMI_CHAN_WIDTH_160 = 3, - WMI_CHAN_WIDTH_80P80 = 4, - WMI_CHAN_WIDTH_5 = 5, - WMI_CHAN_WIDTH_10 = 6, + WMI_CHAN_WIDTH_20 = 0, + WMI_CHAN_WIDTH_40 = 1, + WMI_CHAN_WIDTH_80 = 2, + WMI_CHAN_WIDTH_160 = 3, + WMI_CHAN_WIDTH_80P80 = 4, + WMI_CHAN_WIDTH_5 = 5, + WMI_CHAN_WIDTH_10 = 6, } wmi_channel_width; /*Clear stats*/ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_clear_link_stats_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** stop_stats_collection_req = 1 will imply stop the statistics collection */ - A_UINT32 stop_stats_collection_req; - /** identifies what stats to be cleared */ - A_UINT32 stats_clear_req_mask; - /** identifies which peer stats to be cleared. Valid only while clearing PER_REER */ - wmi_mac_addr peer_macaddr; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_clear_link_stats_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** stop_stats_collection_req = 1 will imply stop the statistics collection */ + A_UINT32 stop_stats_collection_req; + /** identifies what stats to be cleared */ + A_UINT32 stats_clear_req_mask; + /** identifies which peer stats to be cleared. Valid only while clearing PER_REER */ + wmi_mac_addr peer_macaddr; } wmi_clear_link_stats_cmd_fixed_param; /* Link Stats configuration params. Trigger the link layer statistics collection*/ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_start_link_stats_cmd_fixed_param */ - /** threshold to classify the pkts as short or long */ - A_UINT32 mpdu_size_threshold; - /** set for field debug mode. Driver should collect all statistics regardless of performance impact.*/ - A_UINT32 aggressive_statistics_gathering; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_start_link_stats_cmd_fixed_param */ + /** threshold to classify the pkts as short or long */ + A_UINT32 mpdu_size_threshold; + /** set for field debug mode. Driver should collect all statistics regardless of performance impact.*/ + A_UINT32 aggressive_statistics_gathering; } wmi_start_link_stats_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_request_link_stats_cmd_fixed_param */ - /** Type of stats required. This is a bitmask WMI_LINK_STATS_RADIO, WMI_LINK_STATS_IFACE */ - A_UINT32 stats_type; - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** unique id identifying the request, generated by the caller */ - A_UINT32 request_id; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_request_link_stats_cmd_fixed_param */ + /** Type of stats required. This is a bitmask WMI_LINK_STATS_RADIO, WMI_LINK_STATS_IFACE */ + A_UINT32 stats_type; + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** unique id identifying the request, generated by the caller */ + A_UINT32 request_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; } wmi_request_link_stats_cmd_fixed_param; /* channel statistics */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_channel_stats */ - /** Channel width (20, 40, 80, 80+80, 160) enum wmi_channel_width*/ - A_UINT32 channel_width; - /** Primary 20 MHz channel */ - A_UINT32 center_freq; - /** center frequency (MHz) first segment */ - A_UINT32 center_freq0; - /** center frequency (MHz) second segment */ - A_UINT32 center_freq1; - /** msecs the radio is awake (32 bits number accruing over time) */ - A_UINT32 radio_awake_time; - /** msecs the CCA register is busy (32 bits number accruing over time) */ - A_UINT32 cca_busy_time; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_channel_stats */ + /** Channel width (20, 40, 80, 80+80, 160) enum wmi_channel_width*/ + A_UINT32 channel_width; + /** Primary 20 MHz channel */ + A_UINT32 center_freq; + /** center frequency (MHz) first segment */ + A_UINT32 center_freq0; + /** center frequency (MHz) second segment */ + A_UINT32 center_freq1; + /** msecs the radio is awake (32 bits number accruing over time) */ + A_UINT32 radio_awake_time; + /** msecs the CCA register is busy (32 bits number accruing over time) */ + A_UINT32 cca_busy_time; } wmi_channel_stats; /* @@ -4822,85 +4555,77 @@ typedef struct { /* radio statistics */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_radio_link_stats */ - /** Wifi radio (if multiple radio supported) */ - A_UINT32 radio_id; - /** msecs the radio is awake (32 bits number accruing over time) */ - A_UINT32 on_time; - /** msecs the radio is transmitting (32 bits number accruing over time) */ - A_UINT32 tx_time; - /** msecs the radio is in active receive (32 bits number accruing over time) */ - A_UINT32 rx_time; - /** msecs the radio is awake due to all scan (32 bits number accruing over time) */ - A_UINT32 on_time_scan; - /** msecs the radio is awake due to NAN (32 bits number accruing over time) */ - A_UINT32 on_time_nbd; - /** msecs the radio is awake due to G?scan (32 bits number accruing over time) */ - A_UINT32 on_time_gscan; - /** msecs the radio is awake due to roam?scan (32 bits number accruing over time) */ - A_UINT32 on_time_roam_scan; - /** msecs the radio is awake due to PNO scan (32 bits number accruing over time) */ - A_UINT32 on_time_pno_scan; - /** msecs the radio is awake due to HS2.0 scans and GAS exchange (32 bits number accruing over time) */ - A_UINT32 on_time_hs20; - /** number of channels */ - A_UINT32 num_channels; - /* - * tx time per TPC level - DEPRECATED - * This field is deprecated. - * It is superseded by the WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID - * message. - */ - A_UINT32 tx_time_per_tpc[MAX_TPC_LEVELS]; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_radio_link_stats */ + /** Wifi radio (if multiple radio supported) */ + A_UINT32 radio_id; + /** msecs the radio is awake (32 bits number accruing over time) */ + A_UINT32 on_time; + /** msecs the radio is transmitting (32 bits number accruing over time) */ + A_UINT32 tx_time; + /** msecs the radio is in active receive (32 bits number accruing over time) */ + A_UINT32 rx_time; + /** msecs the radio is awake due to all scan (32 bits number accruing over time) */ + A_UINT32 on_time_scan; + /** msecs the radio is awake due to NAN (32 bits number accruing over time) */ + A_UINT32 on_time_nbd; + /** msecs the radio is awake due to G?scan (32 bits number accruing over time) */ + A_UINT32 on_time_gscan; + /** msecs the radio is awake due to roam?scan (32 bits number accruing over time) */ + A_UINT32 on_time_roam_scan; + /** msecs the radio is awake due to PNO scan (32 bits number accruing over time) */ + A_UINT32 on_time_pno_scan; + /** msecs the radio is awake due to HS2.0 scans and GAS exchange (32 bits number accruing over time) */ + A_UINT32 on_time_hs20; + /** number of channels */ + A_UINT32 num_channels; + /** tx time per TPC level - DEPRECATED + * This field is deprecated. + * It is superseded by the WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID message. + */ + A_UINT32 tx_time_per_tpc[MAX_TPC_LEVELS]; } wmi_radio_link_stats; /** tx time per power level statistics */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_tx_power_level_stats_evt_fixed_param - */ - A_UINT32 tlv_header; - /* total number of tx power levels */ - A_UINT32 total_num_tx_power_levels; - /* number of tx power levels that are carried in this event */ - A_UINT32 num_tx_power_levels; - /* - * offset of current stats - * If ((num_tx_power_levels + power_level_offset)) == - * total_num_tx_power_levels) - * this message completes the report of tx time per power levels. - * Otherwise, additional WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID - * messages will be sent by the target to deliver the remainder of the - * tx time per power level stats. - */ - A_UINT32 power_level_offset; - /* radio id for this tx time per power level statistics (if multiple radio supported) */ - A_UINT32 radio_id; - /* - * This TLV will be followed by a TLV containing a variable-length - * array of A_UINT32 with tx time per power level data - * A_UINT32 tx_time_per_power_level[num_tx_power_levels] - * The tx time is in units of milliseconds. - * The power levels are board-specific values; a board-specific - * translation has to be applied to determine what actual power - * corresponds to each power level. - * Just as the host has a BDF file available, the host should also have - * a data file available that provides the power level to power - * translations. - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tx_power_level_stats_evt_fixed_param */ + /** total number of tx power levels */ + A_UINT32 total_num_tx_power_levels; + /** number of tx power levels that are carried in this event */ + A_UINT32 num_tx_power_levels; + /** offset of current stats + * If ((num_tx_power_levels + power_level_offset)) == + * total_num_tx_power_levels) + * this message completes the report of tx time per power levels. + * Otherwise, additional WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID messages + * will be sent by the target to deliver the remainder of the tx time + * per power level stats. + */ + A_UINT32 power_level_offset; + /* radio id for this tx time per power level statistics (if multiple radio supported) */ + A_UINT32 radio_id; +/* + * This TLV will be followed by a TLV containing a variable-length array of + * A_UINT32 with tx time per power level data + * A_UINT32 tx_time_per_power_level[num_tx_power_levels] + * The tx time is in units of milliseconds. + * The power levels are board-specific values; a board-specific translation + * has to be applied to determine what actual power corresponds to each + * power level. + * Just as the host has a BDF file available, the host should also have + * a data file available that provides the power level to power translations. + */ } wmi_tx_power_level_stats_evt_fixed_param; + /** Radio statistics (once started) do not stop or get reset unless wifi_clear_link_stats is invoked */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_stats_event_fixed_param */ - /** unique id identifying the request, given in the request stats command */ - A_UINT32 request_id; - /** Number of radios*/ - A_UINT32 num_radio; - /** more_data will be set depending on the number of radios */ - A_UINT32 more_radio_events; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_stats_event_fixed_param */ + /** unique id identifying the request, given in the request stats command */ + A_UINT32 request_id; + /** Number of radios*/ + A_UINT32 num_radio; + /** more_data will be set depending on the number of radios */ + A_UINT32 more_radio_events; /* * This TLV is followed by another TLV of array of bytes * size of(struct wmi_radio_link_stats); @@ -4913,72 +4638,72 @@ typedef struct { /* per rate statistics */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_rate_stats */ - /** rate information - * The rate-code is a 1-byte field in which:for given rate, nss and preamble - * b'7-b-6 indicate the preamble (0 OFDM, 1 CCK, 2, HT, 3 VHT) - * b'5-b'4 indicate the NSS (0 - 1x1, 1 - 2x2, 2 - 3x3) - * b'3-b'0 indicate the rate, which is indicated as follows: - * OFDM : 0: OFDM 48 Mbps - * 1: OFDM 24 Mbps - * 2: OFDM 12 Mbps - * 3: OFDM 6 Mbps - * 4: OFDM 54 Mbps - * 5: OFDM 36 Mbps - * 6: OFDM 18 Mbps - * 7: OFDM 9 Mbps - * CCK (pream == 1) - * 0: CCK 11 Mbps Long - * 1: CCK 5.5 Mbps Long - * 2: CCK 2 Mbps Long - * 3: CCK 1 Mbps Long - * 4: CCK 11 Mbps Short - * 5: CCK 5.5 Mbps Short - * 6: CCK 2 Mbps Short - * HT/VHT (pream == 2/3) - * 0..7: MCS0..MCS7 (HT) - * 0..9: MCS0..MCS9 (VHT) - */ - A_UINT32 rate; - /** units of 100 Kbps */ - A_UINT32 bitrate; - /** number of successfully transmitted data pkts (ACK rcvd) */ - A_UINT32 tx_mpdu; - /** number of received data pkts */ - A_UINT32 rx_mpdu; - /** number of data packet losses (no ACK) */ - A_UINT32 mpdu_lost; - /** total number of data pkt retries */ - A_UINT32 retries; - /** number of short data pkt retries */ - A_UINT32 retries_short; - /** number of long data pkt retries */ - A_UINT32 retries_long; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_rate_stats */ + /** rate information + * The rate-code is a 1-byte field in which:for given rate, nss and preamble + * b'7-b-6 indicate the preamble (0 OFDM, 1 CCK, 2, HT, 3 VHT) + * b'5-b'4 indicate the NSS (0 - 1x1, 1 - 2x2, 2 - 3x3) + * b'3-b'0 indicate the rate, which is indicated as follows: + * OFDM : 0: OFDM 48 Mbps + * 1: OFDM 24 Mbps + * 2: OFDM 12 Mbps + * 3: OFDM 6 Mbps + * 4: OFDM 54 Mbps + * 5: OFDM 36 Mbps + * 6: OFDM 18 Mbps + * 7: OFDM 9 Mbps + * CCK (pream == 1) + * 0: CCK 11 Mbps Long + * 1: CCK 5.5 Mbps Long + * 2: CCK 2 Mbps Long + * 3: CCK 1 Mbps Long + * 4: CCK 11 Mbps Short + * 5: CCK 5.5 Mbps Short + * 6: CCK 2 Mbps Short + * HT/VHT (pream == 2/3) + * 0..7: MCS0..MCS7 (HT) + * 0..9: MCS0..MCS9 (VHT) + */ + A_UINT32 rate; + /** units of 100 Kbps */ + A_UINT32 bitrate; + /** number of successfully transmitted data pkts (ACK rcvd) */ + A_UINT32 tx_mpdu; + /** number of received data pkts */ + A_UINT32 rx_mpdu; + /** number of data packet losses (no ACK) */ + A_UINT32 mpdu_lost; + /** total number of data pkt retries */ + A_UINT32 retries; + /** number of short data pkt retries */ + A_UINT32 retries_short; + /** number of long data pkt retries */ + A_UINT32 retries_long; } wmi_rate_stats; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_link_stats */ - /** peer type (AP, TDLS, GO etc.) enum wmi_peer_type*/ - A_UINT32 peer_type; - /** mac address */ - wmi_mac_addr peer_mac_address; - /** peer wmi_CAPABILITY_XXX */ - A_UINT32 capabilities; - /** number of rates */ - A_UINT32 num_rates; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_link_stats */ + /** peer type (AP, TDLS, GO etc.) enum wmi_peer_type*/ + A_UINT32 peer_type; + /** mac address */ + wmi_mac_addr peer_mac_address; + /** peer wmi_CAPABILITY_XXX */ + A_UINT32 capabilities; + /** number of rates */ + A_UINT32 num_rates; } wmi_peer_link_stats; /** PEER statistics (once started) reset and start afresh after each connection */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_stats_event_fixed_param */ - /** unique id identifying the request, given in the request stats command */ - A_UINT32 request_id; - /** number of peers accomidated in this particular event */ - A_UINT32 num_peers; - /** Indicates the fragment number */ - A_UINT32 peer_event_number; - /** Indicates if there are more peers which will be sent as seperate peer_stats event */ - A_UINT32 more_data; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_stats_event_fixed_param */ + /** unique id identifying the request, given in the request stats command */ + A_UINT32 request_id; + /** number of peers accomidated in this particular event */ + A_UINT32 num_peers; + /** Indicates the fragment number */ + A_UINT32 peer_event_number; + /** Indicates if there are more peers which will be sent as seperate peer_stats event */ + A_UINT32 more_data; /** * This TLV is followed by another TLV @@ -4989,95 +4714,91 @@ typedef struct { /* per access category statistics */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wmm_ac_stats */ - /** access category (VI, VO, BE, BK) enum wmi_traffic_ac*/ - A_UINT32 ac_type; - /** number of successfully transmitted unicast data pkts (ACK rcvd) */ - A_UINT32 tx_mpdu; - /** number of received unicast mpdus */ - A_UINT32 rx_mpdu; - /** number of succesfully transmitted multicast data packets */ - /** STA case: implies ACK received from AP for the unicast packet in which mcast pkt was sent */ - A_UINT32 tx_mcast; - /** number of received multicast data packets */ - A_UINT32 rx_mcast; - /** number of received unicast a-mpdus */ - A_UINT32 rx_ampdu; - /** number of transmitted unicast a-mpdus */ - A_UINT32 tx_ampdu; - /** number of data pkt losses (no ACK) */ - A_UINT32 mpdu_lost; - /** total number of data pkt retries */ - A_UINT32 retries; - /** number of short data pkt retries */ - A_UINT32 retries_short; - /** number of long data pkt retries */ - A_UINT32 retries_long; - /** data pkt min contention time (usecs) */ - A_UINT32 contention_time_min; - /** data pkt max contention time (usecs) */ - A_UINT32 contention_time_max; - /** data pkt avg contention time (usecs) */ - A_UINT32 contention_time_avg; - /** num of data pkts used for contention statistics */ - A_UINT32 contention_num_samples; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wmm_ac_stats */ + /** access category (VI, VO, BE, BK) enum wmi_traffic_ac*/ + A_UINT32 ac_type; + /** number of successfully transmitted unicast data pkts (ACK rcvd) */ + A_UINT32 tx_mpdu; + /** number of received unicast mpdus */ + A_UINT32 rx_mpdu; + /** number of succesfully transmitted multicast data packets */ + /** STA case: implies ACK received from AP for the unicast packet in which mcast pkt was sent */ + A_UINT32 tx_mcast; + /** number of received multicast data packets */ + A_UINT32 rx_mcast; + /** number of received unicast a-mpdus */ + A_UINT32 rx_ampdu; + /** number of transmitted unicast a-mpdus */ + A_UINT32 tx_ampdu; + /** number of data pkt losses (no ACK) */ + A_UINT32 mpdu_lost; + /** total number of data pkt retries */ + A_UINT32 retries; + /** number of short data pkt retries */ + A_UINT32 retries_short; + /** number of long data pkt retries */ + A_UINT32 retries_long; + /** data pkt min contention time (usecs) */ + A_UINT32 contention_time_min; + /** data pkt max contention time (usecs) */ + A_UINT32 contention_time_max; + /** data pkt avg contention time (usecs) */ + A_UINT32 contention_time_avg; + /** num of data pkts used for contention statistics */ + A_UINT32 contention_num_samples; } wmi_wmm_ac_stats; /* interface statistics */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_iface_link_stats */ - /** access point beacon received count from connected AP */ - A_UINT32 beacon_rx; - /** access point mgmt frames received count from connected AP (including Beacon) */ - A_UINT32 mgmt_rx; - /** action frames received count */ - A_UINT32 mgmt_action_rx; - /** action frames transmit count */ - A_UINT32 mgmt_action_tx; - /** access Point Beacon and Management frames RSSI (averaged) */ - A_UINT32 rssi_mgmt; - /** access Point Data Frames RSSI (averaged) from connected AP */ - A_UINT32 rssi_data; - /** access Point ACK RSSI (averaged) from connected AP */ - A_UINT32 rssi_ack; - /** number of peers */ - A_UINT32 num_peers; - /** Indicates how many peer_stats events will be sent depending on the num_peers. */ - A_UINT32 num_peer_events; - /** number of ac */ - A_UINT32 num_ac; - /** Roaming Stat */ - A_UINT32 roam_state; - /** - * Average Beacon spread offset is the averaged time delay between TBTT - * and beacon TSF */ - /** Upper 32 bits of averaged 64 bit beacon spread offset */ - A_UINT32 avg_bcn_spread_offset_high; - /** Lower 32 bits of averaged 64 bit beacon spread offset */ - A_UINT32 avg_bcn_spread_offset_low; - /** Takes value of 1 if AP leaks packets after sending an ACK for PM=1 otherwise 0 */ - A_UINT32 is_leaky_ap; - /** Average number of frames received from AP after receiving the ACK for a frame with PM=1 */ - A_UINT32 avg_rx_frms_leaked; - /** Rx leak watch window currently in force to minimize data loss - * because of leaky AP. Rx leak window is the - * time driver waits before shutting down the radio or switching the - * channel and after receiving an ACK for - * a data frame with PM bit set) */ - A_UINT32 rx_leak_window; - A_UINT32 tx_rts_succ_cnt; - A_UINT32 tx_rts_fail_cnt; - A_UINT32 tx_ppdu_succ_cnt; - A_UINT32 tx_ppdu_fail_cnt; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_iface_link_stats */ + /** access point beacon received count from connected AP */ + A_UINT32 beacon_rx; + /** access point mgmt frames received count from connected AP (including Beacon) */ + A_UINT32 mgmt_rx; + /** action frames received count */ + A_UINT32 mgmt_action_rx; + /** action frames transmit count */ + A_UINT32 mgmt_action_tx; + /** access Point Beacon and Management frames RSSI (averaged) */ + A_UINT32 rssi_mgmt; + /** access Point Data Frames RSSI (averaged) from connected AP */ + A_UINT32 rssi_data; + /** access Point ACK RSSI (averaged) from connected AP */ + A_UINT32 rssi_ack; + /** number of peers */ + A_UINT32 num_peers; + /** Indicates how many peer_stats events will be sent depending on the num_peers. */ + A_UINT32 num_peer_events; + /** number of ac */ + A_UINT32 num_ac; + /** Roaming Stat */ + A_UINT32 roam_state; + /** Average Beacon spread offset is the averaged time delay between TBTT and beacon TSF */ + /** Upper 32 bits of averaged 64 bit beacon spread offset */ + A_UINT32 avg_bcn_spread_offset_high; + /** Lower 32 bits of averaged 64 bit beacon spread offset */ + A_UINT32 avg_bcn_spread_offset_low; + /** Takes value of 1 if AP leaks packets after sending an ACK for PM=1 otherwise 0 */ + A_UINT32 is_leaky_ap; + /** Average number of frames received from AP after receiving the ACK for a frame with PM=1 */ + A_UINT32 avg_rx_frms_leaked; + /** Rx leak watch window currently in force to minimize data loss because of leaky AP. Rx leak window is the + time driver waits before shutting down the radio or switching the channel and after receiving an ACK for + a data frame with PM bit set) */ + A_UINT32 rx_leak_window; + A_UINT32 tx_rts_succ_cnt; + A_UINT32 tx_rts_fail_cnt; + A_UINT32 tx_ppdu_succ_cnt; + A_UINT32 tx_ppdu_fail_cnt; } wmi_iface_link_stats; /** Interface statistics (once started) reset and start afresh after each connection */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_iface_link_stats_event_fixed_param */ - /** unique id identifying the request, given in the request stats command */ - A_UINT32 request_id; - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_iface_link_stats_event_fixed_param */ + /** unique id identifying the request, given in the request stats command */ + A_UINT32 request_id; + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; /* * This TLV is followed by another TLV * wmi_iface_link_stats iface_link_stats; @@ -5087,88 +4808,72 @@ typedef struct { /** Suspend option */ enum { - WMI_PDEV_SUSPEND, /* suspend */ - WMI_PDEV_SUSPEND_AND_DISABLE_INTR, /* suspend and disable all interrupts */ + WMI_PDEV_SUSPEND, /* suspend */ + WMI_PDEV_SUSPEND_AND_DISABLE_INTR, /* suspend and disable all interrupts */ }; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_suspend_cmd_fixed_param */ - /* suspend option sent to target */ - /* - * pdev_id for identifying the MAC, See macros - * starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - A_UINT32 suspend_opt; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_suspend_cmd_fixed_param */ + /* suspend option sent to target */ + A_UINT32 pdev_id; /** pdev_id for identifying the MAC, See macros starting with WMI_PDEV_ID_ for values. */ + A_UINT32 suspend_opt; } wmi_pdev_suspend_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_resume_cmd_fixed_param */ - /* - * pdev_id for identifying the MAC, See macros - * starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_resume_cmd_fixed_param */ + A_UINT32 pdev_id; /** pdev_id for identifying the MAC, See macros starting with WMI_PDEV_ID_ for values. */ } wmi_pdev_resume_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_rate_stats_event_fixed_param, */ - A_UINT32 num_vdev_stats; /* number of vdevs */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_rate_stats_event_fixed_param, */ + A_UINT32 num_vdev_stats; /* number of vdevs */ } wmi_vdev_rate_stats_event_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len, tag equals WMITLV_TAG_STRUC_wmi_vdev_rate_ht_info */ - A_UINT32 vdevid; /* Id of the wlan vdev */ - A_UINT32 tx_nss; /* Bit 28 of tx_rate_kbps has this info - based on last data packet transmitted */ - A_UINT32 rx_nss; /* Bit 24 of rx_rate_kbps - same as above */ - A_UINT32 tx_preamble; /* Bits 30-29 from tx_rate_kbps */ - A_UINT32 rx_preamble; /* Bits 26-25 from rx_rate_kbps */ + A_UINT32 tlv_header; /* TLV tag and len, tag equals WMITLV_TAG_STRUC_wmi_vdev_rate_ht_info*/ + A_UINT32 vdevid; /* Id of the wlan vdev*/ + A_UINT32 tx_nss; /* Bit 28 of tx_rate_kbps has this info - based on last data packet transmitted*/ + A_UINT32 rx_nss; /* Bit 24 of rx_rate_kbps - same as above*/ + A_UINT32 tx_preamble; /* Bits 30-29 from tx_rate_kbps */ + A_UINT32 rx_preamble; /* Bits 26-25 from rx_rate_kbps */ } wmi_vdev_rate_ht_info; typedef struct { - /** - * TLV tag and len, tag equals - * WMITLV_TAG_STRUC_wmi_rx_aggr_failure_event_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 num_failure_info; /* How many holes on rx aggregation */ + A_UINT32 tlv_header; /* TLV tag and len, tag equals WMITLV_TAG_STRUC_wmi_rx_aggr_failure_event_fixed_param */ + A_UINT32 num_failure_info; /* How many holes on rx aggregation */ } wmi_rx_aggr_failure_event_fixed_param; typedef struct { - /** - * TLV tag and len, tag equals - * WMITLV_wmi_rx_aggr_failure_info - */ - A_UINT32 tlv_header; - A_UINT32 start_seq; /* start sequence number of the hole */ - A_UINT32 end_seq; /* end sequence number of the hole */ + A_UINT32 tlv_header; /* TLV tag and len, tag equals WMITLV_wmi_rx_aggr_failure_info */ + A_UINT32 start_seq; /* start sequence number of the hole */ + A_UINT32 end_seq; /* end sequence number of the hole */ } wmi_rx_aggr_failure_info; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_stats_event_fixed_param */ - wmi_stats_id stats_id; - /** number of pdev stats event structures (wmi_pdev_stats) 0 or 1 */ - A_UINT32 num_pdev_stats; - /** number of vdev stats event structures (wmi_vdev_stats) 0 or max vdevs */ - A_UINT32 num_vdev_stats; - /** number of peer stats event structures (wmi_peer_stats) 0 or max peers */ - A_UINT32 num_peer_stats; - A_UINT32 num_bcnflt_stats; - /** number of chan stats event structures (wmi_chan_stats) 0 to MAX MCC CHANS */ - A_UINT32 num_chan_stats; - /** number of MIB stats event structures (wmi_mib_stats) */ - A_UINT32 num_mib_stats; - /* This TLV is followed by another TLV of array of bytes - * A_UINT8 data[]; - * This data array contains - * num_pdev_stats * size of(struct wmi_pdev_stats) - * num_vdev_stats * size of(struct wmi_vdev_stats) - * num_peer_stats * size of(struct wmi_peer_stats) - * num_bcnflt_stats * size_of() - * num_chan_stats * size of(struct wmi_chan_stats) - * num_mib_stats * size of(struct wmi_mib_stats) - * - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_stats_event_fixed_param */ + wmi_stats_id stats_id; + /** number of pdev stats event structures (wmi_pdev_stats) 0 or 1 */ + A_UINT32 num_pdev_stats; + /** number of vdev stats event structures (wmi_vdev_stats) 0 or max vdevs */ + A_UINT32 num_vdev_stats; + /** number of peer stats event structures (wmi_peer_stats) 0 or max peers */ + A_UINT32 num_peer_stats; + A_UINT32 num_bcnflt_stats; + /** number of chan stats event structures (wmi_chan_stats) 0 to MAX MCC CHANS */ + A_UINT32 num_chan_stats; + /** number of MIB stats event structures (wmi_mib_stats) */ + A_UINT32 num_mib_stats; +/* This TLV is followed by another TLV of array of bytes + * A_UINT8 data[]; + * This data array contains + * num_pdev_stats * size of(struct wmi_pdev_stats) + * num_vdev_stats * size of(struct wmi_vdev_stats) + * num_peer_stats * size of(struct wmi_peer_stats) + * num_bcnflt_stats * size_of() + * num_chan_stats * size of(struct wmi_chan_stats) + * num_mib_stats * size of(struct wmi_mib_stats) + * + */ } wmi_stats_event_fixed_param; /* WLAN channel CCA stats bitmap */ @@ -5259,14 +4964,14 @@ typedef struct { #define WLAN_STATS_RX_DISORDER_CNT_SHIFT 4 #define WLAN_STATS_RX_DISORDER_CNT_MASK 0x00000010 -#define WLAN_STATS_RX_RETRY_CNT_SHIFT 5 -#define WLAN_STATS_RX_RETRY_CNT_MASK 0x00000020 +#define WLAN_STATS_RX_MPDU_RETRY_CNT_SHIFT 5 +#define WLAN_STATS_RX_MPDU_RETRY_CNT_MASK 0x00000020 -#define WLAN_STATS_RX_DUP_CNT_SHIFT 6 -#define WLAN_STATS_RX_DUP_CNT_MASK 0x00000040 +#define WLAN_STATS_RX_MPDU_DUP_CNT_SHIFT 6 +#define WLAN_STATS_RX_MPDU_DUP_CNT_MASK 0x00000040 -#define WLAN_STATS_RX_DISCARD_CNT_SHIFT 7 -#define WLAN_STATS_RX_DISCARD_CNT_MASK 0x00000080 +#define WLAN_STATS_RX_MPDU_DISCARD_CNT_SHIFT 7 +#define WLAN_STATS_RX_MPDU_DISCARD_CNT_MASK 0x00000080 #define WLAN_STATS_RX_MPDU_AGGR_SHIFT 8 #define WLAN_STATS_RX_MPDU_AGGR_MASK 0x00000100 @@ -5286,308 +4991,385 @@ typedef struct { #define WLAN_STATS_RX_OTH_MGMTS_SHIFT 13 #define WLAN_STATS_RX_OTH_MGMTS_MASK 0x00002000 -typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_chan_cca_stats */ - A_UINT32 vdev_id; - /** Percentage of idle time, no TX, no RX, no interference */ - A_UINT32 idle_time; - /** Percentage of time transmitting packets */ - A_UINT32 tx_time; - /** Percentage of time receiving packets in current BSSs */ - A_UINT32 rx_in_bss_time; - /** Percentage of time receiving packets not in current BSSs */ - A_UINT32 rx_out_bss_time; - /** Percentage of time interference detected. */ - A_UINT32 rx_busy_time; - /** Percentage of time receiving packets with errors - * or packets flagged as retransmission or seqnum discontinued. */ - A_UINT32 rx_in_bad_cond_time; - /** Percentage of time the device transmitted packets that haven't been ACKed. */ - A_UINT32 tx_in_bad_cond_time; - /** Percentage of time the chip is unable to work in normal conditions. */ - A_UINT32 wlan_not_avail_time; +typedef struct +{ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_chan_cca_stats */ + A_UINT32 vdev_id; + /** Percentage of idle time, no TX, no RX, no interference */ + A_UINT32 idle_time; + /** Percentage of time transmitting packets */ + A_UINT32 tx_time; + /** Percentage of time receiving packets in current BSSs */ + A_UINT32 rx_in_bss_time; + /** Percentage of time receiving packets not in current BSSs */ + A_UINT32 rx_out_bss_time; + /** Percentage of time interference detected. */ + A_UINT32 rx_busy_time; + /** Percentage of time receiving packets with errors + * or packets flagged as retransmission or seqnum discontinued. */ + A_UINT32 rx_in_bad_cond_time; + /** Percentage of time the device transmitted packets that haven't been ACKed. */ + A_UINT32 tx_in_bad_cond_time; + /** Percentage of time the chip is unable to work in normal conditions. */ + A_UINT32 wlan_not_avail_time; } wmi_chan_cca_stats; /** Thresholds of cca stats, stands for percentages of stats variation. * Check wmi_chan_cca_stats for each stats's meaning. */ -typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_chan_cca_stats_thresh */ - A_UINT32 idle_time; /* units = percent */ - A_UINT32 tx_time; /* units = percent */ - A_UINT32 rx_in_bss_time; /* units = percent */ - A_UINT32 rx_out_bss_time; /* units = percent */ - A_UINT32 rx_busy_time; /* units = percent */ - A_UINT32 rx_in_bad_cond_time; /* units = percent */ - A_UINT32 tx_in_bad_cond_time; /* units = percent */ - A_UINT32 wlan_not_avail_time; /* units = percent */ +typedef struct +{ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_chan_cca_stats_thresh */ + A_UINT32 idle_time; /* units = percent */ + A_UINT32 tx_time; /* units = percent */ + A_UINT32 rx_in_bss_time; /* units = percent */ + A_UINT32 rx_out_bss_time; /* units = percent */ + A_UINT32 rx_busy_time; /* units = percent */ + A_UINT32 rx_in_bad_cond_time; /* units = percent */ + A_UINT32 tx_in_bad_cond_time; /* units = percent */ + A_UINT32 wlan_not_avail_time; /* units = percent */ } wmi_chan_cca_stats_thresh; -typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_signal_stats */ - A_UINT32 vdev_id; - A_UINT32 peer_id; - /** per chain SNR in current bss, units are dB */ - A_INT32 per_chain_snr[WMI_MAX_CHAINS]; - /** per chain background noise, units are dBm */ - A_INT32 per_chain_nf[WMI_MAX_CHAINS]; +typedef struct +{ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_signal_stats */ + A_UINT32 vdev_id; + A_UINT32 peer_id; + /** per chain SNR in current bss, units are dB */ + A_INT32 per_chain_snr[WMI_MAX_CHAINS]; + /** per chain background noise, units are dBm */ + A_INT32 per_chain_nf[WMI_MAX_CHAINS]; } wmi_peer_signal_stats; /** Thresholds of signal stats, stand for percentage of stats variation. * Check wmi_peer_signal_stats for each stats's meaning. */ -typedef struct { - /** - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_signal_stats_thresh - */ - A_UINT32 tlv_header; - A_UINT32 per_chain_snr; /* units = dB */ - A_UINT32 per_chain_nf; /* units = dBm */ +typedef struct +{ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_signal_stats_thresh */ + A_UINT32 per_chain_snr; /* units = dB */ + A_UINT32 per_chain_nf; /* units = dBm */ } wmi_peer_signal_stats_thresh; -typedef struct { - /** - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_tx_stats - */ - A_UINT32 tlv_header; - /** Number of total TX MSDUs on MAC layer in the period */ - A_UINT32 tx_msdu_cnt; - /** Number of total TX MPDUs on MAC layer in the period */ - A_UINT32 tx_mpdu_cnt; - /** Number of total TX PPDUs on MAC layer in the period */ - A_UINT32 tx_ppdu_cnt; - /** Bytes of tx data on MAC layer in the period */ - A_UINT32 tx_bytes; - /** - * Number of TX MSDUs cancelled due to any reason in the period, - * such as WMM limitation/bandwidth limitation/radio congestion - */ - A_UINT32 tx_msdu_drop_cnt; - /** Bytes of dropped TX packets in the period */ - A_UINT32 tx_drop_bytes; - /** Number of unacked transmissions of MPDUs */ - A_UINT32 tx_mpdu_retry_cnt; - /** Number of MPDUs have not been ACKed despite retried */ - A_UINT32 tx_mpdu_fail_cnt; - /** Number of PPDUs which received no block ack */ - A_UINT32 tx_ppdu_fail_cnt; - /** - * This TLV is followed by TLVs below: : - * A_UINT32 tx_mpdu_aggr[tx_mpdu_aggr_array_len]; - * A_UINT32 tx_succ_mcs[tx_succ_mcs_array_len]; - * A_UINT32 tx_fail_mcs[tx_fail_mcs_array_len]; - * A_UINT32 tx_delay[tx_ppdu_delay_array_len]; - */ +typedef struct +{ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tx_stats */ + /** Number of total TX MSDUs on MAC layer in the period */ + A_UINT32 tx_msdu_cnt; + /** Number of total TX MPDUs on MAC layer in the period */ + A_UINT32 tx_mpdu_cnt; + /** Number of total TX PPDUs on MAC layer in the period */ + A_UINT32 tx_ppdu_cnt; + /** Bytes of tx data on MAC layer in the period */ + A_UINT32 tx_bytes; + /** Number of TX MSDUs cancelled due to any reason in the period, + * such as WMM limitation/bandwidth limitation/radio congestion */ + A_UINT32 tx_msdu_drop_cnt; + /** Bytes of dropped TX packets in the period */ + A_UINT32 tx_drop_bytes; + /** Number of unacked transmissions of MPDUs */ + A_UINT32 tx_mpdu_retry_cnt; + /** Number of MPDUs have not been ACKed despite retried */ + A_UINT32 tx_mpdu_fail_cnt; + /** Number of PPDUs which received no block ack */ + A_UINT32 tx_ppdu_fail_cnt; + /* This TLV is followed by TLVs below: : + * A_UINT32 tx_mpdu_aggr[tx_mpdu_aggr_array_len]; + * A_UINT32 tx_succ_mcs[tx_succ_mcs_array_len]; + * A_UINT32 tx_fail_mcs[tx_fail_mcs_array_len]; + * A_UINT32 tx_ppdu_delay[tx_ppdu_delay_array_len]; + */ } wmi_tx_stats; /** Thresholds of tx stats, stand for percentage of stats variation. * Check wmi_tx_stats for each stats's meaning. */ -typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tx_stats_thresh */ - A_UINT32 tx_msdu_cnt; - A_UINT32 tx_mpdu_cnt; - A_UINT32 tx_ppdu_cnt; - A_UINT32 tx_bytes; - A_UINT32 tx_msdu_drop_cnt; - A_UINT32 tx_drop_bytes; - A_UINT32 tx_mpdu_retry_cnt; - A_UINT32 tx_mpdu_fail_cnt; - A_UINT32 tx_ppdu_fail_cnt; - A_UINT32 tx_mpdu_aggr; - A_UINT32 tx_succ_mcs; - A_UINT32 tx_fail_mcs; - A_UINT32 tx_ppdu_delay; +typedef struct +{ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tx_stats_thresh */ + A_UINT32 tx_msdu_cnt; + A_UINT32 tx_mpdu_cnt; + A_UINT32 tx_ppdu_cnt; + A_UINT32 tx_bytes; + A_UINT32 tx_msdu_drop_cnt; + A_UINT32 tx_drop_bytes; + A_UINT32 tx_mpdu_retry_cnt; + A_UINT32 tx_mpdu_fail_cnt; + A_UINT32 tx_ppdu_fail_cnt; + A_UINT32 tx_mpdu_aggr; + A_UINT32 tx_succ_mcs; + A_UINT32 tx_fail_mcs; + A_UINT32 tx_ppdu_delay; } wmi_tx_stats_thresh; -typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_ac_tx_stats */ - A_UINT32 vdev_id; - A_UINT32 peer_id; - /* The TLVs for the 4 AC follows: - * wmi_tx_stats tx_stats[]; wmi_tx_stats for BE/BK/VI/VO - */ +typedef struct +{ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_ac_tx_stats */ + A_UINT32 vdev_id; + A_UINT32 peer_id; + /* The TLVs for the 4 AC follows: + * wmi_tx_stats tx_stats[]; wmi_tx_stats for BE/BK/VI/VO + */ } wmi_peer_ac_tx_stats; -typedef struct { - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_rx_stats */ - A_UINT32 tlv_header; - /** Number of RX MPDUs on MAC layer */ - A_UINT32 mac_rx_mpdu_cnt; - /** Bytes of RX packets on MAC layer */ - A_UINT32 mac_rx_bytes; - /** Number of RX PPDU on PHY layer */ - A_UINT32 phy_rx_ppdu_cnt; - /** Bytes of RX packets on PHY layer */ - A_UINT32 phy_rx_bytes; - /** Number of discontinuity in seqnum */ - A_UINT32 rx_disorder_cnt; - /** Number of RX MPDUs flagged as retransmissions */ - A_UINT32 rx_mpdu_retry_cnt; - /** Number of RX MPDUs identified as duplicates */ - A_UINT32 rx_mpdu_dup_cnt; - /** Number of RX MPDUs discarded */ - A_UINT32 rx_mpdu_discard_cnt; - /** - * This TLV is followed by TLVs below: - * A_UINT32 rx_mpdu_aggr[rx_mpdu_aggr_array_len]; - * A_UINT32 rx_mcs[rx_mcs_array_len]; - */ +typedef struct +{ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_rx_stats */ + /** Number of RX MPDUs on MAC layer */ + A_UINT32 mac_rx_mpdu_cnt; + /** Bytes of RX packets on MAC layer */ + A_UINT32 mac_rx_bytes; + /** Number of RX PPDU on PHY layer */ + A_UINT32 phy_rx_ppdu_cnt; + /** Bytes of RX packets on PHY layer */ + A_UINT32 phy_rx_bytes; + /** Number of discontinuity in seqnum */ + A_UINT32 rx_disorder_cnt; + /** Number of RX MPDUs flagged as retransmissions */ + A_UINT32 rx_mpdu_retry_cnt; + /** Number of RX MPDUs identified as duplicates */ + A_UINT32 rx_mpdu_dup_cnt; + /** Number of RX MPDUs discarded */ + A_UINT32 rx_mpdu_discard_cnt; + /* This TLV is followed by TLVs below: + * A_UINT32 rx_mpdu_aggr[rx_mpdu_aggr_array_len]; + * A_UINT32 rx_mcs[rx_mcs_array_len]; + */ } wmi_rx_stats; /** Thresholds of rx stats, stands for percentage of stats variation. * Check wmi_rx_stats for each stats's meaning. */ -typedef struct { - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_rx_stats_thresh */ - A_UINT32 tlv_header; - A_UINT32 mac_rx_mpdu_cnt; - A_UINT32 mac_rx_bytes; - A_UINT32 phy_rx_ppdu_cnt; - A_UINT32 phy_rx_bytes; - A_UINT32 rx_disorder_cnt; - A_UINT32 rx_mpdu_retry_cnt; - A_UINT32 rx_mpdu_dup_cnt; - A_UINT32 rx_mpdu_discard_cnt; - A_UINT32 rx_mpdu_aggr; - A_UINT32 rx_mcs; - A_UINT32 sta_ps_inds; - A_UINT32 sta_ps_durs; - A_UINT32 rx_probe_reqs; - A_UINT32 rx_oth_mgmts; +typedef struct +{ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_rx_stats_thresh */ + A_UINT32 mac_rx_mpdu_cnt; + A_UINT32 mac_rx_bytes; + A_UINT32 phy_rx_ppdu_cnt; + A_UINT32 phy_rx_bytes; + A_UINT32 rx_disorder_cnt; + A_UINT32 rx_mpdu_retry_cnt; + A_UINT32 rx_mpdu_dup_cnt; + A_UINT32 rx_mpdu_discard_cnt; + A_UINT32 rx_mpdu_aggr; + A_UINT32 rx_mcs; + A_UINT32 sta_ps_inds; + A_UINT32 sta_ps_durs; + A_UINT32 rx_probe_reqs; + A_UINT32 rx_oth_mgmts; } wmi_rx_stats_thresh; -typedef struct { - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_ac_rx_stats */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 peer_id; - /** How many times STAs go to sleep */ - A_UINT32 sta_ps_inds; - /** Total sleep time of STAs, milliseconds units */ - A_UINT32 sta_ps_durs; - /** Number of probe requests received */ - A_UINT32 rx_probe_reqs; - /** - * Number of other management frames received, not including probe - * requests - */ - A_UINT32 rx_oth_mgmts; - /** - * The TLVs for the 4 AC follows: - * wmi_rx_stats rx_stats[]; wmi_rx_stats for BE/BK/VI/VO - */ +typedef struct +{ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_ac_rx_stats */ + A_UINT32 vdev_id; + A_UINT32 peer_id; + /** How many times STAs go to sleep */ + A_UINT32 sta_ps_inds; + /** Total sleep time of STAs, milliseconds units */ + A_UINT32 sta_ps_durs; + /** Number of probe requests received */ + A_UINT32 rx_probe_reqs; + /** Number of other management frames received, not including probe requests */ + A_UINT32 rx_oth_mgmts; + /* The TLVs for the 4 AC follows: + * wmi_rx_stats rx_stats[]; wmi_rx_stats for BE/BK/VI/VO + */ } wmi_peer_ac_rx_stats; typedef enum { - /** Periodic timer timed out, based on the period specified - * by WMI_PDEV_PARAM_STATS_OBSERVATION_PERIOD - */ - TRIGGER_COND_ID_TIMER_TIMED_OUT = 0x1, - /** Any of the (enabled) stats thresholds specified - * in the WMI_PDEV_SET_STATS_THRESHOLD_CMD message is exceeded - * within the current stats period. - */ - TRIGGER_COND_ID_THRESH_EXCEEDED = 0x2, - /** In Response to the one-time wlan stats request of - * WMI_REQUEST_WLAN_STATS_CMDID from host. - */ - TRIGGER_COND_ID_ONE_TIME_REQUEST = 0x3, + /** Periodic timer timed out, based on the period specified + * by WMI_PDEV_PARAM_STATS_OBSERVATION_PERIOD + */ + TRIGGER_COND_ID_TIMER_TIMED_OUT = 0x1, + /** Any of the (enabled) stats thresholds specified + * in the WMI_PDEV_SET_STATS_THRESHOLD_CMD message is exceeded + * within the current stats period. + */ + TRIGGER_COND_ID_THRESH_EXCEEDED = 0x2, + /** In Response to the one-time wlan stats request of + * WMI_REQUEST_WLAN_STATS_CMDID from host. + */ + TRIGGER_COND_ID_ONE_TIME_REQUEST = 0x3, } wmi_report_stats_event_trigger_cond_id; typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_report_stats_event_fixed_param */ - /** Indicate what triggered this event, check wmi_report_stats_event_trigger_cond_id for details */ - A_UINT32 trigger_cond_id; - /** Bitmap to indicate changed channel CCA stats which exceeded the thresholds */ - A_UINT32 cca_chgd_bitmap; - /** Bitmap to indicate changed peer signal stats which exceeded the thresholds */ - A_UINT32 sig_chgd_bitmap; - /** Bitmap to indicate changed TX counters which exceeded the thresholds */ - A_UINT32 tx_chgd_bitmap; - /** Bitmap to indicate changed RX counters which exceeded the thresholds */ - A_UINT32 rx_chgd_bitmap; - /** number of per channel CCA stats structures (wmi_chan_cca_stats), 0 to max vdevs*/ - A_UINT32 num_chan_cca_stats; - /** number of per peer signal stats structures (wmi_peer_signal_stats), 0 to max peers*/ - A_UINT32 num_peer_signal_stats; - /** number of per peer ac TX stats structures (wmi_peer_ac_tx_stats), 0 to max peers*/ - A_UINT32 num_peer_ac_tx_stats; - /** - * Array length of tx_mpdu_aggr[] which is histogram of MPDU aggregation size(1 to 7 and 8+). - * The array indicates number of MPDUs sent on specified aggregation size - * (per number of MPDUs per AMPDUs / 1 to 7 and 8+). - * Array length can be set per WMI_PDEV_PARAM_TX_MPDU_AGGR_ARRAY_LEN - */ - A_UINT32 tx_mpdu_aggr_array_len; - /** - * Array length of tx_succ_mcs[] which is histogram of encoding rate. - * The array indicates number of acked PPDUs sent at a specific rate - */ - A_UINT32 tx_succ_mcs_array_len; - /** - * Array length of tx_fail_mcs[] which is histogram of encoding rate. - * The array indicates number of unacked PPDUs sent at a specific rate - */ - A_UINT32 tx_fail_mcs_array_len; - /** - * tx_ppdu_delay[]is a histogram of delays on MAC layer. - * The array counts numbers of PPDUs encountering different TX time delays. - * TX delay here means time interval between the time a PPDU is queued - * to the MAC HW for transmission and the time the lower layers of - * tx FW return a tx status. - * - * The bin size tx_ppdu_delay_bin_size_ms specifies how many - * milliseconds. Each bin of the tx_ppdu_delay histogram represents. - * By default the bin size is 10ms. - * tx_ppdu_delay[0] -> delays between 0-9 ms - * tx_ppdu_delay[1] -> delays between 10-19 ms - * ... - * tx_ppdu_delay[9] -> delays between 90-99 ms - * tx_ppdu_delay[10] -> delays >= 100 ms - * Bin size can be set per WMI_PDEV_PARAM_TX_PPDU_DELAY_BIN_SIZE_MS. - */ - A_UINT32 tx_ppdu_delay_bin_size_ms; - /** Array length of tx_ppdu_delay[]. It can be set per WMI_PDEV_PARAM_TX_PPDU_DELAY_ARRAY_LEN */ - A_UINT32 tx_ppdu_delay_array_len; - /** number of per peer ac RX stats structures (wmi_peer_ac_rx_stats), 0 to max peers*/ - A_UINT32 num_peer_ac_rx_stats; - /** - * Array length of rx_mpdu_aggr[] which is histogram of MPDU aggregation size(1 to 7 and 8+). - * It can be set per WMI_PDEV_PARAM_RX_MPDU_AGGR_ARRAY_LEN - */ - A_UINT32 rx_mpdu_aggr_array_len; - /** - * Array size of rx_mcs[] which is histogram of encoding rate. - * The array indicates number of PPDUs received at a specific rate - */ - A_UINT32 rx_mcs_array_len; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_report_stats_event_fixed_param */ + /** Indicate what triggered this event, check wmi_report_stats_event_trigger_cond_id for details */ + A_UINT32 trigger_cond_id; + /** Bitmap to indicate changed channel CCA stats which exceeded the thresholds */ + A_UINT32 cca_chgd_bitmap; + /** Bitmap to indicate changed peer signal stats which exceeded the thresholds */ + A_UINT32 sig_chgd_bitmap; + /** Bitmap to indicate changed TX counters which exceeded the thresholds */ + A_UINT32 tx_chgd_bitmap; + /** Bitmap to indicate changed RX counters which exceeded the thresholds */ + A_UINT32 rx_chgd_bitmap; + /** number of per channel CCA stats structures (wmi_chan_cca_stats), 0 to max vdevs*/ + A_UINT32 num_chan_cca_stats; + /** number of per peer signal stats structures (wmi_peer_signal_stats), 0 to max peers*/ + A_UINT32 num_peer_signal_stats; + /** number of per peer ac TX stats structures (wmi_peer_ac_tx_stats), 0 to max peers*/ + A_UINT32 num_peer_ac_tx_stats; + /** Array length of tx_mpdu_aggr[] which is histogram of MPDU aggregation size(1 to 7 and 8+). + * The array indicates number of MPDUs sent on specified aggregation size + * (per number of MPDUs per AMPDUs / 1 to 7 and 8+). + * Array length can be set per WMI_PDEV_PARAM_TX_MPDU_AGGR_ARRAY_LEN */ + A_UINT32 tx_mpdu_aggr_array_len; + /** Array length of tx_succ_mcs[] which is histogram of encoding rate. + * The array indicates number of acked PPDUs sent at a specific rate */ + A_UINT32 tx_succ_mcs_array_len; + /** Array length of tx_fail_mcs[] which is histogram of encoding rate. + * The array indicates number of unacked PPDUs sent at a specific rate */ + A_UINT32 tx_fail_mcs_array_len; + /** tx_ppdu_delay[]is a histogram of delays on MAC layer. + * The array counts numbers of PPDUs encountering different TX time delays. + * TX delay here means time interval between the time a PPDU is queued + * to the MAC HW for transmission and the time the lower layers of + * tx FW return a tx status. + * + * The bin size tx_ppdu_delay_bin_size_ms specifies how many milliseconds + * each bin of the tx_ppdu_delay histogram represents. + * By default the bin size is 10ms. + * tx_ppdu_delay[0] -> delays between 0-9 ms + * tx_ppdu_delay[1] -> delays between 10-19 ms + * ... + * tx_ppdu_delay[9] -> delays between 90-99 ms + * tx_ppdu_delay[10] -> delays >= 100 ms + * Bin size can be set per WMI_PDEV_PARAM_TX_PPDU_DELAY_BIN_SIZE_MS. + */ + A_UINT32 tx_ppdu_delay_bin_size_ms; + /** Array length of tx_ppdu_delay[]. It can be set per WMI_PDEV_PARAM_TX_PPDU_DELAY_ARRAY_LEN */ + A_UINT32 tx_ppdu_delay_array_len; + /** number of per peer ac RX stats structures (wmi_peer_ac_rx_stats), 0 to max peers*/ + A_UINT32 num_peer_ac_rx_stats; + /** Array length of rx_mpdu_aggr[] which is histogram of MPDU aggregation size(1 to 7 and 8+). + * It can be set per WMI_PDEV_PARAM_RX_MPDU_AGGR_ARRAY_LEN */ + A_UINT32 rx_mpdu_aggr_array_len; + /** Array size of rx_mcs[] which is histogram of encoding rate. + * The array indicates number of PPDUs received at a specific rate */ + A_UINT32 rx_mcs_array_len; - /** - * This TLV is followed by TLVs below: - * wmi_chan_cca_stats chan_cca_stats[]; Array length is specified by num_chan_cca_stats - * wmi_peer_signal_stats peer_signal_stats[]; Array length is specified by num_peer_signal_stats - * wmi_peer_ac_tx_stats peer_ac_tx_stats[]; Array length is specified by num_peer_ac_tx_stats - * wmi_tx_stats tx_stats[][]; Array length is num_peer_ac_tx_stats * WLAN_MAX_AC, array index is (peer_index * WLAN_MAX_AC + ac_index) - * A_UINT32 tx_mpdu_aggr[][][]; Array length is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_mpdu_aggr_array_len, - * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_mpdu_aggr_array_len + A-MPDU aggregation index - * A_UINT32 tx_succ_mcs[][][]; Array length is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_succ_mcs_array_len, - * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_succ_mcs_array_len + MCS index - * A_UINT32 tx_fail_mcs[][][]; Array length is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_fail_mcs_array_len, - * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_fail_mcs_array_len + MCS index - * A_UINT32 tx_ppdu_delay[][][]; Array length is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_ppdu_delay_array_len, - * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_ppdu_delay_array_len + tx delay index - * wmi_peer_ac_rx_stats peer_ac_rx_stats[]; Array length is specified by num_peer_ac_rx_stats - * wmi_rx_stats rx_stats[][]; Array length is num_peer_ac_rx_stats * WLAN_MAX_AC, array index is (peer_index * WLAN_MAX_AC + ac_index) - * A_UINT32 rx_mpdu_aggr[][][]; Array length is num_peer_ac_rx_stats * WLAN_MAX_AC * rx_mpdu_aggr_array_len, - * array index is (peer_index * WLAN_MAX_AC + ac_index) * rx_mpdu_aggr_array_len + A-MPDU aggregation index - * A_UINT32 rx_mcs[][][]; Array length is (num_peer_ac_rx_stats * WLAN_MAX_AC) * rx_mcs_array_len, - * array index is (peer_index * WLAN_MAX_AC + ac_index) * rx_mcs_array_len + MCS index - */ + /** + * This TLV is followed by TLVs below: + * wmi_chan_cca_stats chan_cca_stats[]; Array length is specified by num_chan_cca_stats + * wmi_peer_signal_stats peer_signal_stats[]; Array length is specified by num_peer_signal_stats + * wmi_peer_ac_tx_stats peer_ac_tx_stats[]; Array length is specified by num_peer_ac_tx_stats + * wmi_tx_stats tx_stats[][]; Array length is num_peer_ac_tx_stats * WLAN_MAX_AC, array index is (peer_index * WLAN_MAX_AC + ac_index) + * A_UINT32 tx_mpdu_aggr[][][]; Array length is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_mpdu_aggr_array_len, + * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_mpdu_aggr_array_len + A-MPDU aggregation index + * A_UINT32 tx_succ_mcs[][][]; Array length is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_succ_mcs_array_len, + * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_succ_mcs_array_len + MCS index + * A_UINT32 tx_fail_mcs[][][]; Array length is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_fail_mcs_array_len, + * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_fail_mcs_array_len + MCS index + * A_UINT32 tx_ppdu_delay[][][]; Array length is num_peer_ac_tx_stats * WLAN_MAX_AC * tx_ppdu_delay_array_len, + * array index is (peer_index * WLAN_MAX_AC + ac_index) * tx_ppdu_delay_array_len + tx delay index + * wmi_peer_ac_rx_stats peer_ac_rx_stats[]; Array length is specified by num_peer_ac_rx_stats + * wmi_rx_stats rx_stats[][]; Array length is num_peer_ac_rx_stats * WLAN_MAX_AC, array index is (peer_index * WLAN_MAX_AC + ac_index) + * A_UINT32 rx_mpdu_aggr[][][]; Array length is num_peer_ac_rx_stats * WLAN_MAX_AC * rx_mpdu_aggr_array_len, + * array index is (peer_index * WLAN_MAX_AC + ac_index) * rx_mpdu_aggr_array_len + A-MPDU aggregation index + * A_UINT32 rx_mcs[][][]; Array length is (num_peer_ac_rx_stats * WLAN_MAX_AC) * rx_mcs_array_len, + * array index is (peer_index * WLAN_MAX_AC + ac_index) * rx_mcs_array_len + MCS index + **/ } wmi_report_stats_event_fixed_param; +typedef struct { + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_peer_stats_info */ + A_UINT32 tlv_header; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** bytes (size of MPDUs) transmitted to this peer */ + struct { + /* lower 32 bits of the tx_bytes value */ + A_UINT32 low_32; + /* upper 32 bits of the tx_bytes value */ + A_UINT32 high_32; + } tx_bytes; + /** packets (MSDUs) transmitted to this peer */ + struct { + /* lower 32 bits of the tx_packets value */ + A_UINT32 low_32; + /* upper 32 bits of the tx_packets value */ + A_UINT32 high_32; + } tx_packets; + /** bytes (size of MPDUs) received from this peer */ + struct { + /* lower 32 bits of the rx_bytes value */ + A_UINT32 low_32; + /* upper 32 bits of the rx_bytes value */ + A_UINT32 high_32; + } rx_bytes; + /** packets (MSDUs) received from this peer */ + struct { + /* lower 32 bits of the rx_packets value */ + A_UINT32 low_32; + /* upper 32 bits of the rx_packets value */ + A_UINT32 high_32; + } rx_packets; + /** cumulative retry counts (MPDUs) */ + A_UINT32 tx_retries; + /** number of failed transmissions (MPDUs) (retries exceeded, no ACK) */ + A_UINT32 tx_failed; + /** rate information, it is output of WMI_ASSEMBLE_RATECODE_V1 + * (in format of 0x1000RRRR) + * The rate-code is a 4-bytes field in which, + * for given rate, nss and preamble + * + * b'31-b'29 unused / reserved + * b'28 indicate the version of rate-code (1 = RATECODE_V1) + * b'27-b'11 unused / reserved + * b'10-b'8 indicate the preamble (0 OFDM, 1 CCK, 2 HT, 3 VHT) + * b'7-b'5 indicate the NSS (0 - 1x1, 1 - 2x2, 2 - 3x3, 3 - 4x4) + * b'4-b'0 indicate the rate, which is indicated as follows: + * OFDM : 0: OFDM 48 Mbps + * 1: OFDM 24 Mbps + * 2: OFDM 12 Mbps + * 3: OFDM 6 Mbps + * 4: OFDM 54 Mbps + * 5: OFDM 36 Mbps + * 6: OFDM 18 Mbps + * 7: OFDM 9 Mbps + * CCK (pream == 1) + * 0: CCK 11 Mbps Long + * 1: CCK 5.5 Mbps Long + * 2: CCK 2 Mbps Long + * 3: CCK 1 Mbps Long + * 4: CCK 11 Mbps Short + * 5: CCK 5.5 Mbps Short + * 6: CCK 2 Mbps Short + * HT/VHT (pream == 2/3) + * 0..7: MCS0..MCS7 (HT) + * 0..9: MCS0..MCS9 (11AC VHT) + * 0..11: MCS0..MCS11 (11AX VHT) + */ + /** rate-code of the last transmission */ + A_UINT32 last_tx_rate_code; + /** rate-code of the last received PPDU */ + A_UINT32 last_rx_rate_code; + /** bitrate of the last transmission, in units of kbps */ + A_UINT32 last_tx_bitrate_kbps; + /** bitrate of the last received PPDU, in units of kbps */ + A_UINT32 last_rx_bitrate_kbps; + /** combined RSSI of the last received PPDU, in unit of dBm */ + A_INT32 peer_rssi; +} wmi_peer_stats_info; + +typedef struct { + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_peer_stats_info_event_fixed_param */ + A_UINT32 tlv_header; + /** VDEV to which the peers belong to */ + A_UINT32 vdev_id; + /** number of peers in peer_stats_info[] */ + A_UINT32 num_peers; + /** flag to indicate if there are more peers which will + * be sent a following seperate peer_stats_info event */ + A_UINT32 more_data; + /* This TLV is followed by another TLV of array of structs + * wmi_peer_stats_info peer_stats_info[]; + */ +} wmi_peer_stats_info_event_fixed_param; /** * PDEV statistics @@ -5595,22 +5377,22 @@ typedef struct { * add all PDEV stats here */ typedef struct { - /** Channel noise floor */ - A_INT32 chan_nf; - /** TX frame count */ - A_UINT32 tx_frame_count; - /** RX frame count */ - A_UINT32 rx_frame_count; - /** rx clear count */ - A_UINT32 rx_clear_count; - /** cycle count */ - A_UINT32 cycle_count; - /** Phy error count */ - A_UINT32 phy_err_count; - /** Channel Tx Power */ - A_UINT32 chan_tx_pwr; - /** WAL dbg stats */ - struct wlan_dbg_stats pdev_stats; + /** Channel noise floor */ + A_INT32 chan_nf; + /** TX frame count */ + A_UINT32 tx_frame_count; + /** RX frame count */ + A_UINT32 rx_frame_count; + /** rx clear count */ + A_UINT32 rx_clear_count; + /** cycle count */ + A_UINT32 cycle_count; + /** Phy error count */ + A_UINT32 phy_err_count; + /** Channel Tx Power */ + A_UINT32 chan_tx_pwr; + /** WAL dbg stats */ + struct wlan_dbg_stats pdev_stats; } wmi_pdev_stats; @@ -5621,26 +5403,26 @@ typedef struct { */ typedef struct { - A_INT32 bcn_snr; - A_INT32 dat_snr; + A_INT32 bcn_snr; + A_INT32 dat_snr; } wmi_snr_info; typedef struct { - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - wmi_snr_info vdev_snr; - A_UINT32 tx_frm_cnt[WLAN_MAX_AC]; /* Total number of packets(per AC) that were successfully transmitted(with and without retries, including multi-cast, broadcast) */ - A_UINT32 rx_frm_cnt; /* Total number of packets that were successfully received (after appropriate filter rules including multi-cast, broadcast) */ - A_UINT32 multiple_retry_cnt[WLAN_MAX_AC]; /*The number of MSDU packets and MMPDU frames per AC - that the 802.11 station successfully transmitted after more than one retransmission attempt */ - A_UINT32 fail_cnt[WLAN_MAX_AC]; /*Total number packets(per AC) failed to transmit */ - A_UINT32 rts_fail_cnt; /*Total number of RTS/CTS sequence failures for transmission of a packet */ - A_UINT32 rts_succ_cnt; /*Total number of RTS/CTS sequence success for transmission of a packet */ - A_UINT32 rx_err_cnt; /*The receive error count. HAL will provide the RxP FCS error global */ - A_UINT32 rx_discard_cnt; /* The sum of the receive error count and dropped-receive-buffer error count. (FCS error) */ - A_UINT32 ack_fail_cnt; /*Total number packets failed transmit because of no ACK from the remote entity */ - A_UINT32 tx_rate_history[MAX_TX_RATE_VALUES]; /*History of last ten transmit rate, in units of 500 kbit/sec */ - A_UINT32 bcn_rssi_history[MAX_RSSI_VALUES]; /*History of last ten Beacon rssi of the connected Bss */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + wmi_snr_info vdev_snr; + A_UINT32 tx_frm_cnt[WLAN_MAX_AC];/* Total number of packets(per AC) that were successfully transmitted(with and without retries, including multi-cast, broadcast) */ + A_UINT32 rx_frm_cnt;/* Total number of packets that were successfully received (after appropriate filter rules including multi-cast, broadcast)*/ + A_UINT32 multiple_retry_cnt[WLAN_MAX_AC];/*The number of MSDU packets and MMPDU frames per AC + that the 802.11 station successfully transmitted after more than one retransmission attempt*/ + A_UINT32 fail_cnt[WLAN_MAX_AC]; /*Total number packets(per AC) failed to transmit */ + A_UINT32 rts_fail_cnt;/*Total number of RTS/CTS sequence failures for transmission of a packet*/ + A_UINT32 rts_succ_cnt;/*Total number of RTS/CTS sequence success for transmission of a packet*/ + A_UINT32 rx_err_cnt;/*The receive error count. HAL will provide the RxP FCS error global */ + A_UINT32 rx_discard_cnt;/* The sum of the receive error count and dropped-receive-buffer error count. (FCS error)*/ + A_UINT32 ack_fail_cnt;/*Total number packets failed transmit because of no ACK from the remote entity*/ + A_UINT32 tx_rate_history[MAX_TX_RATE_VALUES];/*History of last ten transmit rate, in units of 500 kbit/sec*/ + A_UINT32 bcn_rssi_history[MAX_RSSI_VALUES];/*History of last ten Beacon rssi of the connected Bss*/ } wmi_vdev_stats; /** @@ -5651,158 +5433,136 @@ typedef struct { * */ typedef struct { - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /** rssi */ - A_UINT32 peer_rssi; - /** last tx data rate used for peer */ - A_UINT32 peer_tx_rate; - /** last rx data rate used for peer */ - A_UINT32 peer_rx_rate; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** rssi */ + A_UINT32 peer_rssi; + /** last tx data rate used for peer */ + A_UINT32 peer_tx_rate; + /** last rx data rate used for peer */ + A_UINT32 peer_rx_rate; } wmi_peer_stats; typedef struct { - /** Primary channel freq of the channel for which stats are sent */ - A_UINT32 chan_mhz; - /** Time spent on the channel */ - A_UINT32 sampling_period_us; - /** Aggregate duration over a sampling period for which channel activity was observed */ - A_UINT32 rx_clear_count; - /** Accumalation of the TX PPDU duration over a sampling period */ - A_UINT32 tx_duration_us; - /** Accumalation of the RX PPDU duration over a sampling period */ - A_UINT32 rx_duration_us; + /** Primary channel freq of the channel for which stats are sent */ + A_UINT32 chan_mhz; + /** Time spent on the channel */ + A_UINT32 sampling_period_us; + /** Aggregate duration over a sampling period for which channel activity was observed */ + A_UINT32 rx_clear_count; + /** Accumalation of the TX PPDU duration over a sampling period */ + A_UINT32 tx_duration_us; + /** Accumalation of the RX PPDU duration over a sampling period */ + A_UINT32 rx_duration_us; } wmi_chan_stats; typedef struct { - A_UINT32 tx_mpdu_grp_frag_cnt; /*dot11TransmittedFragmentCount */ - A_UINT32 tx_msdu_grp_frm_cnt; /*dot11GroupTransmittedFrameCount */ - A_UINT32 tx_msdu_fail_cnt; /*dot11FailedCount*/ - A_UINT32 rx_mpdu_frag_cnt; /*dot11ReceivedFragmentCount*/ - A_UINT32 rx_msdu_grp_frm_cnt; /*dot11GroupReceivedFrameCount*/ - A_UINT32 rx_mpdu_fcs_err; /*dot11FCSErrorCount*/ - A_UINT32 tx_msdu_frm_cnt; /*dot11TransmittedFrameCount*/ - A_UINT32 tx_msdu_retry_cnt; /*dot11RetryCount*/ - A_UINT32 rx_frm_dup_cnt; /*dot11FrameDuplicateCount */ - A_UINT32 tx_rts_success_cnt; /*dot11RTSSuccessCount*/ - A_UINT32 tx_rts_fail_cnt; /*dot11RTSFailureCount*/ - /*dot11QosTransmittedFragmentCount */ - A_UINT32 tx_Qos_mpdu_grp_frag_cnt; - A_UINT32 tx_Qos_msdu_fail_UP; /*dot11QosFailedCount */ - A_UINT32 tx_Qos_msdu_retry_UP; /*dot11QosRetryCount */ - A_UINT32 rx_Qos_frm_dup_cnt_UP; /*dot11QosFrameDuplicateCount*/ - A_UINT32 tx_Qos_rts_success_cnt_UP; /*dot11QosRTSSuccessCount*/ - A_UINT32 tx_Qos_rts_fail_cnt_UP; /*dot11QosRTSFailureCount*/ - A_UINT32 rx_Qos_mpdu_frag_cnt_UP; /*dot11QosReceivedFragmentCount*/ - A_UINT32 tx_Qos_msdu_frm_cnt_UP; /*dot11QosTransmittedFrameCount*/ - A_UINT32 rx_Qos_msdu_discard_cnt_UP; /*dot11QosDiscardedFrameCount*/ - A_UINT32 rx_Qos_mpdu_cnt; /*dot11QosMPDUsReceivedCount*/ - A_UINT32 rx_Qos_mpdu_retryBit_cnt; /*dot11QosRetriesReceivedCount*/ - /*dot11RSNAStatsRobustMgmtCCMPReplays */ - A_UINT32 rsna_Mgmt_discard_CCMP_replay_err_cnt; - A_UINT32 rsna_TKIP_icv_err_cnt; /*dot11RSNAStatsTKIPICVErrors*/ - A_UINT32 rsna_TKIP_replay_err_cnt; /*dot11RSNAStatsTKIPReplays*/ - /*dot11RSNAStatsCCMPDecryptErrors */ - A_UINT32 rsna_CCMP_decrypt_err_cnt; - A_UINT32 rsna_CCMP_replay_err_cnt; /*dot11RSNAStatsCCMPReplays*/ - A_UINT32 tx_ampdu_cnt; /*dot11TransmittedAMPDUCount*/ - /*dot11TransmittedMPDUsInAMPDUCount*/ - A_UINT32 tx_mpdu_cnt_in_ampdu; - /*dot11TransmittedOctetsInAMPDUCount*/ - union { - A_UINT64 counter; /* for use by target only */ - struct { - A_UINT32 low; - A_UINT32 high; - } upload; /* for use by host */ - } tx_octets_in_ampdu; - A_UINT32 rx_ampdu_cnt; /*dot11AMPDUReceivedCount*/ - A_UINT32 rx_mpdu_cnt_in_ampdu; /*dot11MPDUInReceivedAMPDUCount*/ - union { - A_UINT64 counter; /* for use by target only */ - struct { - A_UINT32 rx_octets_in_ampdu_low; - A_UINT32 rx_octets_in_ampdu_high; - } upload; /* for use by host */ - } rx_octets_in_ampdu; /*dot11ReceivedOctetsInAMPDUCount*/ - A_UINT32 reserved_1; - A_UINT32 reserved_2; - A_UINT32 reserved_3; - A_UINT32 reserved_4; + A_UINT32 tx_mpdu_grp_frag_cnt; /*dot11TransmittedFragmentCount */ + A_UINT32 tx_msdu_grp_frm_cnt; /*dot11GroupTransmittedFrameCount */ + A_UINT32 tx_msdu_fail_cnt; /*dot11FailedCount*/ + A_UINT32 rx_mpdu_frag_cnt; /*dot11ReceivedFragmentCount*/ + A_UINT32 rx_msdu_grp_frm_cnt; /*dot11GroupReceivedFrameCount*/ + A_UINT32 rx_mpdu_fcs_err; /*dot11FCSErrorCount*/ + A_UINT32 tx_msdu_frm_cnt; /*dot11TransmittedFrameCount*/ + A_UINT32 tx_msdu_retry_cnt; /*dot11RetryCount*/ + A_UINT32 rx_frm_dup_cnt; /*dot11FrameDuplicateCount */ + A_UINT32 tx_rts_success_cnt; /*dot11RTSSuccessCount*/ + A_UINT32 tx_rts_fail_cnt; /*dot11RTSFailureCount*/ + A_UINT32 tx_Qos_mpdu_grp_frag_cnt; /*dot11QosTransmittedFragmentCount */ + A_UINT32 tx_Qos_msdu_fail_UP; /*dot11QosFailedCount */ + A_UINT32 tx_Qos_msdu_retry_UP; /*dot11QosRetryCount */ + A_UINT32 rx_Qos_frm_dup_cnt_UP; /*dot11QosFrameDuplicateCount*/ + A_UINT32 tx_Qos_rts_success_cnt_UP; /*dot11QosRTSSuccessCount*/ + A_UINT32 tx_Qos_rts_fail_cnt_UP; /*dot11QosRTSFailureCount*/ + A_UINT32 rx_Qos_mpdu_frag_cnt_UP; /*dot11QosReceivedFragmentCount*/ + A_UINT32 tx_Qos_msdu_frm_cnt_UP; /*dot11QosTransmittedFrameCount*/ + A_UINT32 rx_Qos_msdu_discard_cnt_UP; /*dot11QosDiscardedFrameCount*/ + A_UINT32 rx_Qos_mpdu_cnt; /*dot11QosMPDUsReceivedCount*/ + A_UINT32 rx_Qos_mpdu_retryBit_cnt; /*dot11QosRetriesReceivedCount*/ + A_UINT32 rsna_Mgmt_discard_CCMP_replay_err_cnt; /*dot11RSNAStatsRobustMgmtCCMPReplays*/ + A_UINT32 rsna_TKIP_icv_err_cnt; /*dot11RSNAStatsTKIPICVErrors*/ + A_UINT32 rsna_TKIP_replay_err_cnt; /*dot11RSNAStatsTKIPReplays*/ + A_UINT32 rsna_CCMP_decrypt_err_cnt; /*dot11RSNAStatsCCMPDecryptErrors*/ + A_UINT32 rsna_CCMP_replay_err_cnt; /*dot11RSNAStatsCCMPReplays*/ + A_UINT32 tx_ampdu_cnt; /*dot11TransmittedAMPDUCount*/ + A_UINT32 tx_mpdu_cnt_in_ampdu; /*dot11TransmittedMPDUsInAMPDUCount*/ + union { + A_UINT64 counter; /* for use by target only */ + struct { + A_UINT32 low; + A_UINT32 high; + } upload; /* for use by host */ + } tx_octets_in_ampdu; /*dot11TransmittedOctetsInAMPDUCount*/ + A_UINT32 rx_ampdu_cnt; /*dot11AMPDUReceivedCount*/ + A_UINT32 rx_mpdu_cnt_in_ampdu; /*dot11MPDUInReceivedAMPDUCount*/ + union { + A_UINT64 counter; /* for use by target only */ + struct { + A_UINT32 rx_octets_in_ampdu_low; + A_UINT32 rx_octets_in_ampdu_high; + } upload; /* for use by host */ + } rx_octets_in_ampdu; /*dot11ReceivedOctetsInAMPDUCount*/ + A_UINT32 reserved_1; + A_UINT32 reserved_2; + A_UINT32 reserved_3; + A_UINT32 reserved_4; } wmi_mib_stats; typedef struct { - /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_rssi_stats */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_INT32 rssi_avg_beacon[WMI_MAX_CHAINS]; - A_INT32 rssi_avg_data[WMI_MAX_CHAINS]; - wmi_mac_addr peer_macaddr; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_rssi_stats */ + A_UINT32 vdev_id; + A_INT32 rssi_avg_beacon[WMI_MAX_CHAINS]; + A_INT32 rssi_avg_data[WMI_MAX_CHAINS]; + wmi_mac_addr peer_macaddr; } wmi_rssi_stats; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_per_chain_rssi_stats - */ - A_UINT32 tlv_header; - A_UINT32 num_per_chain_rssi_stats; - /* - * This TLV is followed by another TLV of array of structs: - * wmi_rssi_stats rssi_stats[num_per_chain_rssi_stats]; - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_per_chain_rssi_stats */ + A_UINT32 num_per_chain_rssi_stats; +/* This TLV is followed by another TLV of array of structs: + * wmi_rssi_stats rssi_stats[num_per_chain_rssi_stats]; + */ } wmi_per_chain_rssi_stats; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_create_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** VDEV type (AP,STA,IBSS,MONITOR) */ - A_UINT32 vdev_type; - /** VDEV subtype (P2PDEV, P2PCLI, P2PGO, BT3.0)*/ - A_UINT32 vdev_subtype; - /** VDEV MAC address */ - wmi_mac_addr vdev_macaddr; - /** Number of configured txrx streams */ - A_UINT32 num_cfg_txrx_streams; - /* - * pdev_id for identifying the MAC, - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - /* - * This TLV is followed by another TLV of array of structures - * wmi_vdev_txrx_streams cfg_txrx_streams[]; - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_create_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** VDEV type (AP,STA,IBSS,MONITOR) */ + A_UINT32 vdev_type; + /** VDEV subtype (P2PDEV, P2PCLI, P2PGO, BT3.0)*/ + A_UINT32 vdev_subtype; + /** VDEV MAC address */ + wmi_mac_addr vdev_macaddr; + /** Number of configured txrx streams */ + A_UINT32 num_cfg_txrx_streams; + /** + * pdev_id for identifying the MAC, + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; +/* This TLV is followed by another TLV of array of structures + * wmi_vdev_txrx_streams cfg_txrx_streams[]; + */ } wmi_vdev_create_cmd_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_vdev_txrx_streams - */ - A_UINT32 tlv_header; - /* band - Should take values from wmi_channel_band_mask */ - A_UINT32 band; - /* max supported tx streams per given band for this vdev */ - A_UINT32 supported_tx_streams; - /* max supported rx streams per given band for this vdev */ - A_UINT32 supported_rx_streams; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_txrx_streams */ + /* band - Should take values from wmi_channel_band_mask */ + A_UINT32 band; + /* max supported tx streams per given band for this vdev */ + A_UINT32 supported_tx_streams; + /* max supported rx streams per given band for this vdev */ + A_UINT32 supported_rx_streams; } wmi_vdev_txrx_streams; /* wmi_p2p_noa_descriptor structure can't be modified without breaking the compatibility for WMI_HOST_SWBA_EVENTID */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_p2p_noa_descriptor */ - A_UINT32 type_count; - /** 255: continuous schedule, 0: reserved */ - A_UINT32 duration; - /** Absent period duration in micro seconds */ - A_UINT32 interval; - /** Absent period interval in micro seconds */ - A_UINT32 start_time; - /** 32 bit tsf time when in starts */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_p2p_noa_descriptor */ + A_UINT32 type_count; /** 255: continuous schedule, 0: reserved */ + A_UINT32 duration; /** Absent period duration in micro seconds */ + A_UINT32 interval; /** Absent period interval in micro seconds */ + A_UINT32 start_time; /** 32 bit tsf time when in starts */ } wmi_p2p_noa_descriptor; /** values for vdev_type */ @@ -5812,12 +5572,12 @@ typedef struct { #define WMI_VDEV_TYPE_MONITOR 0x4 /** VDEV type is for social wifi interface.This VDEV is Currently mainly needed - * by FW to execute the NAN specific WMI commands and also implement NAN specific - * operations like Network discovery, service provisioning and service - * subscription ..etc. If FW needs NAN VDEV then Host should issue VDEV create - * WMI command to create this VDEV once during initialization and host is not - * expected to use any VDEV specific WMI commands on this VDEV. - **/ +* by FW to execute the NAN specific WMI commands and also implement NAN specific +* operations like Network discovery, service provisioning and service +* subscription ..etc. If FW needs NAN VDEV then Host should issue VDEV create +* WMI command to create this VDEV once during initialization and host is not +* expected to use any VDEV specific WMI commands on this VDEV. +**/ #define WMI_VDEV_TYPE_NAN 0x5 #define WMI_VDEV_TYPE_OCB 0x6 @@ -5841,8 +5601,7 @@ typedef struct { #define WMI_UNIFIED_VDEV_SUBTYPE_P2P_GO 0x3 #define WMI_UNIFIED_VDEV_SUBTYPE_PROXY_STA 0x4 #define WMI_UNIFIED_VDEV_SUBTYPE_MESH 0x5 -/* - * new subtype for 11S mesh is required as 11S functionality differs +/* new subtype for 11S mesh is required as 11S functionality differs * in many ways from proprietary mesh * 11S uses 6-addr frame format and supports peering between mesh * stations and dynamic best path selection between mesh stations. @@ -5867,6 +5626,7 @@ typedef struct { */ #define WMI_UNIFIED_VDEV_START_BCN_TX_RATE_PRESENT (1<<2) + #define WMI_HEOPS_COLOR_GET(he_ops) WMI_GET_BITS(he_ops, 0, 6) #define WMI_HEOPS_COLOR_SET(he_ops, value) WMI_SET_BITS(he_ops, 0, 6, value) @@ -6022,109 +5782,104 @@ typedef struct { #define WMI_GET_HW_RATECODE_NSS_V1(_rcode) (((_rcode) >> 5) & 0x7) #define WMI_GET_HW_RATECODE_RATE_V1(_rcode) (((_rcode) >> 0) & 0x1F) #define WMI_ASSEMBLE_RATECODE_V1(_rate, _nss, _pream) \ - (((1) << 28) | ((_pream) << 8) | ((_nss) << 5) | (_rate)) + (((1) << 28) | ((_pream) << 8) | ((_nss) << 5) | (_rate)) typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_start_request_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** requestor id identifying the caller module */ - A_UINT32 requestor_id; - /** beacon interval from received beacon */ - A_UINT32 beacon_interval; - /** DTIM Period from the received beacon */ - A_UINT32 dtim_period; - /** Flags */ - A_UINT32 flags; - /** ssid field. Only valid for AP/GO/IBSS/BTAmp VDEV type. */ - wmi_ssid ssid; - /** beacon/probe reponse xmit rate. Applicable for SoftAP. */ - /** This field will be invalid and ignored unless the */ - /** flags field has the WMI_UNIFIED_VDEV_START_BCN_TX_RATE_PRESENT bit. */ - /** When valid, this field contains the fixed tx rate for the beacon */ - /** and probe response frames send by the GO or SoftAP */ - A_UINT32 bcn_tx_rate; - /** beacon/probe reponse xmit power. Applicable for SoftAP. */ - A_UINT32 bcn_txPower; - /** number of p2p NOA descriptor(s) from scan entry */ - A_UINT32 num_noa_descriptors; - /** Disable H/W ack. This used by WMI_VDEV_RESTART_REQUEST_CMDID. - During CAC, Our HW shouldn't ack ditected frames */ - A_UINT32 disable_hw_ack; - /** This field will be invalid unless the Dual Band Simultaneous (DBS) feature is enabled. */ - /** The DBS policy manager indicates the preferred number of transmit streams. */ - A_UINT32 preferred_tx_streams; - /** This field will be invalid unless the Dual Band Simultaneous (DBS) feature is enabled. */ - /** the DBS policy manager indicates the preferred number of receive streams. */ - A_UINT32 preferred_rx_streams; - A_UINT32 he_ops; /* refer to WMI_HEOPS_xxx macros */ - A_UINT32 cac_duration_ms; /* in milliseconds */ - A_UINT32 regdomain; - /* The TLVs follows this structure: - * wmi_channel chan; //WMI channel - * wmi_p2p_noa_descriptor noa_descriptors[]; //actual p2p NOA descriptor from scan entry - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_start_request_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** requestor id identifying the caller module */ + A_UINT32 requestor_id; + /** beacon interval from received beacon */ + A_UINT32 beacon_interval; + /** DTIM Period from the received beacon */ + A_UINT32 dtim_period; + /** Flags */ + A_UINT32 flags; + /** ssid field. Only valid for AP/GO/IBSS/BTAmp VDEV type. */ + wmi_ssid ssid; + /** beacon/probe reponse xmit rate. Applicable for SoftAP. */ + /** This field will be invalid and ignored unless the */ + /** flags field has the WMI_UNIFIED_VDEV_START_BCN_TX_RATE_PRESENT bit. */ + /** When valid, this field contains the fixed tx rate for the beacon */ + /** and probe response frames send by the GO or SoftAP */ + A_UINT32 bcn_tx_rate; + /** beacon/probe reponse xmit power. Applicable for SoftAP. */ + A_UINT32 bcn_txPower; + /** number of p2p NOA descriptor(s) from scan entry */ + A_UINT32 num_noa_descriptors; + /** Disable H/W ack. This used by WMI_VDEV_RESTART_REQUEST_CMDID. + During CAC, Our HW shouldn't ack ditected frames */ + A_UINT32 disable_hw_ack; + /** This field will be invalid unless the Dual Band Simultaneous (DBS) feature is enabled. */ + /** The DBS policy manager indicates the preferred number of transmit streams. */ + A_UINT32 preferred_tx_streams; + /** This field will be invalid unless the Dual Band Simultaneous (DBS) feature is enabled. */ + /** the DBS policy manager indicates the preferred number of receive streams. */ + A_UINT32 preferred_rx_streams; + A_UINT32 he_ops; /* refer to WMI_HEOPS_xxx macros */ + A_UINT32 cac_duration_ms; /* in milliseconds */ + A_UINT32 regdomain; +/* The TLVs follows this structure: + * wmi_channel chan; <-- WMI channel + * wmi_p2p_noa_descriptor noa_descriptors[]; <-- actual p2p NOA descriptor from scan entry + */ } wmi_vdev_start_request_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_delete_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_delete_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; } wmi_vdev_delete_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_up_cmdid_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** aid (assoc id) received in association response for STA VDEV */ - A_UINT32 vdev_assoc_id; - /** bssid of the BSS the VDEV is joining */ - wmi_mac_addr vdev_bssid; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_up_cmdid_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** aid (assoc id) received in association response for STA VDEV */ + A_UINT32 vdev_assoc_id; + /** bssid of the BSS the VDEV is joining */ + wmi_mac_addr vdev_bssid; } wmi_vdev_up_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_stop_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_stop_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; } wmi_vdev_stop_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_down_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_down_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; } wmi_vdev_down_cmd_fixed_param; typedef struct { - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; } wmi_vdev_standby_response_cmd; typedef struct { - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; } wmi_vdev_resume_response_cmd; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_set_param_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** parameter id */ - A_UINT32 param_id; - /** parameter value */ - A_UINT32 param_value; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_set_param_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** parameter id */ + A_UINT32 param_id; + /** parameter value */ + A_UINT32 param_value; } wmi_vdev_set_param_cmd_fixed_param; typedef struct { - A_UINT32 key_seq_counter_l; - A_UINT32 key_seq_counter_h; + A_UINT32 key_seq_counter_l; + A_UINT32 key_seq_counter_h; } wmi_key_seq_counter; -#define WMI_CIPHER_NONE 0x0 /* clear key */ +#define WMI_CIPHER_NONE 0x0 /* clear key */ #define WMI_CIPHER_WEP 0x1 #define WMI_CIPHER_TKIP 0x2 #define WMI_CIPHER_AES_OCB 0x3 @@ -6137,48 +5892,46 @@ typedef struct { #define WMI_CIPHER_AES_GMAC 0xa typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_install_key_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** MAC address used for installing */ - wmi_mac_addr peer_macaddr; - /** key index */ - A_UINT32 key_ix; - /** key flags */ - A_UINT32 key_flags; - /** key cipher, defined above */ - A_UINT32 key_cipher; - /** key rsc counter */ - wmi_key_seq_counter key_rsc_counter; - /** global key rsc counter */ - wmi_key_seq_counter key_global_rsc_counter; - /** global key tsc counter */ - wmi_key_seq_counter key_tsc_counter; - /** WAPI key rsc counter */ - A_UINT8 wpi_key_rsc_counter[16]; - /** WAPI key tsc counter */ - A_UINT8 wpi_key_tsc_counter[16]; - /** key length */ - A_UINT32 key_len; - /** key tx mic length */ - A_UINT32 key_txmic_len; - /** key rx mic length */ - A_UINT32 key_rxmic_len; - /* - * Following this struct are this TLV. - * // actual key data - * A_UINT8 key_data[]; // contains key followed by tx mic followed by rx mic - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_install_key_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** MAC address used for installing */ + wmi_mac_addr peer_macaddr; + /** key index */ + A_UINT32 key_ix; + /** key flags */ + A_UINT32 key_flags; + /** key cipher, defined above */ + A_UINT32 key_cipher; + /** key rsc counter */ + wmi_key_seq_counter key_rsc_counter; + /** global key rsc counter */ + wmi_key_seq_counter key_global_rsc_counter; + /** global key tsc counter */ + wmi_key_seq_counter key_tsc_counter; + /** WAPI key rsc counter */ + A_UINT8 wpi_key_rsc_counter[16]; + /** WAPI key tsc counter */ + A_UINT8 wpi_key_tsc_counter[16]; + /** key length */ + A_UINT32 key_len; + /** key tx mic length */ + A_UINT32 key_txmic_len; + /** key rx mic length */ + A_UINT32 key_rxmic_len; +/* + * Following this struct are this TLV. + * A_UINT8 key_data[]; <-- actual key data; contains key followed by tx mic followed by rx mic + */ } wmi_vdev_install_key_cmd_fixed_param; /** Preamble types to be used with VDEV fixed rate configuration */ typedef enum { - WMI_RATE_PREAMBLE_OFDM, - WMI_RATE_PREAMBLE_CCK, - WMI_RATE_PREAMBLE_HT, - WMI_RATE_PREAMBLE_VHT, - WMI_RATE_PREAMBLE_HE, + WMI_RATE_PREAMBLE_OFDM, + WMI_RATE_PREAMBLE_CCK, + WMI_RATE_PREAMBLE_HT, + WMI_RATE_PREAMBLE_VHT, + WMI_RATE_PREAMBLE_HE, } WMI_RATE_PREAMBLE; /** Value to disable fixed rate setting */ @@ -6186,426 +5939,427 @@ typedef enum { /** the definition of different VDEV parameters */ typedef enum { - /** RTS Threshold */ - WMI_VDEV_PARAM_RTS_THRESHOLD = 0x1, - /** Fragmentation threshold */ - WMI_VDEV_PARAM_FRAGMENTATION_THRESHOLD, - /** beacon interval in TUs */ - WMI_VDEV_PARAM_BEACON_INTERVAL, - /** Listen interval in TUs */ - WMI_VDEV_PARAM_LISTEN_INTERVAL, - /** muticast rate in Mbps */ - WMI_VDEV_PARAM_MULTICAST_RATE, - /** management frame rate in Mbps */ - WMI_VDEV_PARAM_MGMT_TX_RATE, - /** slot time (long vs short) */ - WMI_VDEV_PARAM_SLOT_TIME, - /** preamble (long vs short) */ - WMI_VDEV_PARAM_PREAMBLE, - /** SWBA time (time before tbtt in msec) */ - WMI_VDEV_PARAM_SWBA_TIME, - /** time period for updating VDEV stats */ - WMI_VDEV_STATS_UPDATE_PERIOD, - /** age out time in msec for frames queued for station in power save*/ - WMI_VDEV_PWRSAVE_AGEOUT_TIME, - /** Host SWBA interval (time in msec before tbtt for SWBA event generation) */ - WMI_VDEV_HOST_SWBA_INTERVAL, - /** DTIM period (specified in units of num beacon intervals) */ - WMI_VDEV_PARAM_DTIM_PERIOD, - /** scheduler air time limit for this VDEV. used by off chan scheduler */ - WMI_VDEV_OC_SCHEDULER_AIR_TIME_LIMIT, - /** enable/dsiable WDS for this VDEV */ - WMI_VDEV_PARAM_WDS, - /** ATIM Window */ - WMI_VDEV_PARAM_ATIM_WINDOW, - /** BMISS max */ - WMI_VDEV_PARAM_BMISS_COUNT_MAX, - /** BMISS first time */ - WMI_VDEV_PARAM_BMISS_FIRST_BCNT, - /** BMISS final time */ - WMI_VDEV_PARAM_BMISS_FINAL_BCNT, - /** WMM enables/disabled */ - WMI_VDEV_PARAM_FEATURE_WMM, - /** Channel width */ - WMI_VDEV_PARAM_CHWIDTH, - /** Channel Offset */ - WMI_VDEV_PARAM_CHEXTOFFSET, - /** Disable HT Protection */ - WMI_VDEV_PARAM_DISABLE_HTPROTECTION, - /** Quick STA Kickout */ - WMI_VDEV_PARAM_STA_QUICKKICKOUT, - /** Rate to be used with Management frames */ - WMI_VDEV_PARAM_MGMT_RATE, - /** Protection Mode */ - WMI_VDEV_PARAM_PROTECTION_MODE, - /** Fixed rate setting - * The top nibble is used to select which format to use for encoding - * the rate specification: 0xVXXXXXXX - * If V == 0b0000: format is same as before: 0x000000RR - * If V == 0b0001: format is: 0x1000RRRR. - * This will be output of WMI_ASSEMBLE_RATECODE_V1 - * The host shall use the new V1 format (and set V = 0x1) if the target - * indicates 802.11ax support via the WMI_SERVICE_11AX flag, or if the - * system is configured with Nss > 4 (either at compile time within the - * host driver, or through WMI_SERVICE_READY PHY capabilities provided - * by the target). - */ - WMI_VDEV_PARAM_FIXED_RATE, - /** Short GI Enable/Disable */ - WMI_VDEV_PARAM_SGI, - /** Enable LDPC */ - WMI_VDEV_PARAM_LDPC, - /** Enable Tx STBC */ - WMI_VDEV_PARAM_TX_STBC, - /** Enable Rx STBC */ - WMI_VDEV_PARAM_RX_STBC, - /** Intra BSS forwarding */ - WMI_VDEV_PARAM_INTRA_BSS_FWD, - /** Setting Default xmit key for Vdev */ - WMI_VDEV_PARAM_DEF_KEYID, - /** NSS width */ - WMI_VDEV_PARAM_NSS, - /** Set the custom rate for the broadcast data frames */ - WMI_VDEV_PARAM_BCAST_DATA_RATE, - /** Set the custom rate (rate-code) for multicast data frames */ - WMI_VDEV_PARAM_MCAST_DATA_RATE, - /** Tx multicast packet indicate Enable/Disable */ - WMI_VDEV_PARAM_MCAST_INDICATE, - /** Tx DHCP packet indicate Enable/Disable */ - WMI_VDEV_PARAM_DHCP_INDICATE, - /** Enable host inspection of Tx unicast packet to unknown destination */ - WMI_VDEV_PARAM_UNKNOWN_DEST_INDICATE, + /** RTS Threshold */ + WMI_VDEV_PARAM_RTS_THRESHOLD = 0x1, + /** Fragmentation threshold */ + WMI_VDEV_PARAM_FRAGMENTATION_THRESHOLD, + /** beacon interval in TUs */ + WMI_VDEV_PARAM_BEACON_INTERVAL, + /** Listen interval in TUs */ + WMI_VDEV_PARAM_LISTEN_INTERVAL, + /** muticast rate in Mbps */ + WMI_VDEV_PARAM_MULTICAST_RATE, + /** management frame rate in Mbps */ + WMI_VDEV_PARAM_MGMT_TX_RATE, + /** slot time (long vs short) */ + WMI_VDEV_PARAM_SLOT_TIME, + /** preamble (long vs short) */ + WMI_VDEV_PARAM_PREAMBLE, + /** SWBA time (time before tbtt in msec) */ + WMI_VDEV_PARAM_SWBA_TIME, + /** time period for updating VDEV stats */ + WMI_VDEV_STATS_UPDATE_PERIOD, + /** age out time in msec for frames queued for station in power save*/ + WMI_VDEV_PWRSAVE_AGEOUT_TIME, + /** Host SWBA interval (time in msec before tbtt for SWBA event generation) */ + WMI_VDEV_HOST_SWBA_INTERVAL, + /** DTIM period (specified in units of num beacon intervals) */ + WMI_VDEV_PARAM_DTIM_PERIOD, + /** scheduler air time limit for this VDEV. used by off chan scheduler */ + WMI_VDEV_OC_SCHEDULER_AIR_TIME_LIMIT, + /** enable/dsiable WDS for this VDEV */ + WMI_VDEV_PARAM_WDS, + /** ATIM Window */ + WMI_VDEV_PARAM_ATIM_WINDOW, + /** BMISS max */ + WMI_VDEV_PARAM_BMISS_COUNT_MAX, + /** BMISS first time */ + WMI_VDEV_PARAM_BMISS_FIRST_BCNT, + /** BMISS final time */ + WMI_VDEV_PARAM_BMISS_FINAL_BCNT, + /** WMM enables/disabled */ + WMI_VDEV_PARAM_FEATURE_WMM, + /** Channel width */ + WMI_VDEV_PARAM_CHWIDTH, + /** Channel Offset */ + WMI_VDEV_PARAM_CHEXTOFFSET, + /** Disable HT Protection */ + WMI_VDEV_PARAM_DISABLE_HTPROTECTION, + /** Quick STA Kickout */ + WMI_VDEV_PARAM_STA_QUICKKICKOUT, + /** Rate to be used with Management frames */ + WMI_VDEV_PARAM_MGMT_RATE, + /** Protection Mode */ + WMI_VDEV_PARAM_PROTECTION_MODE, + /** Fixed rate setting + * The top nibble is used to select which format to use for encoding + * the rate specification: 0xVXXXXXXX + * If V == 0b0000: format is same as before: 0x000000RR + * If V == 0b0001: format is: 0x1000RRRR. + * This will be output of WMI_ASSEMBLE_RATECODE_V1 + * The host shall use the new V1 format (and set V = 0x1) if the target + * indicates 802.11ax support via the WMI_SERVICE_11AX flag, or if the + * system is configured with Nss > 4 (either at compile time within the + * host driver, or through WMI_SERVICE_READY PHY capabilities provided + * by the target). + */ + WMI_VDEV_PARAM_FIXED_RATE, + /** Short GI Enable/Disable */ + WMI_VDEV_PARAM_SGI, + /** Enable LDPC */ + WMI_VDEV_PARAM_LDPC, + /** Enable Tx STBC */ + WMI_VDEV_PARAM_TX_STBC, + /** Enable Rx STBC */ + WMI_VDEV_PARAM_RX_STBC, + /** Intra BSS forwarding */ + WMI_VDEV_PARAM_INTRA_BSS_FWD, + /** Setting Default xmit key for Vdev */ + WMI_VDEV_PARAM_DEF_KEYID, + /** NSS width */ + WMI_VDEV_PARAM_NSS, + /** Set the custom rate for the broadcast data frames */ + WMI_VDEV_PARAM_BCAST_DATA_RATE, + /** Set the custom rate (rate-code) for multicast data frames */ + WMI_VDEV_PARAM_MCAST_DATA_RATE, + /** Tx multicast packet indicate Enable/Disable */ + WMI_VDEV_PARAM_MCAST_INDICATE, + /** Tx DHCP packet indicate Enable/Disable */ + WMI_VDEV_PARAM_DHCP_INDICATE, + /** Enable host inspection of Tx unicast packet to unknown destination */ + WMI_VDEV_PARAM_UNKNOWN_DEST_INDICATE, - /* The minimum amount of time AP begins to consider STA inactive */ - WMI_VDEV_PARAM_AP_KEEPALIVE_MIN_IDLE_INACTIVE_TIME_SECS, + /* The minimum amount of time AP begins to consider STA inactive */ + WMI_VDEV_PARAM_AP_KEEPALIVE_MIN_IDLE_INACTIVE_TIME_SECS, - /* An associated STA is considered inactive when there is no recent TX/RX - * activity and no downlink frames are buffered for it. Once a STA exceeds - * the maximum idle inactive time, the AP will send an 802.11 data-null as - * a keep alive to verify the STA is still associated. If the STA does ACK - * the data-null, or if the data-null is buffered and the STA does not - * retrieve it, the STA will be considered unresponsive (see - * WMI_VDEV_AP_KEEPALIVE_MAX_UNRESPONSIVE_TIME_SECS). */ - WMI_VDEV_PARAM_AP_KEEPALIVE_MAX_IDLE_INACTIVE_TIME_SECS, + /* An associated STA is considered inactive when there is no recent TX/RX + * activity and no downlink frames are buffered for it. Once a STA exceeds + * the maximum idle inactive time, the AP will send an 802.11 data-null as + * a keep alive to verify the STA is still associated. If the STA does ACK + * the data-null, or if the data-null is buffered and the STA does not + * retrieve it, the STA will be considered unresponsive (see + * WMI_VDEV_AP_KEEPALIVE_MAX_UNRESPONSIVE_TIME_SECS). */ + WMI_VDEV_PARAM_AP_KEEPALIVE_MAX_IDLE_INACTIVE_TIME_SECS, - /* An associated STA is considered unresponsive if there is no recent - * TX/RX activity and downlink frames are buffered for it. Once a STA - * exceeds the maximum unresponsive time, the AP will send a - * WMI_STA_KICKOUT event to the host so the STA can be deleted. */ - WMI_VDEV_PARAM_AP_KEEPALIVE_MAX_UNRESPONSIVE_TIME_SECS, + /* An associated STA is considered unresponsive if there is no recent + * TX/RX activity and downlink frames are buffered for it. Once a STA + * exceeds the maximum unresponsive time, the AP will send a + * WMI_STA_KICKOUT event to the host so the STA can be deleted. */ + WMI_VDEV_PARAM_AP_KEEPALIVE_MAX_UNRESPONSIVE_TIME_SECS, - /* Enable NAWDS : MCAST INSPECT Enable, NAWDS Flag set */ - WMI_VDEV_PARAM_AP_ENABLE_NAWDS, - /** Enable/Disable RTS-CTS */ - WMI_VDEV_PARAM_ENABLE_RTSCTS, - /* Enable TXBFee/er */ - WMI_VDEV_PARAM_TXBF, + /* Enable NAWDS : MCAST INSPECT Enable, NAWDS Flag set */ + WMI_VDEV_PARAM_AP_ENABLE_NAWDS, + /** Enable/Disable RTS-CTS */ + WMI_VDEV_PARAM_ENABLE_RTSCTS, + /* Enable TXBFee/er */ + WMI_VDEV_PARAM_TXBF, - /**Set packet power save */ - WMI_VDEV_PARAM_PACKET_POWERSAVE, + /**Set packet power save */ + WMI_VDEV_PARAM_PACKET_POWERSAVE, - /**Drops un-encrypted packets if any received in an encryted connection - * otherwise forwards to host - */ - WMI_VDEV_PARAM_DROP_UNENCRY, + /**Drops un-encrypted packets if any received in an encryted connection + * otherwise forwards to host + */ + WMI_VDEV_PARAM_DROP_UNENCRY, - /* - * Set TX encap type. - * - * enum wmi_pkt_type is to be used as the parameter - * specifying the encap type. - */ - WMI_VDEV_PARAM_TX_ENCAP_TYPE, + /* + * Set TX encap type. + * + * enum wmi_pkt_type is to be used as the parameter + * specifying the encap type. + */ + WMI_VDEV_PARAM_TX_ENCAP_TYPE, - /* - * Try to detect stations that woke-up and exited power save but did not - * successfully transmit data-null with PM=0 to AP. When this happens, - * STA and AP power save state are out-of-sync. Use buffered but - * undelivered MSDU to the STA as a hint that the STA is really awake - * and expecting normal ASAP delivery, rather than retrieving BU with - * PS-Poll, U-APSD trigger, etc. - * - * 0 disables out-of-sync detection. Maximum time is 255 seconds. - */ - WMI_VDEV_PARAM_AP_DETECT_OUT_OF_SYNC_SLEEPING_STA_TIME_SECS, + /* + * Try to detect stations that woke-up and exited power save but did not + * successfully transmit data-null with PM=0 to AP. When this happens, + * STA and AP power save state are out-of-sync. Use buffered but + * undelivered MSDU to the STA as a hint that the STA is really awake + * and expecting normal ASAP delivery, rather than retrieving BU with + * PS-Poll, U-APSD trigger, etc. + * + * 0 disables out-of-sync detection. Maximum time is 255 seconds. + */ + WMI_VDEV_PARAM_AP_DETECT_OUT_OF_SYNC_SLEEPING_STA_TIME_SECS, - /* Enable/Disable early rx dynamic adjust feature. - * Early-rx dynamic adjust is a advance power save feature. - * Early-rx is a wakeup duration before exact TBTT,which is deemed necessary to provide a cushion for various - * timing discrepancies in the system. - * In current code branch, the duration is set to a very conservative fix value to make sure the drift impact is minimum. - * The fix early-tx will result in the unnessary power consume, so a dynamic early-rx adjust algorithm can be designed - * properly to minimum the power consume.*/ - WMI_VDEV_PARAM_EARLY_RX_ADJUST_ENABLE, + /* Enable/Disable early rx dynamic adjust feature. + * Early-rx dynamic adjust is a advance power save feature. + * Early-rx is a wakeup duration before exact TBTT,which is deemed necessary to provide a cushion for various + * timing discrepancies in the system. + * In current code branch, the duration is set to a very conservative fix value to make sure the drift impact is minimum. + * The fix early-tx will result in the unnessary power consume, so a dynamic early-rx adjust algorithm can be designed + * properly to minimum the power consume.*/ + WMI_VDEV_PARAM_EARLY_RX_ADJUST_ENABLE, - /* set target bmiss number per sample cycle if bmiss adjust was chosen. - * In this adjust policy,early-rx is adjusted by comparing the current bmiss rate to target bmiss rate - * which can be set by user through WMI command. - */ - WMI_VDEV_PARAM_EARLY_RX_TGT_BMISS_NUM, + /* set target bmiss number per sample cycle if bmiss adjust was chosen. + * In this adjust policy,early-rx is adjusted by comparing the current bmiss rate to target bmiss rate + * which can be set by user through WMI command. + */ + WMI_VDEV_PARAM_EARLY_RX_TGT_BMISS_NUM, - /* set sample cycle(in the unit of beacon interval) if bmiss adjust was chosen */ - WMI_VDEV_PARAM_EARLY_RX_BMISS_SAMPLE_CYCLE, + /* set sample cycle(in the unit of beacon interval) if bmiss adjust was chosen */ + WMI_VDEV_PARAM_EARLY_RX_BMISS_SAMPLE_CYCLE, - /* set slop_step */ - WMI_VDEV_PARAM_EARLY_RX_SLOP_STEP, + /* set slop_step */ + WMI_VDEV_PARAM_EARLY_RX_SLOP_STEP, - /* set init slop */ - WMI_VDEV_PARAM_EARLY_RX_INIT_SLOP, + /* set init slop */ + WMI_VDEV_PARAM_EARLY_RX_INIT_SLOP, - /* pause adjust enable/disable */ - WMI_VDEV_PARAM_EARLY_RX_ADJUST_PAUSE, + /* pause adjust enable/disable */ + WMI_VDEV_PARAM_EARLY_RX_ADJUST_PAUSE, - /* Set channel pwr limit value of the vdev the minimal value of all - * vdevs operating on this channel will be set as channel tx power - * limit, which is used to configure ratearray - */ - WMI_VDEV_PARAM_TX_PWRLIMIT, - /* set the count of snr value for calculation in snr monitor */ - WMI_VDEV_PARAM_SNR_NUM_FOR_CAL, + /* Set channel pwr limit value of the vdev the minimal value of all + * vdevs operating on this channel will be set as channel tx power + * limit, which is used to configure ratearray + */ + WMI_VDEV_PARAM_TX_PWRLIMIT, - /** Roaming offload */ - WMI_VDEV_PARAM_ROAM_FW_OFFLOAD, + /* set the count of snr value for calculation in snr monitor */ + WMI_VDEV_PARAM_SNR_NUM_FOR_CAL, - /** Enable Leader request RX functionality for RMC */ - WMI_VDEV_PARAM_ENABLE_RMC, + /** Roaming offload */ + WMI_VDEV_PARAM_ROAM_FW_OFFLOAD, - /* IBSS does not have deauth/disassoc, vdev has to detect peer gone event - * by himself. If the beacon lost time exceed this threshold, the peer is - * thought to be gone. */ - WMI_VDEV_PARAM_IBSS_MAX_BCN_LOST_MS, + /** Enable Leader request RX functionality for RMC */ + WMI_VDEV_PARAM_ENABLE_RMC, - /** max rate in kpbs, transmit rate can't go beyond it */ - WMI_VDEV_PARAM_MAX_RATE, + /* IBSS does not have deauth/disassoc, vdev has to detect peer gone event + * by himself. If the beacon lost time exceed this threshold, the peer is + * thought to be gone. */ + WMI_VDEV_PARAM_IBSS_MAX_BCN_LOST_MS, - /* enable/disable drift sample. 0: disable; 1: clk_drift; 2: ap_drift; 3 both clk and ap drift */ - WMI_VDEV_PARAM_EARLY_RX_DRIFT_SAMPLE, - /* set Tx failure count threshold for the vdev */ - WMI_VDEV_PARAM_SET_IBSS_TX_FAIL_CNT_THR, + /** max rate in kpbs, transmit rate can't go beyond it */ + WMI_VDEV_PARAM_MAX_RATE, - /* set ebt resync timeout value, in the unit of TU */ - WMI_VDEV_PARAM_EBT_RESYNC_TIMEOUT, + /* enable/disable drift sample. 0: disable; 1: clk_drift; 2: ap_drift; 3 both clk and ap drift*/ + WMI_VDEV_PARAM_EARLY_RX_DRIFT_SAMPLE, - /* Enable Aggregation State Trigger Event */ - WMI_VDEV_PARAM_AGGR_TRIG_EVENT_ENABLE, + /* set Tx failure count threshold for the vdev */ + WMI_VDEV_PARAM_SET_IBSS_TX_FAIL_CNT_THR, - /* This parameter indicates whether IBSS station can enter into power save - * mode by sending Null frame (with PM=1). When not allowed, IBSS station has to stay - * awake all the time and should never set PM=1 in its transmitted frames. - * This parameter is meaningful/valid only when WMI_VDEV_PARAM_ATIM_WINDOW_LENGTH - * is non-zero. */ - WMI_VDEV_PARAM_IS_IBSS_POWER_SAVE_ALLOWED, + /* set ebt resync timeout value, in the unit of TU */ + WMI_VDEV_PARAM_EBT_RESYNC_TIMEOUT, - /* This parameter indicates if this station can enter into power collapse - * for the remaining beacon interval after the ATIM window. - * This parameter is meaningful/valid only when WMI_VDEV_PARAM_IS_IBSS_POWER_SAVE_ALLOWED - * is set to true. */ - WMI_VDEV_PARAM_IS_POWER_COLLAPSE_ALLOWED, + /* Enable Aggregation State Trigger Event */ + WMI_VDEV_PARAM_AGGR_TRIG_EVENT_ENABLE, - /* This parameter indicates whether IBSS station exit power save mode and - * enter power active state (by sending Null frame with PM=0 in the immediate ATIM Window) - * whenever there is a TX/RX activity. */ - WMI_VDEV_PARAM_IS_AWAKE_ON_TXRX_ENABLED, + /* This parameter indicates whether IBSS station can enter into power save + * mode by sending Null frame (with PM=1). When not allowed, IBSS station has to stay + * awake all the time and should never set PM=1 in its transmitted frames. + * This parameter is meaningful/valid only when WMI_VDEV_PARAM_ATIM_WINDOW_LENGTH + * is non-zero. */ + WMI_VDEV_PARAM_IS_IBSS_POWER_SAVE_ALLOWED, - /* If Awake on TX/RX activity is enabled, this parameter indicates - * the data inactivity time in number of beacon intervals after which - * IBSS station reenters power save by sending Null frame with PM=1. */ - WMI_VDEV_PARAM_INACTIVITY_CNT, + /* This parameter indicates if this station can enter into power collapse + * for the remaining beacon interval after the ATIM window. + * This parameter is meaningful/valid only when WMI_VDEV_PARAM_IS_IBSS_POWER_SAVE_ALLOWED + * is set to TRUE. */ + WMI_VDEV_PARAM_IS_POWER_COLLAPSE_ALLOWED, - /* Inactivity time in msec after which TX Service Period (SP) is - * terminated by sending a Qos Null frame with EOSP. - * If value is 0, TX SP is terminated with the last buffered packet itself - * instead of waiting for the inactivity timeout. */ - WMI_VDEV_PARAM_TXSP_END_INACTIVITY_TIME_MS, + /* This parameter indicates whether IBSS station exit power save mode and + * enter power active state (by sending Null frame with PM=0 in the immediate ATIM Window) + * whenever there is a TX/RX activity. */ + WMI_VDEV_PARAM_IS_AWAKE_ON_TXRX_ENABLED, - /** DTIM policy */ - WMI_VDEV_PARAM_DTIM_POLICY, + /* If Awake on TX/RX activity is enabled, this parameter indicates + * the data inactivity time in number of beacon intervals after which + * IBSS station reenters power save by sending Null frame with PM=1. */ + WMI_VDEV_PARAM_INACTIVITY_CNT, - /* When IBSS network is initialized, PS-supporting device - * does not enter protocol sleep state during first - * WMI_VDEV_PARAM_IBSS_PS_WARMUP_TIME_SECS seconds. */ - WMI_VDEV_PARAM_IBSS_PS_WARMUP_TIME_SECS, + /* Inactivity time in msec after which TX Service Period (SP) is + * terminated by sending a Qos Null frame with EOSP. + * If value is 0, TX SP is terminated with the last buffered packet itself + * instead of waiting for the inactivity timeout. */ + WMI_VDEV_PARAM_TXSP_END_INACTIVITY_TIME_MS, - /* Enable/Disable 1 RX chain usage during the ATIM window */ - WMI_VDEV_PARAM_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_ENABLE, - /** - * RX Leak window is the time driver waits before shutting down - * the radio or switching the channel and after receiving an ACK - * for a data frame with PM bit set) - */ - WMI_VDEV_PARAM_RX_LEAK_WINDOW, + /** DTIM policy */ + WMI_VDEV_PARAM_DTIM_POLICY, - /** - * Averaging factor(16 bit value) is used in the calculations to - * perform averaging of different link level statistics like average - * beacon spread or average number of frames leaked - */ - WMI_VDEV_PARAM_STATS_AVG_FACTOR, - /* - * disconnect threshold, once the consecutive error for specific peer - * exceed this threhold, FW will send kickout event to host - */ - WMI_VDEV_PARAM_DISCONNECT_TH, - /* - * The rate_code of RTS_CTS changed by host. Now FW can support - * more non-HT rates rather than 1Mbps or 6Mbps */ - WMI_VDEV_PARAM_RTSCTS_RATE, + /* When IBSS network is initialized, PS-supporting device + * does not enter protocol sleep state during first + * WMI_VDEV_PARAM_IBSS_PS_WARMUP_TIME_SECS seconds. */ + WMI_VDEV_PARAM_IBSS_PS_WARMUP_TIME_SECS, - /** This parameter indicates whether using a long duration RTS-CTS - * protection when a SAP goes off channel in MCC mode */ - WMI_VDEV_PARAM_MCC_RTSCTS_PROTECTION_ENABLE, + /* Enable/Disable 1 RX chain usage during the ATIM window */ + WMI_VDEV_PARAM_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_ENABLE, - /* - * This parameter indicates whether using a broadcast probe response - * to increase the detectability of SAP in MCC mode - */ - WMI_VDEV_PARAM_MCC_BROADCAST_PROBE_ENABLE, + /* RX Leak window is the time driver waits before shutting down + * the radio or switching the channel and after receiving an ACK + * for a data frame with PM bit set) */ + WMI_VDEV_PARAM_RX_LEAK_WINDOW, - /* This parameter indicates the power backoff in percentage - * currently supports 100%, 50%, 25%, 12.5%, and minimum - * Host passes 0, 1, 2, 3, 4 to Firmware - * 0 --> 100% --> no changes, 1 --> 50% --> -3dB, - * 2 --> 25% --> -6dB, 3 --> 12.5% --> -9dB, 4 --> minimum --> -32dB - */ - WMI_VDEV_PARAM_TXPOWER_SCALE, + /** Averaging factor(16 bit value) is used in the calculations to + * perform averaging of different link level statistics like average + * beacon spread or average number of frames leaked */ + WMI_VDEV_PARAM_STATS_AVG_FACTOR, - /* TX power backoff in dB: tx power -= param value - * Host passes values(DB) to Halphy, Halphy reduces the power table - * by the values. Safety check will happen in Halphy. - */ - WMI_VDEV_PARAM_TXPOWER_SCALE_DECR_DB, - /** Multicast to Unicast conversion setting */ - WMI_VDEV_PARAM_MCAST2UCAST_SET, + /** disconnect threshold, once the consecutive error for specific peer + * exceed this threhold, FW will send kickout event to host */ + WMI_VDEV_PARAM_DISCONNECT_TH, - /** Total number of HW retries */ - WMI_VDEV_PARAM_RC_NUM_RETRIES, + /** The rate_code of RTS_CTS changed by host. Now FW can support + * more non-HT rates rather than 1Mbps or 6Mbps */ + WMI_VDEV_PARAM_RTSCTS_RATE, - /** Max tx percentage for cabq */ - WMI_VDEV_PARAM_CABQ_MAXDUR, + /** This parameter indicates whether using a long duration RTS-CTS + * protection when a SAP goes off channel in MCC mode */ + WMI_VDEV_PARAM_MCC_RTSCTS_PROTECTION_ENABLE, - /** MFPTEST settings */ - WMI_VDEV_PARAM_MFPTEST_SET, + /** This parameter indicates whether using a broadcast probe response + * to increase the detectability of SAP in MCC mode */ + WMI_VDEV_PARAM_MCC_BROADCAST_PROBE_ENABLE, - /** RTS Fixed rate setting */ - WMI_VDEV_PARAM_RTS_FIXED_RATE, + /** This parameter indicates the power backoff in percentage + * currently supports 100%, 50%, 25%, 12.5%, and minimum + * Host passes 0, 1, 2, 3, 4 to Firmware + * 0 --> 100% --> no changes, 1 --> 50% --> -3dB, + * 2 --> 25% --> -6dB, 3 --> 12.5% --> -9dB, 4 --> minimum --> -32dB + */ + WMI_VDEV_PARAM_TXPOWER_SCALE, - /** VHT SGI MASK */ - WMI_VDEV_PARAM_VHT_SGIMASK, + /** TX power backoff in dB: tx power -= param value + * Host passes values(DB) to Halphy, Halphy reduces the power table + * by the values. Safety check will happen in Halphy. + */ + WMI_VDEV_PARAM_TXPOWER_SCALE_DECR_DB, - /** VHT80 Auto Rate MASK */ - WMI_VDEV_PARAM_VHT80_RATEMASK, + /** Multicast to Unicast conversion setting */ + WMI_VDEV_PARAM_MCAST2UCAST_SET, - /** set Proxy STA features for this vap */ - WMI_VDEV_PARAM_PROXY_STA, + /** Total number of HW retries */ + WMI_VDEV_PARAM_RC_NUM_RETRIES, - /** set virtual cell mode - enable/disable */ - WMI_VDEV_PARAM_VIRTUAL_CELL_MODE, + /** Max tx percentage for cabq */ + WMI_VDEV_PARAM_CABQ_MAXDUR, - /** Set receive packet type */ - WMI_VDEV_PARAM_RX_DECAP_TYPE, + /** MFPTEST settings */ + WMI_VDEV_PARAM_MFPTEST_SET, - /** Set ratemask with specific Bandwidth and NSS */ - WMI_VDEV_PARAM_BW_NSS_RATEMASK, + /** RTS Fixed rate setting */ + WMI_VDEV_PARAM_RTS_FIXED_RATE, - /** Set SENSOR Support */ - WMI_VDEV_PARAM_SENSOR_AP, + /** VHT SGI MASK */ + WMI_VDEV_PARAM_VHT_SGIMASK, - /** Set beacon rate */ - WMI_VDEV_PARAM_BEACON_RATE, + /** VHT80 Auto Rate MASK */ + WMI_VDEV_PARAM_VHT80_RATEMASK, - /** Enable CTS to self for DTIM beacon */ - WMI_VDEV_PARAM_DTIM_ENABLE_CTS, + /** set Proxy STA features for this vap */ + WMI_VDEV_PARAM_PROXY_STA, - /** Disable station kickout at Vap level */ - WMI_VDEV_PARAM_STA_KICKOUT, + /** set virtual cell mode - enable/disable */ + WMI_VDEV_PARAM_VIRTUAL_CELL_MODE, - /* VDEV capabilities */ - WMI_VDEV_PARAM_CAPABILITIES, /* see capabilities defs below */ - /* - * Increment TSF in micro seconds to avoid beacon collision on mesh VAP - * The host must ensure that either no other vdevs share the TSF with - * this vdev, or else that it is acceptable to apply this TSF adjustment - * to all vdevs sharing the TSF - */ - WMI_VDEV_PARAM_TSF_INCREMENT, - WMI_VDEV_PARAM_PLACE_HOLDER_1, + /** Set receive packet type */ + WMI_VDEV_PARAM_RX_DECAP_TYPE, - /* - * Vdev level rx filter of from-ds / to-ds / no-ds / ta / ra frames. - * Used mainly for mesh-vap. - * The parameter value delivered with the RX_FILTER vdev param contains - * a bit-or mask of wmi_vdev_param_filter enum values. - */ - WMI_VDEV_PARAM_RX_FILTER, - /* vdev-specific mgmt tx power in dBm units (signed integer value) */ - WMI_VDEV_PARAM_MGMT_TX_POWER, + /** Set ratemask with specific Bandwidth and NSS */ + WMI_VDEV_PARAM_BW_NSS_RATEMASK, - /* - * Vdev level non aggregration/11g sw retry threshold. - * 0-disable, min:0, max:31, default:15 - */ - WMI_VDEV_PARAM_NON_AGG_SW_RETRY_TH, - /* - * Vdev level aggregration sw retry threshold. - * 0-disable, min:0, max:31, default:15 - */ - WMI_VDEV_PARAM_AGG_SW_RETRY_TH, + /** Set SENSOR Support */ + WMI_VDEV_PARAM_SENSOR_AP, - /** disable dynamic bw RTS **/ - WMI_VDEV_PARAM_DISABLE_DYN_BW_RTS, + /** Set beacon rate */ + WMI_VDEV_PARAM_BEACON_RATE, - /* - * Per ssid (vdev) based ATF strict/fair scheduling policy - * Param values are WMI_ATF_SSID_FAIR_SCHED or - * WMI_ATF_SSID_STRICT_SCHED - */ - WMI_VDEV_PARAM_ATF_SSID_SCHED_POLICY, - /** Enable or disable Dual carrier modulation - * valid values: 0-Disable DCM, 1-Enable DCM. - */ - WMI_VDEV_PARAM_HE_DCM, + /** Enable CTS to self for DTIM beacon */ + WMI_VDEV_PARAM_DTIM_ENABLE_CTS, - /** Enable or disable Extended range - * valid values: 0-Disable ER, 1-Enable ER. - */ - WMI_VDEV_PARAM_HE_RANGE_EXT, + /** Disable station kickout at Vap level */ + WMI_VDEV_PARAM_STA_KICKOUT, - /* - * === ADD NEW VDEV PARAM TYPES ABOVE THIS LINE === - * The below vdev param types are used for prototyping, and are - * prone to change. - */ - WMI_VDEV_PARAM_PROTOTYPE = 0x8000, - /* 11AX SPECIFIC defines */ - WMI_VDEV_PARAM_BSS_COLOR, - /* - * Enable / disable trigger access for a AP vdev's peers. - * For a STA mode vdev this will enable/disable triggered access - * and enable/disable Multi User mode of operation. - * 0 - Disable MU OFDMA and MU MIMO - * 1 - Disable DL OFDMA - * 2 - Disable DL MUMIMO - * 3 - Disable UL OFDMA - * 4 - Disable UL MUMIMO - * 5 - Enable MU OFDMA and MU MIMO - * 6 - Enable DL OFDMA - * 7 - Enable DL MUMIMO - * 8 - Enable UL OFDMA - * 9 - Enable UL MUMIMO - */ - WMI_VDEV_PARAM_SET_HEMU_MODE, - /* - * For Tx OFDMA this will set values of CP length or guard interval - * to be - * 0: Auto - * 1: 0.8 us - * 2: 1.6 us - * 3: 3.2 us - * Similar to Guard Interval - */ - WMI_VDEV_PARAM_TX_OFDMA_CPLEN, - /*=== END VDEV_PARAM_PROTOTYPE SECTION ===*/ + /* VDEV capabilities */ + WMI_VDEV_PARAM_CAPABILITIES, /* see capabilities defs below */ + + /** + * Increment TSF in micro seconds to avoid beacon collision on mesh VAP. + * The host must ensure that either no other vdevs share the TSF with + * this vdev, or else that it is acceptable to apply this TSF adjustment + * to all vdevs sharing the TSF. + */ + WMI_VDEV_PARAM_TSF_INCREMENT, + + /** Disable/Enable AMPDU of vdev per AC: + * bit | AC + * -------- + * 0 | VO + * 1 | VI + * 2 | BE + * 3 | BK + * A value of 0 in a given bit disables A-MPDU aggregation for + * that AC; a value of 1 enables A-MPDU aggregation + */ + WMI_VDEV_PARAM_AMPDU_PER_AC, + + /** + * Vdev level rx filter of from-ds / to-ds / no-ds / ta / ra frames. + * Used mainly for mesh-vap. + * The parameter value delivered with the RX_FILTER vdev param contains + * a bit-or mask of wmi_vdev_param_filter enum values. + */ + WMI_VDEV_PARAM_RX_FILTER, + + /** vdev-specific mgmt tx power in dBm units (signed integer value) */ + WMI_VDEV_PARAM_MGMT_TX_POWER, + + /** Vdev level non aggregration/11g sw retry threshold. 0-disable, min:0, max:31, default:15 */ + WMI_VDEV_PARAM_NON_AGG_SW_RETRY_TH, + /** Vdev level aggregration sw retry threshold. 0-disable, min:0, max:31, default:15 */ + WMI_VDEV_PARAM_AGG_SW_RETRY_TH, + + /** disable dynamic bw RTS **/ + WMI_VDEV_PARAM_DISABLE_DYN_BW_RTS, + + /** per ssid (vdev) based ATF strict/fair scheduling policy + * param values are WMI_ATF_SSID_FAIR_SCHED or WMI_ATF_SSID_STRICT_SCHED + */ + WMI_VDEV_PARAM_ATF_SSID_SCHED_POLICY, + + /** Enable or disable Dual carrier modulation + * valid values: 0-Disable DCM, 1-Enable DCM. + */ + WMI_VDEV_PARAM_HE_DCM, + + /** Enable or disable Extended range + * valid values: 0-Disable ER, 1-Enable ER. + */ + WMI_VDEV_PARAM_HE_RANGE_EXT, + + /*=== ADD NEW VDEV PARAM TYPES ABOVE THIS LINE === + * The below vdev param types are used for prototyping, and are + * prone to change. + */ + WMI_VDEV_PARAM_PROTOTYPE = 0x8000, + /* 11AX SPECIFIC defines */ + WMI_VDEV_PARAM_BSS_COLOR, + /* + * Enable / disable trigger access for a AP vdev's peers. + * For a STA mode vdev this will enable/disable triggered access + * and enable/disable Multi User mode of operation. + * 0 Disable MU OFDMA and MU MIMO + * 1 Disable DL OFDMA + * 2 Disable DL MUMIMO + * 3 Disable UL OFDMA + * 4 Disable UL MUMIMO + * 5 Enable MU OFDMA and MU MIMO + * 6 Enable DL OFDMA + * 7 Enable DL MUMIMO + * 8 Enable UL OFDMA + * 9 Enable UL MUMIMO + */ + WMI_VDEV_PARAM_SET_HEMU_MODE, + /* For Tx OFDMA this will set values of CP length or guard interval + * to be + * 0: Auto + * 1: 0.8 us + * 2: 1.6 us + * 3: 3.2 us + * Similar to Guard Interval + */ + WMI_VDEV_PARAM_TX_OFDMA_CPLEN, + /*=== END VDEV_PARAM_PROTOTYPE SECTION ===*/ } WMI_VDEV_PARAM; /* vdev capabilities bit mask */ @@ -6620,106 +6374,85 @@ typedef enum { /* TXBF capabilities masks */ #define WMI_TXBF_CONF_SU_TX_BFEE_S 0 #define WMI_TXBF_CONF_SU_TX_BFEE_M 0x1 -#define WMI_TXBF_CONF_SU_TX_BFEE (WMI_TXBF_CONF_SU_TX_BFEE_M << \ - WMI_TXBF_CONF_SU_TX_BFEE_S) -#define WMI_TXBF_CONF_SU_TX_BFEE_GET(x) WMI_F_MS(x, WMI_TXBF_CONF_SU_TX_BFEE) -#define WMI_TXBF_CONF_SU_TX_BFEE_SET(x, z) WMI_F_RMW(x, z,\ - WMI_TXBF_CONF_SU_TX_BFEE) +#define WMI_TXBF_CONF_SU_TX_BFEE (WMI_TXBF_CONF_SU_TX_BFEE_M << WMI_TXBF_CONF_SU_TX_BFEE_S) +#define WMI_TXBF_CONF_SU_TX_BFEE_GET(x) WMI_F_MS(x,WMI_TXBF_CONF_SU_TX_BFEE) +#define WMI_TXBF_CONF_SU_TX_BFEE_SET(x,z) WMI_F_RMW(x,z,WMI_TXBF_CONF_SU_TX_BFEE) #define WMI_TXBF_CONF_MU_TX_BFEE_S 1 #define WMI_TXBF_CONF_MU_TX_BFEE_M 0x1 -#define WMI_TXBF_CONF_MU_TX_BFEE (WMI_TXBF_CONF_MU_TX_BFEE_M << \ - WMI_TXBF_CONF_MU_TX_BFEE_S) -#define WMI_TXBF_CONF_MU_TX_BFEE_GET(x) WMI_F_MS(x, WMI_TXBF_CONF_MU_TX_BFEE) -#define WMI_TXBF_CONF_MU_TX_BFEE_SET(x, z) WMI_F_RMW(x, z, \ - WMI_TXBF_CONF_MU_TX_BFEE) +#define WMI_TXBF_CONF_MU_TX_BFEE (WMI_TXBF_CONF_MU_TX_BFEE_M << WMI_TXBF_CONF_MU_TX_BFEE_S) +#define WMI_TXBF_CONF_MU_TX_BFEE_GET(x) WMI_F_MS(x,WMI_TXBF_CONF_MU_TX_BFEE) +#define WMI_TXBF_CONF_MU_TX_BFEE_SET(x,z) WMI_F_RMW(x,z,WMI_TXBF_CONF_MU_TX_BFEE) #define WMI_TXBF_CONF_SU_TX_BFER_S 2 #define WMI_TXBF_CONF_SU_TX_BFER_M 0x1 -#define WMI_TXBF_CONF_SU_TX_BFER (WMI_TXBF_CONF_SU_TX_BFER_M << \ - WMI_TXBF_CONF_SU_TX_BFER_S) -#define WMI_TXBF_CONF_SU_TX_BFER_GET(x) WMI_F_MS(x, WMI_TXBF_CONF_SU_TX_BFER) -#define WMI_TXBF_CONF_SU_TX_BFER_SET(x, z) WMI_F_RMW(x, z, \ - WMI_TXBF_CONF_SU_TX_BFER) +#define WMI_TXBF_CONF_SU_TX_BFER (WMI_TXBF_CONF_SU_TX_BFER_M << WMI_TXBF_CONF_SU_TX_BFER_S) +#define WMI_TXBF_CONF_SU_TX_BFER_GET(x) WMI_F_MS(x,WMI_TXBF_CONF_SU_TX_BFER) +#define WMI_TXBF_CONF_SU_TX_BFER_SET(x,z) WMI_F_RMW(x,z,WMI_TXBF_CONF_SU_TX_BFER) #define WMI_TXBF_CONF_MU_TX_BFER_S 3 #define WMI_TXBF_CONF_MU_TX_BFER_M 0x1 -#define WMI_TXBF_CONF_MU_TX_BFER (WMI_TXBF_CONF_MU_TX_BFER_M << \ - WMI_TXBF_CONF_MU_TX_BFER_S) -#define WMI_TXBF_CONF_MU_TX_BFER_GET(x) WMI_F_MS(x, WMI_TXBF_CONF_MU_TX_BFER) -#define WMI_TXBF_CONF_MU_TX_BFER_SET(x, z) WMI_F_RMW(x, z, \ - WMI_TXBF_CONF_MU_TX_BFER) +#define WMI_TXBF_CONF_MU_TX_BFER (WMI_TXBF_CONF_MU_TX_BFER_M << WMI_TXBF_CONF_MU_TX_BFER_S) +#define WMI_TXBF_CONF_MU_TX_BFER_GET(x) WMI_F_MS(x,WMI_TXBF_CONF_MU_TX_BFER) +#define WMI_TXBF_CONF_MU_TX_BFER_SET(x,z) WMI_F_RMW(x,z,WMI_TXBF_CONF_MU_TX_BFER) #define WMI_TXBF_CONF_STS_CAP_S 4 #define WMI_TXBF_CONF_STS_CAP_M 0x7 -#define WMI_TXBF_CONF_STS_CAP (WMI_TXBF_CONF_STS_CAP_M << \ - WMI_TXBF_CONF_STS_CAP_S) -#define WMI_TXBF_CONF_STS_CAP_GET(x) WMI_F_MS(x, WMI_TXBF_CONF_STS_CAP); -#define WMI_TXBF_CONF_STS_CAP_SET(x, z) WMI_F_RMW(x, z, \ - WMI_TXBF_CONF_STS_CAP) +#define WMI_TXBF_CONF_STS_CAP (WMI_TXBF_CONF_STS_CAP_M << WMI_TXBF_CONF_STS_CAP_S) +#define WMI_TXBF_CONF_STS_CAP_GET(x) WMI_F_MS(x,WMI_TXBF_CONF_STS_CAP); +#define WMI_TXBF_CONF_STS_CAP_SET(x,z) WMI_F_RMW(x,z,WMI_TXBF_CONF_STS_CAP) #define WMI_TXBF_CONF_IMPLICIT_BF_S 7 #define WMI_TXBF_CONF_IMPLICIT_BF_M 0x1 -#define WMI_TXBF_CONF_IMPLICIT_BF (WMI_TXBF_CONF_IMPLICIT_BF_M << \ - WMI_TXBF_CONF_IMPLICIT_BF_S) -#define WMI_TXBF_CONF_IMPLICIT_BF_GET(x) WMI_F_MS(x, WMI_TXBF_CONF_IMPLICIT_BF) -#define WMI_TXBF_CONF_IMPLICIT_BF_SET(x, z) WMI_F_RMW(x, z, \ - WMI_TXBF_CONF_IMPLICIT_BF) +#define WMI_TXBF_CONF_IMPLICIT_BF (WMI_TXBF_CONF_IMPLICIT_BF_M << WMI_TXBF_CONF_IMPLICIT_BF_S) +#define WMI_TXBF_CONF_IMPLICIT_BF_GET(x) WMI_F_MS(x,WMI_TXBF_CONF_IMPLICIT_BF) +#define WMI_TXBF_CONF_IMPLICIT_BF_SET(x,z) WMI_F_RMW(x,z,WMI_TXBF_CONF_IMPLICIT_BF) #define WMI_TXBF_CONF_BF_SND_DIM_S 8 #define WMI_TXBF_CONF_BF_SND_DIM_M 0x7 -#define WMI_TXBF_CONF_BF_SND_DIM (WMI_TXBF_CONF_BF_SND_DIM_M << \ - WMI_TXBF_CONF_BF_SND_DIM_S) -#define WMI_TXBF_CONF_BF_SND_DIM_GET(x) WMI_F_MS(x, WMI_TXBF_CONF_BF_SND_DIM) -#define WMI_TXBF_CONF_BF_SND_DIM_SET(x, z) WMI_F_RMW(x, z, \ - WMI_TXBF_CONF_BF_SND_DIM) +#define WMI_TXBF_CONF_BF_SND_DIM (WMI_TXBF_CONF_BF_SND_DIM_M << WMI_TXBF_CONF_BF_SND_DIM_S) +#define WMI_TXBF_CONF_BF_SND_DIM_GET(x) WMI_F_MS(x,WMI_TXBF_CONF_BF_SND_DIM) +#define WMI_TXBF_CONF_BF_SND_DIM_SET(x,z) WMI_F_RMW(x,z,WMI_TXBF_CONF_BF_SND_DIM) /* TXBF capabilities */ typedef struct { - A_UINT32 txbf_cap; + A_UINT32 txbf_cap; } wmi_vdev_txbf_cap; /* vdev rx filters (for mesh) */ typedef enum { - /* Don't drop any frames - Default */ - WMI_VDEV_RX_ALLOW_ALL_FRAMES = 0x0, - /* Drop FromDS frames */ - WMI_VDEV_RX_FILTER_OUT_FROMDS = 0x1, - /* Drop ToDS frames */ - WMI_VDEV_RX_FILTER_OUT_TODS = 0x2, - /* Drop NODS frames */ - WMI_VDEV_RX_FILTER_OUT_NODS = 0x4, - /* Drop RA frames */ - WMI_VDEV_RX_FILTER_OUT_RA = 0x8, - /* Drop TA frames */ - WMI_VDEV_RX_FILTER_OUT_TA = 0x10, + WMI_VDEV_RX_ALLOW_ALL_FRAMES = 0x0, /* Don't drop any frames - Default */ + WMI_VDEV_RX_FILTER_OUT_FROMDS = 0x1, /* Drop FromDS frames */ + WMI_VDEV_RX_FILTER_OUT_TODS = 0x2, /* Drop ToDS frames */ + WMI_VDEV_RX_FILTER_OUT_NODS = 0x4, /* Drop NODS frames */ + WMI_VDEV_RX_FILTER_OUT_RA = 0x8, /* Drop RA frames */ + WMI_VDEV_RX_FILTER_OUT_TA = 0x10, /* Drop TA frames */ } wmi_vdev_param_filter; /* Length of ATIM Window in TU */ #define WMI_VDEV_PARAM_ATIM_WINDOW_LENGTH WMI_VDEV_PARAM_ATIM_WINDOW enum wmi_pkt_type { - WMI_PKT_TYPE_RAW = 0, - WMI_PKT_TYPE_NATIVE_WIFI = 1, - WMI_PKT_TYPE_ETHERNET = 2, + WMI_PKT_TYPE_RAW = 0, + WMI_PKT_TYPE_NATIVE_WIFI = 1, + WMI_PKT_TYPE_ETHERNET = 2, }; /******************************************************************* * wmi_vdev_txbf_en is DEPRECATED in favor of wmi_vdev_txbf_cap * Do not use it! *******************************************************************/ - typedef struct { - A_UINT8 sutxbfee:1, mutxbfee:1, sutxbfer:1, mutxbfer:1, -#if defined(AR900B) - txb_sts_cap:3, implicit_bf:1; -#else - reserved:4; -#endif + A_UINT8 sutxbfee : 1, + mutxbfee : 1, + sutxbfer : 1, + mutxbfer : 1, + txb_sts_cap : 3, + implicit_bf : 1; } wmi_vdev_txbf_en; /** Upto 8 bits are available for Roaming module to be sent along with - WMI_VDEV_PARAM_ROAM_FW_OFFLOAD WMI_VDEV_PARAM **/ +WMI_VDEV_PARAM_ROAM_FW_OFFLOAD WMI_VDEV_PARAM **/ /* Enable Roaming FW offload LFR1.5/LFR2.0 implementation */ #define WMI_ROAM_FW_OFFLOAD_ENABLE_FLAG 0x1 /* Enable Roaming module in FW to do scan based on Final BMISS */ @@ -6736,191 +6469,191 @@ typedef struct { /** the definition of different START/RESTART Event response */ typedef enum { - /* Event respose of START CMD */ - WMI_VDEV_START_RESP_EVENT = 0, - /* Event respose of RESTART CMD */ - WMI_VDEV_RESTART_RESP_EVENT, + /* Event respose of START CMD */ + WMI_VDEV_START_RESP_EVENT = 0, + /* Event respose of RESTART CMD */ + WMI_VDEV_RESTART_RESP_EVENT, } WMI_START_EVENT_PARAM; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_start_response_event_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** requestor id that requested the VDEV start request */ - A_UINT32 requestor_id; - /* Respose of Event type START/RESTART */ - WMI_START_EVENT_PARAM resp_type; - /** status of the response */ - A_UINT32 status; - /** Vdev chain mask */ - A_UINT32 chain_mask; - /** Vdev mimo power save mode */ - A_UINT32 smps_mode; - union { - /* OBSOLETE - will be removed once all refs are gone */ - A_UINT32 mac_id; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - }; - /** Configured Transmit Streams **/ - A_UINT32 cfgd_tx_streams; - /** Configured Receive Streams **/ - A_UINT32 cfgd_rx_streams; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_start_response_event_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** requestor id that requested the VDEV start request */ + A_UINT32 requestor_id; + /* Respose of Event type START/RESTART */ + WMI_START_EVENT_PARAM resp_type; + /** status of the response */ + A_UINT32 status; + /** Vdev chain mask */ + A_UINT32 chain_mask; + /** Vdev mimo power save mode */ + A_UINT32 smps_mode; + union { + A_UINT32 mac_id; /* OBSOLETE - will be removed once all refs are gone */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + }; + /** Configured Transmit Streams **/ + A_UINT32 cfgd_tx_streams; + /** Configured Receive Streams **/ + A_UINT32 cfgd_rx_streams; } wmi_vdev_start_response_event_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_stopped_event_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_stopped_event_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; } wmi_vdev_stopped_event_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_delete_resp_event_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_delete_resp_event_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; } wmi_vdev_delete_resp_event_fixed_param; /** common structure used for simple events (stopped, resume_req, standby response) */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag would be equivalent to actual event */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag would be equivalent to actual event */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; } wmi_vdev_simple_event_fixed_param; + /** VDEV start response status codes */ -#define WMI_VDEV_START_RESPONSE_STATUS_SUCCESS 0x0 /** VDEV succesfully started */ -#define WMI_VDEV_START_RESPONSE_INVALID_VDEVID 0x1 /** requested VDEV not found */ -#define WMI_VDEV_START_RESPONSE_NOT_SUPPORTED 0x2 /** unsupported VDEV combination */ +#define WMI_VDEV_START_RESPONSE_STATUS_SUCCESS 0x0 /** VDEV succesfully started */ +#define WMI_VDEV_START_RESPONSE_INVALID_VDEVID 0x1 /** requested VDEV not found */ +#define WMI_VDEV_START_RESPONSE_NOT_SUPPORTED 0x2 /** unsupported VDEV combination */ /** Beacon processing related command and event structures */ typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_bcn_tx_hdr */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** xmit rate */ - A_UINT32 tx_rate; - /** xmit power */ - A_UINT32 txPower; - /** beacon buffer length in bytes */ - A_UINT32 buf_len; - /* This TLV is followed by array of bytes: - * // beacon frame buffer - * A_UINT8 bufp[]; - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_bcn_tx_hdr */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** xmit rate */ + A_UINT32 tx_rate; + /** xmit power */ + A_UINT32 txPower; + /** beacon buffer length in bytes */ + A_UINT32 buf_len; +/* This TLV is followed by array of bytes: + * A_UINT8 bufp[]; <-- beacon frame buffer + */ } wmi_bcn_tx_hdr; /* Beacon filter */ -#define WMI_BCN_FILTER_ALL 0 /* Filter all beacons */ -#define WMI_BCN_FILTER_NONE 1 /* Pass all beacons */ -#define WMI_BCN_FILTER_RSSI 2 /* Pass Beacons RSSI >= RSSI threshold */ -#define WMI_BCN_FILTER_BSSID 3 /* Pass Beacons with matching BSSID */ -#define WMI_BCN_FILTER_SSID 4 /* Pass Beacons with matching SSID */ +#define WMI_BCN_FILTER_ALL 0 /* Filter all beacons */ +#define WMI_BCN_FILTER_NONE 1 /* Pass all beacons */ +#define WMI_BCN_FILTER_RSSI 2 /* Pass Beacons RSSI >= RSSI threshold */ +#define WMI_BCN_FILTER_BSSID 3 /* Pass Beacons with matching BSSID */ +#define WMI_BCN_FILTER_SSID 4 /* Pass Beacons with matching SSID */ typedef struct { - /** Filter ID */ - A_UINT32 bcn_filter_id; - /** Filter type - wmi_bcn_filter */ - A_UINT32 bcn_filter; - /** Buffer len */ - A_UINT32 bcn_filter_len; - /** Filter info (threshold, BSSID, RSSI) */ - A_UINT8 *bcn_filter_buf; + /** Filter ID */ + A_UINT32 bcn_filter_id; + /** Filter type - wmi_bcn_filter */ + A_UINT32 bcn_filter; + /** Buffer len */ + A_UINT32 bcn_filter_len; + /** Filter info (threshold, BSSID, RSSI) */ + A_UINT8 *bcn_filter_buf; } wmi_bcn_filter_rx_cmd; /** Capabilities and IEs to be passed to firmware */ typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_bcn_prb_info */ - /** Capabilities */ - A_UINT32 caps; - /** ERP info */ - A_UINT32 erp; - /** Advanced capabilities */ - /** HT capabilities */ - /** HT Info */ - /** ibss_dfs */ - /** wpa Info */ - /** rsn Info */ - /** rrm info */ - /** ath_ext */ - /** app IE */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_bcn_prb_info */ + /** Capabilities */ + A_UINT32 caps; + /** ERP info */ + A_UINT32 erp; +/** Advanced capabilities */ +/** HT capabilities */ +/** HT Info */ +/** ibss_dfs */ +/** wpa Info */ +/** rsn Info */ +/** rrm info */ +/** ath_ext */ +/** app IE */ } wmi_bcn_prb_info; typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_bcn_tmpl_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** TIM IE offset from the beginning of the template. */ - A_UINT32 tim_ie_offset; - /** beacon buffer length. data is in TLV data[] */ - A_UINT32 buf_len; - /* - * The TLVs follows: - * wmi_bcn_prb_info bcn_prb_info; //beacon probe capabilities and IEs - * A_UINT8 data[]; //Variable length data - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_bcn_tmpl_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** TIM IE offset from the beginning of the template. */ + A_UINT32 tim_ie_offset; + /** beacon buffer length. data is in TLV data[] */ + A_UINT32 buf_len; + +/* + * The TLVs follows: + * wmi_bcn_prb_info bcn_prb_info; <-- beacon probe capabilities and IEs + * A_UINT8 data[]; <-- Variable length data + */ } wmi_bcn_tmpl_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_prb_tmpl_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** beacon buffer length. data is in TLV data[] */ - A_UINT32 buf_len; - /* - * The TLVs follows: - * wmi_bcn_prb_info bcn_prb_info; //beacon probe capabilities and IEs - * A_UINT8 data[]; //Variable length data - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_prb_tmpl_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** beacon buffer length. data is in TLV data[] */ + A_UINT32 buf_len; +/* + * The TLVs follows: + * wmi_bcn_prb_info bcn_prb_info; <-- beacon probe capabilities and IEs + * A_UINT8 data[]; <-- Variable length data + */ } wmi_prb_tmpl_cmd_fixed_param; typedef struct { - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_offload_bcn_tx_status_event_fixed_param */ - A_UINT32 tlv_header; - /** unique id identifying the VDEV */ - A_UINT32 vdev_id; - /** bcn tx status, values defined in enum WMI_FRAME_TX_STATUS */ - A_UINT32 tx_status; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_offload_bcn_tx_status_event_fixed_param */ + A_UINT32 tlv_header; + /** unique id identifying the VDEV */ + A_UINT32 vdev_id; + /** bcn tx status, values defined in enum WMI_FRAME_TX_STATUS */ + A_UINT32 tx_status; } wmi_offload_bcn_tx_status_event_fixed_param; enum wmi_sta_ps_mode { - /** enable power save for the given STA VDEV */ - WMI_STA_PS_MODE_DISABLED = 0, - /** disable power save for a given STA VDEV */ - WMI_STA_PS_MODE_ENABLED = 1, + /** enable power save for the given STA VDEV */ + WMI_STA_PS_MODE_DISABLED = 0, + /** disable power save for a given STA VDEV */ + WMI_STA_PS_MODE_ENABLED = 1, }; typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sta_powersave_mode_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sta_powersave_mode_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; - /** Power save mode - * - * (see enum wmi_sta_ps_mode) - */ - A_UINT32 sta_ps_mode; + /** Power save mode + * + * (see enum wmi_sta_ps_mode) + */ + A_UINT32 sta_ps_mode; } wmi_sta_powersave_mode_cmd_fixed_param; enum wmi_csa_offload_en { - WMI_CSA_OFFLOAD_DISABLE = 0, - WMI_CSA_OFFLOAD_ENABLE = 1, + WMI_CSA_OFFLOAD_DISABLE = 0, + WMI_CSA_OFFLOAD_ENABLE = 1, }; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_csa_offload_enable_cmd_fixed_param */ - A_UINT32 vdev_id; - A_UINT32 csa_offload_enable; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_csa_offload_enable_cmd_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 csa_offload_enable; } wmi_csa_offload_enable_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_csa_offload_chanswitch_cmd_fixed_param */ - A_UINT32 vdev_id; - /* - * The TLVs follows: - * wmi_channel chan; - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_csa_offload_chanswitch_cmd_fixed_param */ + A_UINT32 vdev_id; +/* + * The TLVs follows: + * wmi_channel chan; + */ } wmi_csa_offload_chanswitch_cmd_fixed_param; /** * This parameter controls the policy for retrieving frames from AP while the @@ -6929,20 +6662,20 @@ typedef struct { * Only takes affect if the sta_ps_mode is enabled */ enum wmi_sta_ps_param_rx_wake_policy { - /* Wake up when ever there is an RX activity on the VDEV. In this mode - * the Power save SM(state machine) will come out of sleep by either - * sending null frame (or) a data frame (with PS==0) in response to TIM - * bit set in the received beacon frame from AP. - */ - WMI_STA_PS_RX_WAKE_POLICY_WAKE = 0, + /* Wake up when ever there is an RX activity on the VDEV. In this mode + * the Power save SM(state machine) will come out of sleep by either + * sending null frame (or) a data frame (with PS==0) in response to TIM + * bit set in the received beacon frame from AP. + */ + WMI_STA_PS_RX_WAKE_POLICY_WAKE = 0, - /* Here the power save state machine will not wakeup in response to TIM - * bit, instead it will send a PSPOLL (or) UASPD trigger based on UAPSD - * configuration setup by WMISET_PS_SET_UAPSD WMI command. When all - * access categories are delivery-enabled, the station will send a UAPSD - * trigger frame, otherwise it will send a PS-Poll. - */ - WMI_STA_PS_RX_WAKE_POLICY_POLL_UAPSD = 1, + /* Here the power save state machine will not wakeup in response to TIM + * bit, instead it will send a PSPOLL (or) UASPD trigger based on UAPSD + * configuration setup by WMISET_PS_SET_UAPSD WMI command. When all + * access categories are delivery-enabled, the station will send a UAPSD + * trigger frame, otherwise it will send a PS-Poll. + */ + WMI_STA_PS_RX_WAKE_POLICY_POLL_UAPSD = 1, }; /** Number of tx frames/beacon that cause the power save SM to wake up. @@ -6953,12 +6686,12 @@ enum wmi_sta_ps_param_rx_wake_policy { * can change this parameter any time. It will affect at the next tx frame. */ enum wmi_sta_ps_param_tx_wake_threshold { - WMI_STA_PS_TX_WAKE_THRESHOLD_NEVER = 0, - WMI_STA_PS_TX_WAKE_THRESHOLD_ALWAYS = 1, + WMI_STA_PS_TX_WAKE_THRESHOLD_NEVER = 0, + WMI_STA_PS_TX_WAKE_THRESHOLD_ALWAYS = 1, - /* Values greater than one indicate that many TX attempts per beacon - * interval before the STA will wake up - */ +/* Values greater than one indicate that many TX attempts per beacon + * interval before the STA will wake up + */ }; /** @@ -6971,10 +6704,10 @@ enum wmi_sta_ps_param_tx_wake_threshold { * policy is WMI_STA_PS_RX_WAKE_POLICY_WAKE. */ enum wmi_sta_ps_param_pspoll_count { - WMI_STA_PS_PSPOLL_COUNT_NO_MAX = 0, - /* Values greater than 0 indicate the maximum numer of PS-Poll frames FW - * will send before waking up. - */ + WMI_STA_PS_PSPOLL_COUNT_NO_MAX = 0, +/* Values greater than 0 indicate the maximum numer of PS-Poll frames FW + * will send before waking up. + */ }; /* @@ -6986,95 +6719,95 @@ enum wmi_sta_ps_param_pspoll_count { #define WMI_UAPSD_AC_TYPE_DELI 0 #define WMI_UAPSD_AC_TYPE_TRIG 1 -#define WMI_UAPSD_AC_BIT_MASK(ac, type) \ - do { \ - (type == WMI_UAPSD_AC_TYPE_DELI) ? (1<<(ac<<1)) : \ - (1<<((ac<<1)+1)) \ - } while (0) +#define WMI_UAPSD_AC_BIT_MASK(ac,type) \ + ((type == WMI_UAPSD_AC_TYPE_DELI) ? \ + (1 << (ac<<1)) : \ + (1 << ((ac<<1)+1))) enum wmi_sta_ps_param_uapsd { - WMI_STA_PS_UAPSD_AC0_DELIVERY_EN = (1 << 0), - WMI_STA_PS_UAPSD_AC0_TRIGGER_EN = (1 << 1), - WMI_STA_PS_UAPSD_AC1_DELIVERY_EN = (1 << 2), - WMI_STA_PS_UAPSD_AC1_TRIGGER_EN = (1 << 3), - WMI_STA_PS_UAPSD_AC2_DELIVERY_EN = (1 << 4), - WMI_STA_PS_UAPSD_AC2_TRIGGER_EN = (1 << 5), - WMI_STA_PS_UAPSD_AC3_DELIVERY_EN = (1 << 6), - WMI_STA_PS_UAPSD_AC3_TRIGGER_EN = (1 << 7), + WMI_STA_PS_UAPSD_AC0_DELIVERY_EN = (1 << 0), + WMI_STA_PS_UAPSD_AC0_TRIGGER_EN = (1 << 1), + WMI_STA_PS_UAPSD_AC1_DELIVERY_EN = (1 << 2), + WMI_STA_PS_UAPSD_AC1_TRIGGER_EN = (1 << 3), + WMI_STA_PS_UAPSD_AC2_DELIVERY_EN = (1 << 4), + WMI_STA_PS_UAPSD_AC2_TRIGGER_EN = (1 << 5), + WMI_STA_PS_UAPSD_AC3_DELIVERY_EN = (1 << 6), + WMI_STA_PS_UAPSD_AC3_TRIGGER_EN = (1 << 7), }; enum wmi_sta_powersave_param { - /** - * Controls how frames are retrievd from AP while STA is sleeping - * - * (see enum wmi_sta_ps_param_rx_wake_policy) - */ - WMI_STA_PS_PARAM_RX_WAKE_POLICY = 0, +/** + * Controls how frames are retrievd from AP while STA is sleeping + * + * (see enum wmi_sta_ps_param_rx_wake_policy) + */ +WMI_STA_PS_PARAM_RX_WAKE_POLICY = 0, - /** - * The STA will go active after this many TX - * - * (see enum wmi_sta_ps_param_tx_wake_threshold) - */ - WMI_STA_PS_PARAM_TX_WAKE_THRESHOLD = 1, +/** + * The STA will go active after this many TX + * + * (see enum wmi_sta_ps_param_tx_wake_threshold) + */ +WMI_STA_PS_PARAM_TX_WAKE_THRESHOLD = 1, - /** - * Number of PS-Poll to send before STA wakes up - * - * (see enum wmi_sta_ps_param_pspoll_count) - * - */ - WMI_STA_PS_PARAM_PSPOLL_COUNT = 2, +/** + * Number of PS-Poll to send before STA wakes up + * + * (see enum wmi_sta_ps_param_pspoll_count) + * + */ +WMI_STA_PS_PARAM_PSPOLL_COUNT = 2, - /** - * TX/RX inactivity time in msec before going to sleep. - * - * The power save SM will monitor tx/rx activity on the VDEV, if no - * activity for the specified msec of the parameter the Power save SM will - * go to sleep. - */ - WMI_STA_PS_PARAM_INACTIVITY_TIME = 3, +/** + * TX/RX inactivity time in msec before going to sleep. + * + * The power save SM will monitor tx/rx activity on the VDEV, if no + * activity for the specified msec of the parameter the Power save SM will + * go to sleep. + */ +WMI_STA_PS_PARAM_INACTIVITY_TIME = 3, - /** - * Set uapsd configuration. - * - * (see enum wmi_sta_ps_param_uapsd) - */ - WMI_STA_PS_PARAM_UAPSD = 4, - /** - * Number of PS-Poll to send before STA wakes up in QPower Mode - */ - WMI_STA_PS_PARAM_QPOWER_PSPOLL_COUNT = 5, +/** + * Set uapsd configuration. + * + * (see enum wmi_sta_ps_param_uapsd) + */ +WMI_STA_PS_PARAM_UAPSD = 4, - /** - * Enable QPower - */ - WMI_STA_PS_ENABLE_QPOWER = 6, +/** + * Number of PS-Poll to send before STA wakes up in QPower Mode + */ +WMI_STA_PS_PARAM_QPOWER_PSPOLL_COUNT = 5, - /** - * Number of TX frames before the entering the Active state - */ - WMI_STA_PS_PARAM_QPOWER_MAX_TX_BEFORE_WAKE = 7, +/** + * Enable QPower + */ +WMI_STA_PS_ENABLE_QPOWER = 6, - /** - * QPower SPEC PSPOLL interval - */ - WMI_STA_PS_PARAM_QPOWER_SPEC_PSPOLL_WAKE_INTERVAL = 8, +/** + * Number of TX frames before the entering the Active state + */ +WMI_STA_PS_PARAM_QPOWER_MAX_TX_BEFORE_WAKE = 7, - /** - * Max SPEC PSPOLL to be sent when the PSPOLL response has - * no-data bit set - */ - WMI_STA_PS_PARAM_QPOWER_SPEC_MAX_SPEC_NODATA_PSPOLL = 9, +/** + * QPower SPEC PSPOLL interval + */ +WMI_STA_PS_PARAM_QPOWER_SPEC_PSPOLL_WAKE_INTERVAL = 8, + +/** + * Max SPEC PSPOLL to be sent when the PSPOLL response has + * no-data bit set + */ +WMI_STA_PS_PARAM_QPOWER_SPEC_MAX_SPEC_NODATA_PSPOLL = 9, }; typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sta_powersave_param_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** station power save parameter (see enum wmi_sta_powersave_param) */ - A_UINT32 param; - A_UINT32 value; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sta_powersave_param_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** station power save parameter (see enum wmi_sta_powersave_param) */ + A_UINT32 param; + A_UINT32 value; } wmi_sta_powersave_param_cmd_fixed_param; /** No MIMO power save */ @@ -7085,42 +6818,43 @@ typedef struct { #define WMI_STA_MIMO_PS_MODE_DYNAMI typedef struct { - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** mimo powersave mode as defined above */ - A_UINT32 mimo_pwrsave_mode; + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** mimo powersave mode as defined above */ + A_UINT32 mimo_pwrsave_mode; } wmi_sta_mimo_ps_mode_cmd; + /** U-APSD configuration of peer station from (re)assoc request and TSPECs */ enum wmi_ap_ps_param_uapsd { - WMI_AP_PS_UAPSD_AC0_DELIVERY_EN = (1 << 0), - WMI_AP_PS_UAPSD_AC0_TRIGGER_EN = (1 << 1), - WMI_AP_PS_UAPSD_AC1_DELIVERY_EN = (1 << 2), - WMI_AP_PS_UAPSD_AC1_TRIGGER_EN = (1 << 3), - WMI_AP_PS_UAPSD_AC2_DELIVERY_EN = (1 << 4), - WMI_AP_PS_UAPSD_AC2_TRIGGER_EN = (1 << 5), - WMI_AP_PS_UAPSD_AC3_DELIVERY_EN = (1 << 6), - WMI_AP_PS_UAPSD_AC3_TRIGGER_EN = (1 << 7), + WMI_AP_PS_UAPSD_AC0_DELIVERY_EN = (1 << 0), + WMI_AP_PS_UAPSD_AC0_TRIGGER_EN = (1 << 1), + WMI_AP_PS_UAPSD_AC1_DELIVERY_EN = (1 << 2), + WMI_AP_PS_UAPSD_AC1_TRIGGER_EN = (1 << 3), + WMI_AP_PS_UAPSD_AC2_DELIVERY_EN = (1 << 4), + WMI_AP_PS_UAPSD_AC2_TRIGGER_EN = (1 << 5), + WMI_AP_PS_UAPSD_AC3_DELIVERY_EN = (1 << 6), + WMI_AP_PS_UAPSD_AC3_TRIGGER_EN = (1 << 7), }; /** U-APSD maximum service period of peer station */ enum wmi_ap_ps_peer_param_max_sp { - WMI_AP_PS_PEER_PARAM_MAX_SP_UNLIMITED = 0, - WMI_AP_PS_PEER_PARAM_MAX_SP_2 = 1, - WMI_AP_PS_PEER_PARAM_MAX_SP_4 = 2, - WMI_AP_PS_PEER_PARAM_MAX_SP_6 = 3, + WMI_AP_PS_PEER_PARAM_MAX_SP_UNLIMITED = 0, + WMI_AP_PS_PEER_PARAM_MAX_SP_2 = 1, + WMI_AP_PS_PEER_PARAM_MAX_SP_4 = 2, + WMI_AP_PS_PEER_PARAM_MAX_SP_6 = 3, - /* keep last! */ - MAX_WMI_AP_PS_PEER_PARAM_MAX_SP, + /* keep last! */ + MAX_WMI_AP_PS_PEER_PARAM_MAX_SP, }; /** param values for WMI_AP_PS_PEER_PARAM_SIFS_RESP_FRMTYPE */ enum wmi_ap_ps_param_sifs_resp_frmtype { - WMI_SIFS_RESP_PSPOLL = (1 << 0), - WMI_SIFS_RESP_UAPSD = (1 << 1), - WMI_SIFS_RESP_QBST_EXP = (1 << 2), - WMI_SIFS_RESP_QBST_DATA = (1 << 3), - WMI_SIFS_RESP_QBST_BAR = (1 << 4), + WMI_SIFS_RESP_PSPOLL = (1 << 0), + WMI_SIFS_RESP_UAPSD = (1 << 1), + WMI_SIFS_RESP_QBST_EXP = (1 << 2), + WMI_SIFS_RESP_QBST_DATA = (1 << 3), + WMI_SIFS_RESP_QBST_BAR = (1 << 4), }; /** @@ -7128,56 +6862,54 @@ enum wmi_ap_ps_param_sifs_resp_frmtype { * Set a power save specific parameter for a peer station */ enum wmi_ap_ps_peer_param { - /** Set uapsd configuration for a given peer. - * - * This will include the delivery and trigger enabled state for every AC. - * The host MLME needs to set this based on AP capability and stations - * request Set in the association request received from the station. - * - * Lower 8 bits of the value specify the UAPSD configuration. - * - * (see enum wmi_ap_ps_param_uapsd) - * The default value is 0. - */ - WMI_AP_PS_PEER_PARAM_UAPSD = 0, + /** Set uapsd configuration for a given peer. + * + * This will include the delivery and trigger enabled state for every AC. + * The host MLME needs to set this based on AP capability and stations + * request Set in the association request received from the station. + * + * Lower 8 bits of the value specify the UAPSD configuration. + * + * (see enum wmi_ap_ps_param_uapsd) + * The default value is 0. + */ + WMI_AP_PS_PEER_PARAM_UAPSD = 0, - /** - * Set the service period for a UAPSD capable station - * - * The service period from wme ie in the (re)assoc request frame. - * - * (see enum wmi_ap_ps_peer_param_max_sp) - */ - WMI_AP_PS_PEER_PARAM_MAX_SP = 1, + /** + * Set the service period for a UAPSD capable station + * + * The service period from wme ie in the (re)assoc request frame. + * + * (see enum wmi_ap_ps_peer_param_max_sp) + */ + WMI_AP_PS_PEER_PARAM_MAX_SP = 1, - /** Time in seconds for aging out buffered frames for STA in power save */ - WMI_AP_PS_PEER_PARAM_AGEOUT_TIME = 2, - /** - * Specify frame types that are considered SIFS RESP trigger frame - * (see enum wmi_ap_ps_param_sifs_resp_frmtype) - */ - WMI_AP_PS_PEER_PARAM_SIFS_RESP_FRMTYPE = 3, + /** Time in seconds for aging out buffered frames for STA in power save */ + WMI_AP_PS_PEER_PARAM_AGEOUT_TIME = 2, - /* - * Specifies the trigger state of TID. - * Valid only for UAPSD frame type - */ - WMI_AP_PS_PEER_PARAM_SIFS_RESP_UAPSD = 4, + /** + * Specify frame types that are considered SIFS RESP trigger frame + * (see enum wmi_ap_ps_param_sifs_resp_frmtype) + */ + WMI_AP_PS_PEER_PARAM_SIFS_RESP_FRMTYPE = 3, - /** Specifies the WNM sleep state of a STA */ - WMI_AP_PS_PEER_PARAM_WNM_SLEEP = 5, + /** Specifies the trigger state of TID. Valid only for UAPSD frame type */ + WMI_AP_PS_PEER_PARAM_SIFS_RESP_UAPSD = 4, + + /** Specifies the WNM sleep state of a STA */ + WMI_AP_PS_PEER_PARAM_WNM_SLEEP = 5, }; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ap_ps_peer_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /** AP powersave param (see enum wmi_ap_ps_peer_param) */ - A_UINT32 param; - /** AP powersave param value (see defines) */ - A_UINT32 value; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ap_ps_peer_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** AP powersave param (see enum wmi_ap_ps_peer_param) */ + A_UINT32 param; + /** AP powersave param value (see defines) */ + A_UINT32 value; } wmi_ap_ps_peer_cmd_fixed_param; /** Configure peer station 11v U-APSD coexistance @@ -7211,270 +6943,256 @@ typedef struct { * calculation: End of transmission period = T + Duration */ typedef struct { - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /** Enable U-APSD coexistence support for this peer - * - * 0 -> disabled (default) - * 1 -> enabled - */ - A_UINT32 enabled; - /** Duration/Interval as defined by 11v U-ASPD coexistance */ - A_UINT32 duration_interval; - /** Upper 32 bits of 64-bit TSF offset */ - A_UINT32 tsf_offset_high; - /** Lower 32 bits of 64-bit TSF offset */ - A_UINT32 tsf_offset_low; + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** Enable U-APSD coexistence support for this peer + * + * 0 -> disabled (default) + * 1 -> enabled + */ + A_UINT32 enabled; + /** Duration/Interval as defined by 11v U-ASPD coexistance */ + A_UINT32 duration_interval; + /** Upper 32 bits of 64-bit TSF offset */ + A_UINT32 tsf_offset_high; + /** Lower 32 bits of 64-bit TSF offset */ + A_UINT32 tsf_offset_low; } wmi_ap_powersave_peer_uapsd_coex_cmd; typedef enum { - WMI_AP_PS_EGAP_F_ENABLE_PHYERR_DETECTION = 0x0001, - WMI_AP_PS_EGAP_F_ENABLE_PWRSAVE_BY_PS_STATE = 0x0002, - WMI_AP_PS_EGAP_F_ENABLE_PWRSAVE_BY_INACTIVITY = 0x0004, + WMI_AP_PS_EGAP_F_ENABLE_PHYERR_DETECTION = 0x0001, + WMI_AP_PS_EGAP_F_ENABLE_PWRSAVE_BY_PS_STATE = 0x0002, + WMI_AP_PS_EGAP_F_ENABLE_PWRSAVE_BY_INACTIVITY = 0x0004, - WMI_AP_PS_EGAP_FLAG_MAX = 0x8000 + WMI_AP_PS_EGAP_FLAG_MAX = 0x8000 } wmi_ap_ps_egap_flag_type; /** * configure ehanced green ap parameters */ typedef struct { - /* - * TLV tag and len; tag equals - * wmi_ap_powersave_egap_param_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** Enable enhanced green ap - * 0 -> disabled - * 1 -> enabled - */ - A_UINT32 enable; - /** The param indicates a duration that all STAs connected - * to S-AP have no traffic. - */ - A_UINT32 inactivity_time; /* in unit of milliseconds */ - /** The param indicates a duration that all STAs connected - * to S-AP have no traffic, after all STAs have entered powersave. - */ - A_UINT32 wait_time; /* in unit of milliseconds */ - /** The param is used to turn on/off some functions within E-GAP. - */ - A_UINT32 flags; /* wmi_ap_ps_egap_flag_type bitmap */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals wmi_ap_powersave_egap_param_cmd_fixed_param */ + /** Enable enhanced green ap + * 0 -> disabled + * 1 -> enabled + */ + A_UINT32 enable; + /** The param indicates a duration that all STAs connected + * to S-AP have no traffic. + */ + A_UINT32 inactivity_time; /* in unit of milliseconds */ + /** The param indicates a duration that all STAs connected + * to S-AP have no traffic, after all STAs have entered powersave. + */ + A_UINT32 wait_time; /* in unit of milliseconds */ + /** The param is used to turn on/off some functions within E-GAP. + */ + A_UINT32 flags; /* wmi_ap_ps_egap_flag_type bitmap */ } wmi_ap_ps_egap_param_cmd_fixed_param; typedef enum { - WMI_AP_PS_EGAP_STATUS_IDLE = 1, - WMI_AP_PS_EGAP_STATUS_PWRSAVE_OFF = 2, - WMI_AP_PS_EGAP_STATUS_PWRSAVE_ON = 3, + WMI_AP_PS_EGAP_STATUS_IDLE = 1, + WMI_AP_PS_EGAP_STATUS_PWRSAVE_OFF = 2, + WMI_AP_PS_EGAP_STATUS_PWRSAVE_ON = 3, - WMI_AP_PS_EGAP_STATUS_MAX = 15 + WMI_AP_PS_EGAP_STATUS_MAX = 15 } wmi_ap_ps_egap_status_type; /** * send ehanced green ap status to host */ -typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ap_ps_egap_info_chainmask_list - */ - A_UINT32 tlv_header; - union { - /* OBSOLETE - will be removed once all refs are gone */ - A_UINT32 mac_id; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - }; - /** The param indicates the current tx chainmask with the mac id. */ - A_UINT32 tx_chainmask; - /** The param indicates the current rx chainmask with the mac id. */ - A_UINT32 rx_chainmask; +typedef struct +{ + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_ap_ps_egap_info_chainmask_list */ + A_UINT32 tlv_header; + union { + A_UINT32 mac_id; /* OBSOLETE - will be removed once all refs are gone */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + }; + /** The param indicates the current tx chainmask with the mac id. */ + A_UINT32 tx_chainmask; + /** The param indicates the current rx chainmask with the mac id. */ + A_UINT32 rx_chainmask; } wmi_ap_ps_egap_info_chainmask_list; typedef struct { - /* - * TLV tag and len; tag equals - * wmi_ap_powersave_egap_param_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** Enhanced green ap status (WMI_AP_PS_EGAP_STATUS). */ - A_UINT32 status; - /* This TLV is followed by - * wmi_ap_ps_egap_info_chainmask_list chainmask_list[]; - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals wmi_ap_powersave_egap_param_cmd_fixed_param */ + /** Enhanced green ap status (WMI_AP_PS_EGAP_STATUS). */ + A_UINT32 status; +/* This TLV is followed by + * wmi_ap_ps_egap_info_chainmask_list chainmask_list[]; + */ } wmi_ap_ps_egap_info_event_fixed_param; - /* 128 clients = 4 words */ /* WMI_TIM_BITMAP_ARRAY_SIZE can't be modified without breaking the compatibility */ #define WMI_TIM_BITMAP_ARRAY_SIZE 4 typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tim_info */ - /** TIM bitmap len (in bytes) */ - A_UINT32 tim_len; - /** TIM Partial Virtual Bitmap */ - A_UINT32 tim_mcast; - A_UINT32 tim_bitmap[WMI_TIM_BITMAP_ARRAY_SIZE]; - A_UINT32 tim_changed; - A_UINT32 tim_num_ps_pending; - /** Use the vdev_id only if vdev_id_valid is set */ - A_UINT32 vdev_id_valid; - /** unique id identifying the VDEV */ - A_UINT32 vdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tim_info */ + /** TIM bitmap len (in bytes) */ + A_UINT32 tim_len; + /** TIM Partial Virtual Bitmap */ + A_UINT32 tim_mcast; + A_UINT32 tim_bitmap[WMI_TIM_BITMAP_ARRAY_SIZE]; + A_UINT32 tim_changed; + A_UINT32 tim_num_ps_pending; + /** Use the vdev_id only if vdev_id_valid is set */ + A_UINT32 vdev_id_valid; + /** unique id identifying the VDEV */ + A_UINT32 vdev_id; } wmi_tim_info; typedef struct { - /** Flag to enable quiet period IE support */ - A_UINT32 is_enabled; - /** Quiet start */ - A_UINT32 tbttcount; - /** Beacon intervals between quiets*/ - A_UINT32 period; - /** TUs of each quiet*/ - A_UINT32 duration; - /** TUs of from TBTT of quiet start*/ - A_UINT32 offset; + /** Flag to enable quiet period IE support */ + A_UINT32 is_enabled; + /** Quiet start */ + A_UINT32 tbttcount; + /** Beacon intervals between quiets*/ + A_UINT32 period; + /** TUs of each quiet*/ + A_UINT32 duration; + /** TUs of from TBTT of quiet start*/ + A_UINT32 offset; } wmi_quiet_info; /* WMI_P2P_MAX_NOA_DESCRIPTORS can't be modified without breaking the compatibility */ #define WMI_P2P_MAX_NOA_DESCRIPTORS 4 /* Maximum number of NOA Descriptors supported */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_p2p_noa_info */ - /** Bit 0: Flag to indicate an update in NOA schedule - * Bits 7-1: Reserved - * Bits 15-8: Index (identifies the instance of NOA sub element) - * Bit 16: Opp PS state of the AP - * Bits 23-17: Ctwindow in TUs - * Bits 31-24: Number of NOA descriptors - */ - A_UINT32 noa_attributes; - wmi_p2p_noa_descriptor - noa_descriptors[WMI_P2P_MAX_NOA_DESCRIPTORS]; - /** Use the vdev_id only if vdev_id_valid is set */ - A_UINT32 vdev_id_valid; - /** unique id identifying the VDEV */ - A_UINT32 vdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_p2p_noa_info */ + /** Bit 0: Flag to indicate an update in NOA schedule + * Bits 7-1: Reserved + * Bits 15-8: Index (identifies the instance of NOA sub element) + * Bit 16: Opp PS state of the AP + * Bits 23-17: Ctwindow in TUs + * Bits 31-24: Number of NOA descriptors + */ + A_UINT32 noa_attributes; + wmi_p2p_noa_descriptor noa_descriptors[WMI_P2P_MAX_NOA_DESCRIPTORS]; + /** Use the vdev_id only if vdev_id_valid is set */ + A_UINT32 vdev_id_valid; + /** unique id identifying the VDEV */ + A_UINT32 vdev_id; } wmi_p2p_noa_info; -#define WMI_UNIFIED_NOA_ATTR_MODIFIED 0x1 -#define WMI_UNIFIED_NOA_ATTR_MODIFIED_S 0 +#define WMI_UNIFIED_NOA_ATTR_MODIFIED 0x1 +#define WMI_UNIFIED_NOA_ATTR_MODIFIED_S 0 -#define WMI_UNIFIED_NOA_ATTR_IS_MODIFIED(hdr) \ - WMI_F_MS((hdr)->noa_attributes, WMI_UNIFIED_NOA_ATTR_MODIFIED) +#define WMI_UNIFIED_NOA_ATTR_IS_MODIFIED(hdr) \ + WMI_F_MS((hdr)->noa_attributes, WMI_UNIFIED_NOA_ATTR_MODIFIED) -#define WMI_UNIFIED_NOA_ATTR_MODIFIED_SET(hdr) \ - WMI_F_RMW((hdr)->noa_attributes, 0x1, \ - WMI_UNIFIED_NOA_ATTR_MODIFIED); +#define WMI_UNIFIED_NOA_ATTR_MODIFIED_SET(hdr) \ + WMI_F_RMW((hdr)->noa_attributes, 0x1, \ + WMI_UNIFIED_NOA_ATTR_MODIFIED); -#define WMI_UNIFIED_NOA_ATTR_INDEX 0xff00 -#define WMI_UNIFIED_NOA_ATTR_INDEX_S 8 +#define WMI_UNIFIED_NOA_ATTR_INDEX 0xff00 +#define WMI_UNIFIED_NOA_ATTR_INDEX_S 8 -#define WMI_UNIFIED_NOA_ATTR_INDEX_GET(hdr) \ - WMI_F_MS((hdr)->noa_attributes, WMI_UNIFIED_NOA_ATTR_INDEX) +#define WMI_UNIFIED_NOA_ATTR_INDEX_GET(hdr) \ + WMI_F_MS((hdr)->noa_attributes, WMI_UNIFIED_NOA_ATTR_INDEX) -#define WMI_UNIFIED_NOA_ATTR_INDEX_SET(hdr, v) \ - WMI_F_RMW((hdr)->noa_attributes, (v) & 0xff, \ - WMI_UNIFIED_NOA_ATTR_INDEX); +#define WMI_UNIFIED_NOA_ATTR_INDEX_SET(hdr, v) \ + WMI_F_RMW((hdr)->noa_attributes, (v) & 0xff, \ + WMI_UNIFIED_NOA_ATTR_INDEX); -#define WMI_UNIFIED_NOA_ATTR_OPP_PS 0x10000 -#define WMI_UNIFIED_NOA_ATTR_OPP_PS_S 16 +#define WMI_UNIFIED_NOA_ATTR_OPP_PS 0x10000 +#define WMI_UNIFIED_NOA_ATTR_OPP_PS_S 16 -#define WMI_UNIFIED_NOA_ATTR_OPP_PS_GET(hdr) \ - WMI_F_MS((hdr)->noa_attributes, WMI_UNIFIED_NOA_ATTR_OPP_PS) +#define WMI_UNIFIED_NOA_ATTR_OPP_PS_GET(hdr) \ + WMI_F_MS((hdr)->noa_attributes, WMI_UNIFIED_NOA_ATTR_OPP_PS) -#define WMI_UNIFIED_NOA_ATTR_OPP_PS_SET(hdr) \ - WMI_F_RMW((hdr)->noa_attributes, 0x1, \ - WMI_UNIFIED_NOA_ATTR_OPP_PS); +#define WMI_UNIFIED_NOA_ATTR_OPP_PS_SET(hdr) \ + WMI_F_RMW((hdr)->noa_attributes, 0x1, \ + WMI_UNIFIED_NOA_ATTR_OPP_PS); -#define WMI_UNIFIED_NOA_ATTR_CTWIN 0xfe0000 -#define WMI_UNIFIED_NOA_ATTR_CTWIN_S 17 +#define WMI_UNIFIED_NOA_ATTR_CTWIN 0xfe0000 +#define WMI_UNIFIED_NOA_ATTR_CTWIN_S 17 -#define WMI_UNIFIED_NOA_ATTR_CTWIN_GET(hdr) \ - WMI_F_MS((hdr)->noa_attributes, WMI_UNIFIED_NOA_ATTR_CTWIN) +#define WMI_UNIFIED_NOA_ATTR_CTWIN_GET(hdr) \ + WMI_F_MS((hdr)->noa_attributes, WMI_UNIFIED_NOA_ATTR_CTWIN) -#define WMI_UNIFIED_NOA_ATTR_CTWIN_SET(hdr, v) \ - WMI_F_RMW((hdr)->noa_attributes, (v) & 0x7f, \ - WMI_UNIFIED_NOA_ATTR_CTWIN); +#define WMI_UNIFIED_NOA_ATTR_CTWIN_SET(hdr, v) \ + WMI_F_RMW((hdr)->noa_attributes, (v) & 0x7f, \ + WMI_UNIFIED_NOA_ATTR_CTWIN); -#define WMI_UNIFIED_NOA_ATTR_NUM_DESC 0xff000000 -#define WMI_UNIFIED_NOA_ATTR_NUM_DESC_S 24 +#define WMI_UNIFIED_NOA_ATTR_NUM_DESC 0xff000000 +#define WMI_UNIFIED_NOA_ATTR_NUM_DESC_S 24 -#define WMI_UNIFIED_NOA_ATTR_NUM_DESC_GET(hdr) \ - WMI_F_MS((hdr)->noa_attributes, WMI_UNIFIED_NOA_ATTR_NUM_DESC) +#define WMI_UNIFIED_NOA_ATTR_NUM_DESC_GET(hdr) \ + WMI_F_MS((hdr)->noa_attributes, WMI_UNIFIED_NOA_ATTR_NUM_DESC) -#define WMI_UNIFIED_NOA_ATTR_NUM_DESC_SET(hdr, v) \ - WMI_F_RMW((hdr)->noa_attributes, (v) & 0xff, \ - WMI_UNIFIED_NOA_ATTR_NUM_DESC); +#define WMI_UNIFIED_NOA_ATTR_NUM_DESC_SET(hdr, v) \ + WMI_F_RMW((hdr)->noa_attributes, (v) & 0xff, \ + WMI_UNIFIED_NOA_ATTR_NUM_DESC); typedef struct { - /** TIM info */ - wmi_tim_info tim_info; - /** P2P NOA info */ - wmi_p2p_noa_info p2p_noa_info; - /* TBD: More info elements to be added later */ + /** TIM info */ + wmi_tim_info tim_info; + /** P2P NOA info */ + wmi_p2p_noa_info p2p_noa_info; +/* TBD: More info elements to be added later */ } wmi_bcn_info; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_host_swba_event_fixed_param */ - /** bitmap identifying the VDEVs, generated by the caller */ - A_UINT32 vdev_map; - /** how many vdev's info is included in this message - * If this field is zero, then the number of vdevs is specified by - * the number of bits set in the vdev_map bitmap. - */ - A_UINT32 num_vdevs; - /* This TLV is followed by tim_info and p2p_noa_info for each vdev: - * wmi_tim_info tim_info[]; - * wmi_p2p_noa_info p2p_noa_info[]; - * - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_host_swba_event_fixed_param */ + /** bitmap identifying the VDEVs, generated by the caller */ + A_UINT32 vdev_map; + /** how many vdev's info is included in this message + * If this field is zero, then the number of vdevs is specified by + * the number of bits set in the vdev_map bitmap. + */ + A_UINT32 num_vdevs; +/* This TLV is followed by tim_info and p2p_noa_info for each vdev: + * wmi_tim_info tim_info[]; + * wmi_p2p_noa_info p2p_noa_info[]; + * + */ } wmi_host_swba_event_fixed_param; #define WMI_MAX_AP_VDEV 16 + typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tbtt_offset_event_fixed_param */ - /** bimtap of VDEVs that has tbtt offset updated */ - A_UINT32 vdev_map; - /* The TLVs for tbttoffset_list will follow this TLV. - * tbtt offset list in the order of the LSB to MSB in the vdev_map bitmap - * A_UINT32 tbttoffset_list[WMI_MAX_AP_VDEV]; - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tbtt_offset_event_fixed_param */ + /** bimtap of VDEVs that has tbtt offset updated */ + A_UINT32 vdev_map; +/* The TLVs for tbttoffset_list will follow this TLV. + * tbtt offset list in the order of the LSB to MSB in the vdev_map bitmap + * A_UINT32 tbttoffset_list[WMI_MAX_AP_VDEV]; + */ } wmi_tbtt_offset_event_fixed_param; typedef struct { - /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tbtt_offset_info */ - A_UINT32 tlv_header; - /** unique id identifying the VDEV */ - A_UINT32 vdev_id; - /** tbttoffset in TUs */ - A_UINT32 tbttoffset; + A_UINT32 tlv_header;/* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tbtt_offset_info */ + /** unique id identifying the VDEV */ + A_UINT32 vdev_id; + /** tbttoffset in TUs */ + A_UINT32 tbttoffset; } wmi_tbtt_offset_info; /** Use this event if number of vdevs > 32 */ typedef struct { - /* - * TLV tag and len; - * tag equals WMITLV_TAG_STRUC_wmi_tbtt_offset_ext_event_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 num_vdevs; - /* - * The TLVs for tbttoffset will follow this TLV. - * Of size num_vdevs * wmi_tbtt_offset_info - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tbtt_offset_ext_event_fixed_param */ + A_UINT32 num_vdevs; +/* + * The TLVs for tbttoffset will follow this TLV. + * Of size num_vdevs * wmi_tbtt_offset_info + */ } wmi_tbtt_offset_ext_event_fixed_param; + /* Peer Specific commands and events */ typedef struct { - A_UINT32 percentage; /* in unit of 12.5% */ - A_UINT32 min_delta; /* in unit of Mbps */ + A_UINT32 percentage; /* in unit of 12.5% */ + A_UINT32 min_delta; /* in unit of Mbps */ } rate_delta_t; #define PEER_RATE_REPORT_COND_FLAG_DELTA 0x01 @@ -7482,46 +7200,31 @@ typedef struct { #define MAX_NUM_OF_RATE_THRESH 4 typedef struct { - /* - * PEER_RATE_REPORT_COND_FLAG_DELTA, - * PEER_RATE_REPORT_COND_FLAG_THRESHOLD - * Any of these two conditions or both of - * them can be set. - */ - A_UINT32 val_cond_flags; - rate_delta_t rate_delta; - /* - * In unit of Mbps. There are at most 4 thresholds - * If the threshold count is less than 4, set zero to - * the one following the last threshold - */ - A_UINT32 rate_threshold[MAX_NUM_OF_RATE_THRESH]; + A_UINT32 val_cond_flags; /* PEER_RATE_REPORT_COND_FLAG_DELTA, PEER_RATE_REPORT_COND_FLAG_THRESHOLD + Any of these two conditions or both of them can be set. */ + rate_delta_t rate_delta; + A_UINT32 rate_threshold[MAX_NUM_OF_RATE_THRESH]; /* In unit of Mbps. There are at most 4 thresholds. + If the threshold count is less than 4, set zero to + the one following the last threshold */ } report_cond_per_phy_t; enum peer_rate_report_cond_phy_type { - PEER_RATE_REPORT_COND_11B = 0, - PEER_RATE_REPORT_COND_11A_G, - PEER_RATE_REPORT_COND_11N, - PEER_RATE_REPORT_COND_11AC, - PEER_RATE_REPORT_COND_MAX_NUM + PEER_RATE_REPORT_COND_11B = 0, + PEER_RATE_REPORT_COND_11A_G, + PEER_RATE_REPORT_COND_11N, + PEER_RATE_REPORT_COND_11AC, + PEER_RATE_REPORT_COND_MAX_NUM }; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_rate_report_condtion_fixed_param - */ - A_UINT32 tlv_header; - /* 1= enable, 0=disable */ - A_UINT32 enable_rate_report; - A_UINT32 report_backoff_time; /* in unit of msecond */ - A_UINT32 report_timer_period; /* in unit of msecond */ - /* - *In the following field, the array index means the phy type, - * please see enum peer_rate_report_cond_phy_type for detail - */ - report_cond_per_phy_t cond_per_phy[PEER_RATE_REPORT_COND_MAX_NUM]; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_rate_report_condtion_fixed_param */ + A_UINT32 enable_rate_report; /* 1= enable, 0=disable */ + A_UINT32 report_backoff_time; /* in unit of msecond */ + A_UINT32 report_timer_period; /* in unit of msecond */ + /* In the following field, the array index means the phy type, + * please see enum peer_rate_report_cond_phy_type for detail */ + report_cond_per_phy_t cond_per_phy[PEER_RATE_REPORT_COND_MAX_NUM]; } wmi_peer_set_rate_report_condition_fixed_param; /* Peer Type: @@ -7530,182 +7233,169 @@ typedef struct { * peer is explicitly a TDLS peer */ enum wmi_peer_type { - WMI_PEER_TYPE_DEFAULT = 0, /* Generic/Non-BSS/Self Peer */ - WMI_PEER_TYPE_BSS = 1, /* Peer is BSS Peer entry */ - WMI_PEER_TYPE_TDLS = 2, /* Peer is a TDLS Peer */ - WMI_PEER_TYPE_OCB = 3, /* Peer is a OCB Peer */ - WMI_PEER_TYPE_NAN_DATA = 4, /* Peer is NAN DATA */ - WMI_PEER_TYPE_HOST_MAX = 127, /* Host <-> Target Peer type - * is assigned up to 127 */ - /* Reserved from 128 - 255 for - * target internal use.*/ - WMI_PEER_TYPE_ROAMOFFLOAD_TEMP = 128, /* Temporarily created during offload roam */ + WMI_PEER_TYPE_DEFAULT = 0, /* Generic/Non-BSS/Self Peer */ + WMI_PEER_TYPE_BSS = 1, /* Peer is BSS Peer entry */ + WMI_PEER_TYPE_TDLS = 2, /* Peer is a TDLS Peer */ + WMI_PEER_TYPE_OCB = 3, /* Peer is a OCB Peer */ + WMI_PEER_TYPE_NAN_DATA = 4, /* Peer is NAN DATA */ + WMI_PEER_TYPE_HOST_MAX = 127, /* Host <-> Target Peer type is assigned up to 127 */ + /* Reserved from 128 - 255 for target internal use.*/ + WMI_PEER_TYPE_ROAMOFFLOAD_TEMP = 128, /* Temporarily created during offload roam */ }; typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_create_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /** peer type: see enum values above */ - A_UINT32 peer_type; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_create_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** peer type: see enum values above */ + A_UINT32 peer_type; } wmi_peer_create_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_delete_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_delete_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; } wmi_peer_delete_cmd_fixed_param; typedef struct { - /** - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_set_rx_blocksize_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /** - * maximum block ack window size to use during a rx block ack - * negotiation, i.e. the maximum number of MPDUs per A-MPDU - * that will be received - */ - A_UINT32 rx_block_ack_win_limit; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_set_rx_blocksize_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** + * maximum block ack window size to use during a rx block ack negotiation, + * i.e. the maximum number of MPDUs per A-MPDU that will be received + */ + A_UINT32 rx_block_ack_win_limit; } wmi_peer_set_rx_blocksize_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_flush_tids_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /** tid bitmap identifying the tids to flush */ - A_UINT32 peer_tid_bitmap; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_flush_tids_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** tid bitmap identifying the tids to flush */ + A_UINT32 peer_tid_bitmap; } wmi_peer_flush_tids_cmd_fixed_param; typedef struct { - /** rate mode . 0: disable fixed rate (auto rate) - * 1: legacy (non 11n) rate specified as ieee rate 2*Mbps - * 2: ht20 11n rate specified as mcs index - * 3: ht40 11n rate specified as mcs index - */ - A_UINT32 rate_mode; - /** 4 rate values for 4 rate series. series 0 is stored in byte 0 (LSB) - * and series 3 is stored at byte 3 (MSB) */ - A_UINT32 rate_series; - /** 4 retry counts for 4 rate series. retry count for rate 0 is stored in byte 0 (LSB) - * and retry count for rate 3 is stored at byte 3 (MSB) */ - A_UINT32 rate_retries; + /** rate mode . 0: disable fixed rate (auto rate) + * 1: legacy (non 11n) rate specified as ieee rate 2*Mbps + * 2: ht20 11n rate specified as mcs index + * 3: ht40 11n rate specified as mcs index + */ + A_UINT32 rate_mode; + /** 4 rate values for 4 rate series. series 0 is stored in byte 0 (LSB) + * and series 3 is stored at byte 3 (MSB) */ + A_UINT32 rate_series; + /** 4 retry counts for 4 rate series. retry count for rate 0 is stored in byte 0 (LSB) + * and retry count for rate 3 is stored at byte 3 (MSB) */ + A_UINT32 rate_retries; } wmi_fixed_rate; typedef struct { - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /** fixed rate */ - wmi_fixed_rate peer_fixed_rate; + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** fixed rate */ + wmi_fixed_rate peer_fixed_rate; } wmi_peer_fixed_rate_cmd; #define WMI_MGMT_TID 17 typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_addba_clear_resp_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_addba_clear_resp_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; } wmi_addba_clear_resp_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_addba_send_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /** Tid number */ - A_UINT32 tid; - /** Buffer/Window size*/ - A_UINT32 buffersize; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_addba_send_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** Tid number */ + A_UINT32 tid; + /** Buffer/Window size*/ + A_UINT32 buffersize; } wmi_addba_send_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_delba_send_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /** Tid number */ - A_UINT32 tid; - /** Is Initiator */ - A_UINT32 initiator; - /** Reason code */ - A_UINT32 reasoncode; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_delba_send_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** Tid number */ + A_UINT32 tid; + /** Is Initiator */ + A_UINT32 initiator; + /** Reason code */ + A_UINT32 reasoncode; } wmi_delba_send_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_addba_setresponse_cmd_fixed_param */ - /** unique id identifying the vdev, generated by the caller */ - A_UINT32 vdev_id; - /** peer mac address */ - wmi_mac_addr peer_macaddr; - /** Tid number */ - A_UINT32 tid; - /** status code */ - A_UINT32 statuscode; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_addba_setresponse_cmd_fixed_param */ + /** unique id identifying the vdev, generated by the caller */ + A_UINT32 vdev_id; + /** peer mac address */ + wmi_mac_addr peer_macaddr; + /** Tid number */ + A_UINT32 tid; + /** status code */ + A_UINT32 statuscode; } wmi_addba_setresponse_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_send_singleamsdu_cmd_fixed_param */ - /** unique id identifying the vdev, generated by the caller */ - A_UINT32 vdev_id; - /** peer mac address */ - wmi_mac_addr peer_macaddr; - /** Tid number */ - A_UINT32 tid; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_send_singleamsdu_cmd_fixed_param */ + /** unique id identifying the vdev, generated by the caller */ + A_UINT32 vdev_id; + /** peer mac address */ + wmi_mac_addr peer_macaddr; + /** Tid number */ + A_UINT32 tid; } wmi_send_singleamsdu_cmd_fixed_param; /* Type of Station DTIM Power Save method */ enum { - /* For NORMAL DTIM, the parameter is the number of beacon intervals and - * also the same value as the listen interval. For this method, the - * station will wake up based on the listen interval. If this - * listen interval is not equal to DTIM, then the station may - * miss certain DTIM beacons. If this value is 1, then the - * station will wake up for every beacon. - */ - WMI_STA_DTIM_PS_NORMAL_DTIM = 0x01, - /* For MODULATED_DTIM, parameter is a multiple of DTIM beacons to skip. - * When this value is 1, then the station will wake at every DTIM beacon. - * If this value is >1, then the station will skip certain DTIM beacons. - * This value is the multiple of DTIM intervals that the station will - * wake up to receive the DTIM beacons. - */ - WMI_STA_DTIM_PS_MODULATED_DTIM = 0x02, + /* For NORMAL DTIM, the parameter is the number of beacon intervals and + * also the same value as the listen interval. For this method, the + * station will wake up based on the listen interval. If this + * listen interval is not equal to DTIM, then the station may + * miss certain DTIM beacons. If this value is 1, then the + * station will wake up for every beacon. + */ + WMI_STA_DTIM_PS_NORMAL_DTIM = 0x01, + /* For MODULATED_DTIM, parameter is a multiple of DTIM beacons to skip. + * When this value is 1, then the station will wake at every DTIM beacon. + * If this value is >1, then the station will skip certain DTIM beacons. + * This value is the multiple of DTIM intervals that the station will + * wake up to receive the DTIM beacons. + */ + WMI_STA_DTIM_PS_MODULATED_DTIM = 0x02, }; /* Parameter structure for the WMI_STA_DTIM_PS_METHOD_CMDID */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sta_dtim_ps_method_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /* Station DTIM Power Save method as defined above */ - A_UINT32 dtim_pwrsave_method; - /* DTIM PS value. Contents depends on the method */ - A_UINT32 value; - /* Modulated DTIM value */ - A_UINT32 MaxLIModulatedDTIM; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sta_dtim_ps_method_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** Station DTIM Power Save method as defined above */ + A_UINT32 dtim_pwrsave_method; + /** DTIM PS value. Contents depends on the method */ + A_UINT32 value; + /** Modulated DTIM value */ + A_UINT32 MaxLIModulatedDTIM; } wmi_sta_dtim_ps_method_cmd_fixed_param; /* @@ -7737,36 +7427,34 @@ typedef struct { * should be 0. */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sta_uapsd_auto_trig_param */ - /** WMM Access category from 0 to 3 */ - A_UINT32 wmm_ac; - /** User priority to use in trigger frames. It is the TID - * value. This field needs to be specified and may not be - * equivalent to AC since some implementation may use the TSPEC - * to enable UAPSD and negotiate a particular user priority. */ - A_UINT32 user_priority; - /** service interval in ms */ - A_UINT32 service_interval; - /** Suspend interval in ms */ - A_UINT32 suspend_interval; - /** delay interval in ms */ - A_UINT32 delay_interval; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sta_uapsd_auto_trig_param */ + /** WMM Access category from 0 to 3 */ + A_UINT32 wmm_ac; + /** User priority to use in trigger frames. It is the TID + * value. This field needs to be specified and may not be + * equivalent to AC since some implementation may use the TSPEC + * to enable UAPSD and negotiate a particular user priority. */ + A_UINT32 user_priority; + /** service interval in ms */ + A_UINT32 service_interval; + /** Suspend interval in ms */ + A_UINT32 suspend_interval; + /** delay interval in ms */ + A_UINT32 delay_interval; } wmi_sta_uapsd_auto_trig_param; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sta_uapsd_auto_trig_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** peer mac address */ - wmi_mac_addr peer_macaddr; - /** Number of AC to specify */ - A_UINT32 num_ac; - /* - * Following this struc is the TLV: - * wmi_sta_uapsd_auto_trig_param ac_param[]; //Variable number of AC parameters (defined by field num_ac) - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sta_uapsd_auto_trig_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** peer mac address */ + wmi_mac_addr peer_macaddr; + /** Number of AC to specify */ + A_UINT32 num_ac; +/* + * Following this struc is the TLV: + * wmi_sta_uapsd_auto_trig_param ac_param[]; <-- Variable number of AC parameters (defined by field num_ac) + */ } wmi_sta_uapsd_auto_trig_cmd_fixed_param; @@ -7783,7 +7471,7 @@ typedef struct { /** USE 4 ADDR */ #define WMI_PEER_USE_4ADDR 0x6 /* set group membership status */ -#define WMI_PEER_MEMBERSHIP 0x7 +#define WMI_PEER_MEMBERSHIP 0x7 #define WMI_PEER_USERPOS 0x8 /* * A critical high-level protocol is being used with this peer. Target @@ -7799,7 +7487,7 @@ typedef struct { * For STA VDEV this peer corresponds to the AP's BSS peer. * For AP VDEV this peer corresponds to the remote peer STA. */ -#define WMI_PEER_CRIT_PROTO_HINT_ENABLED 0x9 +#define WMI_PEER_CRIT_PROTO_HINT_ENABLED 0x9 /* set Tx failure count threshold for the peer - Currently unused */ #define WMI_PEER_TX_FAIL_CNT_THR 0xA /* Enable H/W retry and Enable H/W Send CTS2S before Data */ @@ -7809,7 +7497,7 @@ typedef struct { #define WMI_PEER_IBSS_ATIM_WINDOW_LENGTH 0xC /** peer phy mode */ -#define WMI_PEER_PHYMODE 0xD +#define WMI_PEER_PHYMODE 0xD /** Use FIXED Pwr */ #define WMI_PEER_USE_FIXED_PWR 0xE /** Set peer fixed rate @@ -7834,9 +7522,9 @@ typedef struct { /** * default ring routing for peer data packets, * param_value = bit 0 for hash based routing enabled or not - * (value 1 is enabled, value 0 is disabled) - * bits 1:5 are for ring 32 (i.e. ring id value - * selected from 0 to 31 values) + * (value 1 is enabled, value 0 is disabled) + * bits 1:5 are for ring 32 (i.e. ring id value + * selected from 0 to 31 values) */ #define WMI_PEER_SET_DEFAULT_ROUTING 0x13 @@ -7846,31 +7534,29 @@ typedef struct { #define WMI_PEER_MIMO_PS_DYNAMIC 0x2 typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_set_param_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /** parameter id */ - A_UINT32 param_id; - /** parametr value */ - A_UINT32 param_value; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_set_param_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** parameter id */ + A_UINT32 param_id; + /** parametr value */ + A_UINT32 param_value; } wmi_peer_set_param_cmd_fixed_param; typedef union { - /* - * The A_UINT16 "mode" and "tx_rate" fields can only be directly used - * by the target or a little-endian host. - * A big-endian host needs to use the WMI_PEER_MAX_MIN_TX_xxx_GET/SET - * macros on the A_UINT32 "value" field. - */ - struct { - /* 0:CCK, 1:OFDM, 2:HT, 3:VHT (see WMI_RATE_PREAMBLE) */ - A_UINT16 mode; - A_UINT16 tx_rate; /* see per-mode specs below */ - }; - A_UINT32 value; /* for use by big-endian host */ + /* + * The A_UINT16 "mode" and "tx_rate" fields can only be directly used + * by the target or a little-endian host. + * A big-endian host needs to use the WMI_PEER_MAX_MIN_TX_xxx_GET/SET + * macros on the A_UINT32 "value" field. + */ + struct { + A_UINT16 mode; /* 0:CCK, 1:OFDM, 2:HT, 3:VHT (see WMI_RATE_PREAMBLE) */ + A_UINT16 tx_rate; /* see per-mode specs below */ + }; + A_UINT32 value; /* for use by big-endian host */ } wmi_peer_max_min_tx_rate; /* @@ -7883,8 +7569,7 @@ typedef union { #define WMI_PEER_MAX_MIN_TX_RATE_GET(value32) WMI_GET_BITS(value32, 16, 16) #define WMI_PEER_MAX_MIN_TX_RATE_SET(value32, tx_mode) WMI_SET_BITS(value32, 16, 16, tx_mode) -/* - * CCK max/min tx Rate description +/* CCK max/min tx Rate description * tx_rate = 0: 1 Mbps * tx_rate = 1: 2 Mbps * tx_rate = 2: 5.5 Mbps @@ -7892,15 +7577,14 @@ typedef union { * tx_rate = else: invalid */ enum { - WMI_MAX_CCK_TX_RATE_1M, /* up to 1M CCK Rate avaliable */ - WMI_MAX_CCK_TX_RATE_2M, /* up to 2M CCK Rate avaliable */ - WMI_MAX_CCK_TX_RATE_5_5M, /* up to 5.5M CCK Rate avaliable */ - WMI_MAX_CCK_TX_RATE_11M, /* up to 11M CCK Rate avaliable */ - WMI_MAX_CCK_TX_RATE = WMI_MAX_CCK_TX_RATE_11M, + WMI_MAX_CCK_TX_RATE_1M, /* up to 1M CCK Rate avaliable */ + WMI_MAX_CCK_TX_RATE_2M, /* up to 2M CCK Rate avaliable */ + WMI_MAX_CCK_TX_RATE_5_5M, /* up to 5.5M CCK Rate avaliable */ + WMI_MAX_CCK_TX_RATE_11M, /* up to 11M CCK Rate avaliable */ + WMI_MAX_CCK_TX_RATE = WMI_MAX_CCK_TX_RATE_11M, }; -/* - * OFDM max/min tx Rate description +/* OFDM max/min tx Rate description * tx_rate = 0: 6 Mbps * tx_rate = 1: 9 Mbps * tx_rate = 2: 12 Mbps @@ -7912,42 +7596,41 @@ enum { * tx_rate = else: invalid */ enum { - WMI_MAX_OFDM_TX_RATE_6M, /* up to 6M OFDM Rate avaliable */ - WMI_MAX_OFDM_TX_RATE_9M, /* up to 9M OFDM Rate avaliable */ - WMI_MAX_OFDM_TX_RATE_12M, /* up to 12M OFDM Rate avaliable */ - WMI_MAX_OFDM_TX_RATE_18M, /* up to 18M OFDM Rate avaliable */ - WMI_MAX_OFDM_TX_RATE_24M, /* up to 24M OFDM Rate avaliable */ - WMI_MAX_OFDM_TX_RATE_36M, /* up to 36M OFDM Rate avaliable */ - WMI_MAX_OFDM_TX_RATE_48M, /* up to 48M OFDM Rate avaliable */ - WMI_MAX_OFDM_TX_RATE_54M, /* up to 54M OFDM Rate avaliable */ - WMI_MAX_OFDM_TX_RATE = WMI_MAX_OFDM_TX_RATE_54M, + WMI_MAX_OFDM_TX_RATE_6M, /* up to 6M OFDM Rate avaliable */ + WMI_MAX_OFDM_TX_RATE_9M, /* up to 9M OFDM Rate avaliable */ + WMI_MAX_OFDM_TX_RATE_12M, /* up to 12M OFDM Rate avaliable */ + WMI_MAX_OFDM_TX_RATE_18M, /* up to 18M OFDM Rate avaliable */ + WMI_MAX_OFDM_TX_RATE_24M, /* up to 24M OFDM Rate avaliable */ + WMI_MAX_OFDM_TX_RATE_36M, /* up to 36M OFDM Rate avaliable */ + WMI_MAX_OFDM_TX_RATE_48M, /* up to 48M OFDM Rate avaliable */ + WMI_MAX_OFDM_TX_RATE_54M, /* up to 54M OFDM Rate avaliable */ + WMI_MAX_OFDM_TX_RATE = WMI_MAX_OFDM_TX_RATE_54M, }; -/* - * HT max/min tx rate description +/* HT max/min tx rate description * tx_rate = 0~7 : MCS Rate 0~7 * tx_rate=else : invalid. */ #define WMI_MAX_HT_TX_MCS 0x07 -/* - * VHT max/min tx rate description +/* VHT max/min tx rate description * tx_rate = 0~9 : MCS Rate 0~9 * tx_rate=else : invalid. */ #define WMI_MAX_VHT_TX_MCS 0x09 + #define MAX_SUPPORTED_RATES 128 typedef struct { - /** total number of rates */ - A_UINT32 num_rates; - /** - * rates (each 8bit value) packed into a 32 bit word. - * the rates are filled from least significant byte to most - * significant byte. - */ - A_UINT32 rates[(MAX_SUPPORTED_RATES / 4) + 1]; + /** total number of rates */ + A_UINT32 num_rates; + /** + * rates (each 8bit value) packed into a 32 bit word. + * the rates are filled from least significant byte to most + * significant byte. + */ + A_UINT32 rates[(MAX_SUPPORTED_RATES / 4) + 1]; } wmi_rate_set; /* NOTE: It would bea good idea to represent the Tx MCS @@ -7955,39 +7638,38 @@ typedef struct { * into multiple words for convenience */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vht_rate_set */ - A_UINT32 rx_max_rate; /* Max Rx data rate */ - A_UINT32 rx_mcs_set; /* Negotiated RX VHT rates */ - A_UINT32 tx_max_rate; /* Max Tx data rate */ - A_UINT32 tx_mcs_set; /* Negotiated TX VHT rates */ - A_UINT32 tx_max_mcs_nss; /* b0-b3: max mcs idx; b4-b7: max nss */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vht_rate_set */ + A_UINT32 rx_max_rate; /* Max Rx data rate */ + A_UINT32 rx_mcs_set; /* Negotiated RX VHT rates */ + A_UINT32 tx_max_rate; /* Max Tx data rate */ + A_UINT32 tx_mcs_set; /* Negotiated TX VHT rates */ + A_UINT32 tx_max_mcs_nss; /* b0-b3: max mcs idx; b4-b7: max nss */ } wmi_vht_rate_set; /* * IMPORTANT: Make sure the bit definitions here are consistent * with the ni_flags definitions in wlan_peer.h */ -#define WMI_PEER_AUTH 0x00000001 /* Authorized for data */ -#define WMI_PEER_QOS 0x00000002 /* QoS enabled */ -#define WMI_PEER_NEED_PTK_4_WAY 0x00000004 /* Needs PTK 4 way handshake for authorization */ -#define WMI_PEER_NEED_GTK_2_WAY 0x00000010 /* Needs GTK 2 way handshake after 4-way handshake */ -#define WMI_PEER_HE 0x00000400 /* HE Enabled */ -#define WMI_PEER_APSD 0x00000800 /* U-APSD power save enabled */ -#define WMI_PEER_HT 0x00001000 /* HT enabled */ -#define WMI_PEER_40MHZ 0x00002000 /* 40MHz enabld */ -#define WMI_PEER_STBC 0x00008000 /* STBC Enabled */ -#define WMI_PEER_LDPC 0x00010000 /* LDPC ENabled */ -#define WMI_PEER_DYN_MIMOPS 0x00020000 /* Dynamic MIMO PS Enabled */ -#define WMI_PEER_STATIC_MIMOPS 0x00040000 /* Static MIMO PS enabled */ -#define WMI_PEER_SPATIAL_MUX 0x00200000 /* SM Enabled */ -#define WMI_PEER_VHT 0x02000000 /* VHT Enabled */ -#define WMI_PEER_80MHZ 0x04000000 /* 80MHz enabld */ -#define WMI_PEER_PMF 0x08000000 /* Robust Management Frame Protection enabled */ +#define WMI_PEER_AUTH 0x00000001 /* Authorized for data */ +#define WMI_PEER_QOS 0x00000002 /* QoS enabled */ +#define WMI_PEER_NEED_PTK_4_WAY 0x00000004 /* Needs PTK 4 way handshake for authorization */ +#define WMI_PEER_NEED_GTK_2_WAY 0x00000010 /* Needs GTK 2 way handshake after 4-way handshake */ +#define WMI_PEER_HE 0x00000400 /* HE Enabled */ +#define WMI_PEER_APSD 0x00000800 /* U-APSD power save enabled */ +#define WMI_PEER_HT 0x00001000 /* HT enabled */ +#define WMI_PEER_40MHZ 0x00002000 /* 40MHz enabld */ +#define WMI_PEER_STBC 0x00008000 /* STBC Enabled */ +#define WMI_PEER_LDPC 0x00010000 /* LDPC ENabled */ +#define WMI_PEER_DYN_MIMOPS 0x00020000 /* Dynamic MIMO PS Enabled */ +#define WMI_PEER_STATIC_MIMOPS 0x00040000 /* Static MIMO PS enabled */ +#define WMI_PEER_SPATIAL_MUX 0x00200000 /* SM Enabled */ +#define WMI_PEER_VHT 0x02000000 /* VHT Enabled */ +#define WMI_PEER_80MHZ 0x04000000 /* 80MHz enabld */ +#define WMI_PEER_PMF 0x08000000 /* Robust Management Frame Protection enabled */ /** CAUTION TODO: Place holder for WLAN_PEER_F_PS_PRESEND_REQUIRED = 0x10000000. Need to be clean up */ -#define WMI_PEER_IS_P2P_CAPABLE 0x20000000 /* P2P capable peer */ -#define WMI_PEER_160MHZ 0x40000000 /* 160 MHz enabled */ -#define WMI_PEER_SAFEMODE_EN 0x80000000 /* Fips Mode Enabled */ +#define WMI_PEER_IS_P2P_CAPABLE 0x20000000 /* P2P capable peer */ +#define WMI_PEER_160MHZ 0x40000000 /* 160 MHz enabled */ +#define WMI_PEER_SAFEMODE_EN 0x80000000 /* Fips Mode Enabled */ /** * Peer rate capabilities. @@ -8014,170 +7696,164 @@ typedef struct { #define WMI_RC_UAPSD_FLAG 0x400 /* UAPSD Rate Control */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_assoc_complete_cmd_fixed_param */ - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /** VDEV id */ - A_UINT32 vdev_id; - /** assoc = 1 reassoc = 0 */ - A_UINT32 peer_new_assoc; - /** peer associd (16 bits) */ - A_UINT32 peer_associd; - /** peer station flags: see definition above */ - A_UINT32 peer_flags; - /** negotiated capabilities (lower 16 bits)*/ - A_UINT32 peer_caps; - /** Listen interval */ - A_UINT32 peer_listen_intval; - /** HT capabilties of the peer */ - A_UINT32 peer_ht_caps; - /** maximum rx A-MPDU length */ - A_UINT32 peer_max_mpdu; - /** mpdu density of the peer in usec(0 to 16) */ - A_UINT32 peer_mpdu_density; - /** peer rate capabilties see flags above */ - A_UINT32 peer_rate_caps; - /** num spatial streams */ - A_UINT32 peer_nss; - /** VHT capabilties of the peer */ - A_UINT32 peer_vht_caps; - /** phy mode */ - A_UINT32 peer_phymode; - /** HT Operation Element of the peer. Five bytes packed in 2 - * INT32 array and filled from lsb to msb. - * Note that the size of array peer_ht_info[] cannotbe changed - * without breaking WMI Compatibility. */ - A_UINT32 peer_ht_info[2]; - /** total number of negotiated legacy rate set. Also the sizeof - * peer_legacy_rates[] */ - A_UINT32 num_peer_legacy_rates; - /** total number of negotiated ht rate set. Also the sizeof - * peer_ht_rates[] */ - A_UINT32 num_peer_ht_rates; - /* - * Bitmap providing customized mapping of bandwidths to max Rx NSS - * for this peer. - * This is required since 802.11 standard currently facilitates peer to - * be able to advertise only a single max Rx NSS value across all - * bandwidths. - * Some QCA chipsets might need to be able to advertise a different max - * Rx NSS value for 160 MHz, than that for 80 MHz and lower. - * - * bit[2:0] : Represents value of Rx NSS for VHT 160 MHz - * bit[30:3]: Reserved - * bit[31] : MSB(0/1): 1 in case of valid data else all bits will be - * set to 0 by host - */ - A_UINT32 peer_bw_rxnss_override; - /* 802.11ax capabilities */ - wmi_ppe_threshold peer_ppet; - /* protocol-defined HE / 11ax capability flags */ - A_UINT32 peer_he_cap_info; - A_UINT32 peer_he_ops; /* HE operation contains BSS color */ - A_UINT32 peer_he_cap_phy[WMI_MAX_HECAP_PHY_SIZE]; - A_UINT32 peer_he_mcs; /* HE MCS/NSS set */ - /* Following this struct are the TLV's: - * A_UINT8 peer_legacy_rates[]; - * A_UINT8 peer_ht_rates[]; - * wmi_vht_rate_set peer_vht_rates; //VHT capabilties of the peer - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_assoc_complete_cmd_fixed_param */ + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** VDEV id */ + A_UINT32 vdev_id; + /** assoc = 1 reassoc = 0 */ + A_UINT32 peer_new_assoc; + /** peer associd (16 bits) */ + A_UINT32 peer_associd; + /** peer station flags: see definition above */ + A_UINT32 peer_flags; + /** negotiated capabilities (lower 16 bits)*/ + A_UINT32 peer_caps; + /** Listen interval */ + A_UINT32 peer_listen_intval; + /** HT capabilties of the peer */ + A_UINT32 peer_ht_caps; + /** maximum rx A-MPDU length */ + A_UINT32 peer_max_mpdu; + /** mpdu density of the peer in usec(0 to 16) */ + A_UINT32 peer_mpdu_density; + /** peer rate capabilties see flags above */ + A_UINT32 peer_rate_caps; + /** num spatial streams */ + A_UINT32 peer_nss; + /** VHT capabilties of the peer */ + A_UINT32 peer_vht_caps; + /** phy mode */ + A_UINT32 peer_phymode; + /** HT Operation Element of the peer. Five bytes packed in 2 + * INT32 array and filled from lsb to msb. + * Note that the size of array peer_ht_info[] cannotbe changed + * without breaking WMI Compatibility. */ + A_UINT32 peer_ht_info[2]; + /** total number of negotiated legacy rate set. Also the sizeof + * peer_legacy_rates[] */ + A_UINT32 num_peer_legacy_rates; + /** total number of negotiated ht rate set. Also the sizeof + * peer_ht_rates[] */ + A_UINT32 num_peer_ht_rates; + /** + * Bitmap providing customized mapping of bandwidths to max Rx NSS + * for this peer. + * This is required since 802.11 standard currently facilitates peer to be + * able to advertise only a single max Rx NSS value across all bandwidths. + * Some QCA chipsets might need to be able to advertise a different max + * Rx NSS value for 160 MHz, than that for 80 MHz and lower. + * + * bit[2:0] : Represents value of Rx NSS for VHT 160 MHz + * bit[30:3]: Reserved + * bit[31] : MSB(0/1): 1 in case of valid data else all bits will be set + * to 0 by host + */ + A_UINT32 peer_bw_rxnss_override; + + /* 802.11ax capabilities */ + wmi_ppe_threshold peer_ppet; + A_UINT32 peer_he_cap_info; /* protocol-defined HE / 11ax capability flags */ + A_UINT32 peer_he_ops; /* HE operation contains BSS color */ + A_UINT32 peer_he_cap_phy[WMI_MAX_HECAP_PHY_SIZE]; + A_UINT32 peer_he_mcs; /* HE MCS/NSS set */ + +/* Following this struct are the TLV's: + * A_UINT8 peer_legacy_rates[]; + * A_UINT8 peer_ht_rates[]; + * wmi_vht_rate_set peer_vht_rates; <-- VHT capabilties of the peer + */ } wmi_peer_assoc_complete_cmd_fixed_param; /* WDS Entry Flags */ #define WMI_WDS_FLAG_STATIC 0x1 /* Disable aging & learning */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_add_wds_entry_cmd_fixed_param */ - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /** wds MAC addr */ - wmi_mac_addr wds_macaddr; - /* Flags associated with WDS entry - see WMI_WDS_FLAG defs */ - A_UINT32 flags; - A_UINT32 vdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_add_wds_entry_cmd_fixed_param */ + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** wds MAC addr */ + wmi_mac_addr wds_macaddr; + /* Flags associated with WDS entry - see WMI_WDS_FLAG defs */ + A_UINT32 flags; + A_UINT32 vdev_id; } wmi_peer_add_wds_entry_cmd_fixed_param; -#define WMI_CHAN_INFO_START_RESP 0 -#define WMI_CHAN_INFO_END_RESP 1 +#define WMI_CHAN_InFO_START_RESP 0 +#define WMI_CHAN_InFO_END_RESP 1 typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_remove_wds_entry_cmd_fixed_param */ - /** wds MAC addr */ - wmi_mac_addr wds_macaddr; - A_UINT32 vdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_remove_wds_entry_cmd_fixed_param */ + /** wds MAC addr */ + wmi_mac_addr wds_macaddr; + A_UINT32 vdev_id; } wmi_peer_remove_wds_entry_cmd_fixed_param; + typedef struct { - /** peer MAC address */ - wmi_mac_addr peer_macaddr; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; } wmi_peer_q_empty_callback_event; /* * Command to update an already existing WDS entry. Different address setting * combinations are possible. * - * Valid wds and peer -> Associated WDS entry peer ptr & flags will be updated. + * Valid wds and peer -> Associated WDS entry peer ptr & flags will be updated. * Valid wds and null peer -> Associated WDS entry flags will be updated. - * Null wds and Valid peer-> Flags will be updated for all WDS entries - * behind the peer. + * Null wds and Valid peer -> Flags will be updated for all WDS entries behind the peer. * Null wds and peer -> Flags will be updated for all WDS entries. */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_update_wds_entry_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /** wds MAC addr */ - wmi_mac_addr wds_macaddr; - /* Flags associated with WDS entry */ - A_UINT32 flags; - A_UINT32 vdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_update_wds_entry_cmd_fixed_param */ + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** wds MAC addr */ + wmi_mac_addr wds_macaddr; + /* Flags associated with WDS entry */ + A_UINT32 flags; + A_UINT32 vdev_id; } wmi_peer_update_wds_entry_cmd_fixed_param; /** * Channel info WMI event */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_chan_info_event_fixed_param */ - /** Error code */ - A_UINT32 err_code; - /** Channel freq */ - A_UINT32 freq; - /** Read flags */ - A_UINT32 cmd_flags; - /** Noise Floor value */ - A_UINT32 noise_floor; - /** rx clear count */ - A_UINT32 rx_clear_count; - /** cycle count */ - A_UINT32 cycle_count; - /** channel tx power per range in 0.5dBm steps */ - A_UINT32 chan_tx_pwr_range; - /** channel tx power per throughput */ - A_UINT32 chan_tx_pwr_tp; - /** rx frame count (cumulative) */ - A_UINT32 rx_frame_count; - /** BSS rx cycle count */ - A_UINT32 my_bss_rx_cycle_count; - /** b-mode data rx time (units are microseconds) */ - A_UINT32 rx_11b_mode_data_duration; - /** tx frame count */ - A_UINT32 tx_frame_cnt; - /** mac clock */ - A_UINT32 mac_clk_mhz; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_chan_info_event_fixed_param */ + /** Error code */ + A_UINT32 err_code; + /** Channel freq */ + A_UINT32 freq; + /** Read flags */ + A_UINT32 cmd_flags; + /** Noise Floor value */ + A_UINT32 noise_floor; + /** rx clear count */ + A_UINT32 rx_clear_count; + /** cycle count */ + A_UINT32 cycle_count; + /** channel tx power per range in 0.5dBm steps */ + A_UINT32 chan_tx_pwr_range; + /** channel tx power per throughput */ + A_UINT32 chan_tx_pwr_tp; + /** rx frame count (cumulative) */ + A_UINT32 rx_frame_count; + /** BSS rx cycle count */ + A_UINT32 my_bss_rx_cycle_count; + /** b-mode data rx time (units are microseconds) */ + A_UINT32 rx_11b_mode_data_duration; + /** tx frame count */ + A_UINT32 tx_frame_cnt; + /** mac clock */ + A_UINT32 mac_clk_mhz; } wmi_chan_info_event_fixed_param; /** * Non wlan interference event */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_ath_dcs_cw_int */ - A_UINT32 channel; /* either number or freq in mhz */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wlan_dcs_cw_int */ + A_UINT32 channel; /* either number or freq in mhz*/ } wlan_dcs_cw_int; #define ath_dcs_cw_int /* DEPRECATED */ wlan_dcs_cw_int /* alias */ @@ -8186,65 +7862,64 @@ typedef struct { * */ typedef struct _wlan_dcs_im_tgt_stats { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wlan_dcs_im_tgt_stats_t - */ - A_UINT32 tlv_header; - /** current running TSF from the TSF-1 */ - A_UINT32 reg_tsf32; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wlan_dcs_im_tgt_stats_t */ - /** Known last frame rssi, in case of multiple stations, if - * and at different ranges, this would not gaurantee that - * this is the least rssi. - */ - A_UINT32 last_ack_rssi; + /** current running TSF from the TSF-1 */ + A_UINT32 reg_tsf32; - /** Sum of all the failed durations in the last one second interval. - */ - A_UINT32 tx_waste_time; - /** count how many times the hal_rxerr_phy is marked, in this - * time period - */ - A_UINT32 rx_time; - A_UINT32 phyerr_cnt; + /** Known last frame rssi, in case of multiple stations, if + * and at different ranges, this would not gaurantee that + * this is the least rssi. + */ + A_UINT32 last_ack_rssi; - /** - * WLAN IM stats from target to host - * - * Below statistics are sent from target to host periodically. - * These are collected at target as long as target is running - * and target chip is not in sleep. - * - */ + /** Sum of all the failed durations in the last one second interval. + */ + A_UINT32 tx_waste_time; + /** count how many times the hal_rxerr_phy is marked, in this + * time period + */ + A_UINT32 rx_time; + A_UINT32 phyerr_cnt; - /** listen time from ANI */ - A_INT32 listen_time; + /** + * WLAN IM stats from target to host + * + * Below statistics are sent from target to host periodically. + * These are collected at target as long as target is running + * and target chip is not in sleep. + * + */ - /** tx frame count, MAC_PCU_TX_FRAME_CNT_ADDRESS */ - A_UINT32 reg_tx_frame_cnt; + /** listen time from ANI */ + A_INT32 listen_time; - /** rx frame count, MAC_PCU_RX_FRAME_CNT_ADDRESS */ - A_UINT32 reg_rx_frame_cnt; + /** tx frame count, MAC_PCU_TX_FRAME_CNT_ADDRESS */ + A_UINT32 reg_tx_frame_cnt; - /** rx clear count, MAC_PCU_RX_CLEAR_CNT_ADDRESS */ - A_UINT32 reg_rxclr_cnt; + /** rx frame count, MAC_PCU_RX_FRAME_CNT_ADDRESS */ + A_UINT32 reg_rx_frame_cnt; - /** total cycle counts MAC_PCU_CYCLE_CNT_ADDRESS */ - A_UINT32 reg_cycle_cnt; /* delta cycle count */ + /** rx clear count, MAC_PCU_RX_CLEAR_CNT_ADDRESS */ + A_UINT32 reg_rxclr_cnt; - /** extenstion channel rx clear count */ - A_UINT32 reg_rxclr_ext_cnt; + /** total cycle counts MAC_PCU_CYCLE_CNT_ADDRESS */ + A_UINT32 reg_cycle_cnt; /* delta cycle count */ - /** OFDM phy error counts, MAC_PCU_PHY_ERR_CNT_1_ADDRESS */ - A_UINT32 reg_ofdm_phyerr_cnt; + /** extenstion channel rx clear count */ + A_UINT32 reg_rxclr_ext_cnt; - /** CCK phy error count, MAC_PCU_PHY_ERR_CNT_2_ADDRESS */ - A_UINT32 reg_cck_phyerr_cnt; /* CCK err count since last reset, read from register */ - /** Channel noise floor (units are dBm) */ - A_INT32 chan_nf; + /** OFDM phy error counts, MAC_PCU_PHY_ERR_CNT_1_ADDRESS */ + A_UINT32 reg_ofdm_phyerr_cnt; - /** BSS rx cycle count */ - A_UINT32 my_bss_rx_cycle_count; + /** CCK phy error count, MAC_PCU_PHY_ERR_CNT_2_ADDRESS */ + A_UINT32 reg_cck_phyerr_cnt; /* CCK err count since last reset, read from register */ + + /** Channel noise floor (units are dBm) */ + A_INT32 chan_nf; + + /** BSS rx cycle count */ + A_UINT32 my_bss_rx_cycle_count; } wlan_dcs_im_tgt_stats_t; /** @@ -8257,78 +7932,63 @@ typedef struct _wlan_dcs_im_tgt_stats { * event would carry only stats. */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_dcs_interference_event_fixed_param */ - /** - * Type of the event present, either the cw interference event, or the wlan_im stats - */ - A_UINT32 interference_type; /* type of interference, wlan or cw */ - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - /* - * Following this struct are these TLVs. Note that they are both array of structures - * but can have at most one element. Which TLV is empty or has one element depends - * on the field interference_type. This is to emulate an union with cw_int and wlan_stat - * elements (not arrays). union { wlan_dcs_cw_int cw_int; - * wlan_dcs_im_tgt_stats_t wlan_stat; } - * int_event; - * - * //cw_interference event - * wlan_dcs_cw_int cw_int[]; this element - * // wlan im interfernce stats - * wlan_dcs_im_tgt_stats_t wlan_stat[]; - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_dcs_interference_event_fixed_param */ + /** + * Type of the event present, either the cw interference event, or the wlan_im stats + */ + A_UINT32 interference_type; /* type of interference, wlan or cw */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; +/* + * Following this struct are these TLVs. Note that they are both array of structures + * but can have at most one element. Which TLV is empty or has one element depends + * on the field interference_type. This is to emulate an union with cw_int and wlan_stat + * elements (not arrays). union { wlan_dcs_cw_int cw_int; wlan_dcs_im_tgt_stats_t wlan_stat; } int_event; + * + * wlan_dcs_cw_int cw_int[]; <-- cw_interference event + * wlan_dcs_im_tgt_stats_t wlan_stat[]; <-- wlan im interfernce stats + */ } wmi_dcs_interference_event_fixed_param; enum wmi_peer_mcast_group_action { - wmi_peer_mcast_group_action_add = 0, - wmi_peer_mcast_group_action_del = 1 + wmi_peer_mcast_group_action_add = 0, + wmi_peer_mcast_group_action_del = 1 }; #define WMI_PEER_MCAST_GROUP_FLAG_ACTION_M 0x1 #define WMI_PEER_MCAST_GROUP_FLAG_ACTION_S 0 #define WMI_PEER_MCAST_GROUP_FLAG_WILDCARD_M 0x2 #define WMI_PEER_MCAST_GROUP_FLAG_WILDCARD_S 1 -/* flag to exclude an ip while filtering.set to exclude */ -#define WMI_PEER_MCAST_GROUP_FLAG_SRC_FILTER_EXCLUDE_M 0x4 +#define WMI_PEER_MCAST_GROUP_FLAG_SRC_FILTER_EXCLUDE_M 0x4 /* flag to exclude an ip while filtering. set to exclude */ #define WMI_PEER_MCAST_GROUP_FLAG_SRC_FILTER_EXCLUDE_S 2 -/* flag to say ipv4/ipv6. Will be set for ipv6 */ -#define WMI_PEER_MCAST_GROUP_FLAG_IPV6_M 0x8 +#define WMI_PEER_MCAST_GROUP_FLAG_IPV6_M 0x8 /* flag to say ipv4/ipv6. Will be set for ipv6 */ #define WMI_PEER_MCAST_GROUP_FLAG_IPV6_S 3 -/* delete all mcast table entries. */ -#define WMI_PEER_MCAST_GROUP_FLAG_DELETEALL_M 0x10 +#define WMI_PEER_MCAST_GROUP_FLAG_DELETEALL_M 0x10 /* delete all mcast table entries. */ #define WMI_PEER_MCAST_GROUP_FLAG_DELETEALL_S 4 /* multicast group membership commands */ /* TODO: Converting this will be tricky since it uses an union. - Also, the mac_addr is not aligned. We will convert to the wmi_mac_addr */ + Also, the mac_addr is not aligned. We will convert to the wmi_mac_addr */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_mcast_group_cmd_fixed_param */ - A_UINT32 flags; - wmi_mac_addr ucast_mac_addr; - /* - * for ipv4, bytes (12-15) should contain ip address and - * other lower bytes 0. ipv6 should have all bytes valid - */ - A_UINT8 mcast_ip_addr[16]; /* in network byte order */ - /* - * for ipv6, all 16 bytes has to be valid; - * for ipv4 last 4 bytes(12-15) has to be valid, rest all 0s - */ - A_UINT8 mcast_ip_mask[16]; /* zero out lower bytes if ipv4 */ - /* number of address filters - irrespective of ipv4/ipv6 addresses */ - A_UINT32 num_filter_addr; - /* - * this array should contain the src IPs that are to be filtered - * during find. The array should be packed. If there are 2 ipv4 - * addresses, there should be 8 bytes and rest all 0s - */ - A_UINT8 filter_addr[64]; /* 16 ipv4 addresses or 4 ipv6 addresses */ - A_UINT8 vdev_id; /* vdev of this mcast group */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_mcast_group_cmd_fixed_param */ + A_UINT32 flags; + wmi_mac_addr ucast_mac_addr; + /* in network byte order */ + /* for ipv4, bytes (12-15) should contain ip address and other lower bytes 0. ipv6 should have all bytes valid */ + A_UINT8 mcast_ip_addr[16]; + /* for ipv6, all 16 bytes has to be valid; for ipv4 last 4 bytes(12-15) has to be valid, rest all 0s */ + A_UINT8 mcast_ip_mask[16];/* zero out lower bytes if ipv4*/ + /* number of address filters - irrespective of ipv4/ipv6 addresses */ + A_UINT32 num_filter_addr; + /* this array should contain the src IPs that are to be filtered during find + The array should be packed. + If there are 2 ipv4 addresses, there should be 8 bytes and rest all 0s */ + A_UINT8 filter_addr[64]; /* 16 ipv4 addresses or 4 ipv6 addresses */ + A_UINT8 vdev_id; /* vdev of this mcast group */ } wmi_peer_mcast_group_cmd_fixed_param; + /** Offload Scan and Roaming related commands */ /** The FW performs 2 different kinds of offload scans independent * of host. One is Roam scan which is primarily performed on a @@ -8349,10 +8009,9 @@ typedef struct { * */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_scan_mode_fixed_param */ - A_UINT32 roam_scan_mode; - A_UINT32 vdev_id; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_scan_mode_fixed_param */ + A_UINT32 roam_scan_mode; + A_UINT32 vdev_id; } wmi_roam_scan_mode_fixed_param; #define WMI_ROAM_SCAN_MODE_NONE 0x0 @@ -8362,11 +8021,11 @@ typedef struct { /* Note: WMI_ROAM_SCAN_MODE_ROAMOFFLOAD is one bit not conflict with LFR2.0 SCAN_MODE. */ #define WMI_ROAM_SCAN_MODE_ROAMOFFLOAD 0x4 + typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_scan_cmd_fixed_param */ - A_UINT32 vdev_id; - A_UINT32 command_arg; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_scan_cmd_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 command_arg; } wmi_roam_scan_cmd_fixed_param; #define WMI_ROAM_SCAN_STOP_CMD 0x1 @@ -8377,25 +8036,24 @@ typedef struct { * Applicable when WMI_ROAM_SCAN_MODE is not set to none. */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_scan_rssi_threshold_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** roam scan rssi threshold */ - A_UINT32 roam_scan_rssi_thresh; - /** When using Hw generated beacon RSSI interrupts */ - A_UINT32 roam_rssi_thresh_diff; - /** 5G scan max count */ - A_UINT32 hirssi_scan_max_count; - /** 5G scan rssi change threshold value */ - A_UINT32 hirssi_scan_delta; - /** 5G scan upper bound */ - A_UINT32 hirssi_upper_bound; - /* The TLVs will follow. - * wmi_roam_scan_extended_threshold_param extended_param; - * wmi_roam_earlystop_rssi_thres_param earlystop_param; - * wmi_roam_dense_thres_param dense_param; - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_scan_rssi_threshold_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** roam scan rssi threshold */ + A_UINT32 roam_scan_rssi_thresh; + /** When using Hw generated beacon RSSI interrupts */ + A_UINT32 roam_rssi_thresh_diff; + /** 5G scan max count */ + A_UINT32 hirssi_scan_max_count; + /** 5G scan rssi change threshold value */ + A_UINT32 hirssi_scan_delta; + /** 5G scan upper bound */ + A_UINT32 hirssi_upper_bound; + /* The TLVs will follow. + * wmi_roam_scan_extended_threshold_param extended_param; + * wmi_roam_earlystop_rssi_thres_param earlystop_param; + * wmi_roam_dense_thres_param dense_param; + */ } wmi_roam_scan_rssi_threshold_fixed_param; #define WMI_ROAM_5G_BOOST_PENALIZE_ALGO_FIXED 0x0 @@ -8404,38 +8062,30 @@ typedef struct { #define WMI_ROAM_5G_BOOST_PENALIZE_ALGO_EXP 0x3 typedef struct { - /** TLV tag and len; tag equals - *WMITLV_TAG_STRUC_wmi_roam_scan_extended_threshold_param */ - A_UINT32 tlv_header; - A_UINT32 boost_threshold_5g; /** RSSI threshold above which 5GHz RSSI is favored */ - A_UINT32 penalty_threshold_5g; /** RSSI threshold below which 5GHz RSSI is penalized */ - A_UINT32 boost_algorithm_5g; /** 0 == fixed, 1 == linear, 2 == logarithm ..etc */ - A_UINT32 boost_factor_5g; /** factor by which 5GHz RSSI is boosted */ - A_UINT32 penalty_algorithm_5g; /** 0 == fixed, 1 == linear, 2 == logarithm ..etc */ - A_UINT32 penalty_factor_5g; /** factor by which 5GHz RSSI is penalized */ - A_UINT32 max_boost_5g; /** maximum boost that can be applied to a 5GHz RSSI */ - A_UINT32 max_penalty_5g; /** maximum penality that can be applied to a 5GHz RSSI */ - /** - * RSSI below which roam is kicked in by background scan - * although rssi is still good - */ - A_UINT32 good_rssi_threshold; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_scan_extended_threshold_param */ + A_UINT32 boost_threshold_5g; /** RSSI threshold above which 5GHz RSSI is favored */ + A_UINT32 penalty_threshold_5g; /** RSSI threshold below which 5GHz RSSI is penalized */ + A_UINT32 boost_algorithm_5g; /** 0 == fixed, 1 == linear, 2 == logarithm ..etc */ + A_UINT32 boost_factor_5g; /** factor by which 5GHz RSSI is boosted */ + A_UINT32 penalty_algorithm_5g; /** 0 == fixed, 1 == linear, 2 == logarithm ..etc */ + A_UINT32 penalty_factor_5g; /** factor by which 5GHz RSSI is penalized */ + A_UINT32 max_boost_5g; /** maximum boost that can be applied to a 5GHz RSSI */ + A_UINT32 max_penalty_5g; /** maximum penality that can be applied to a 5GHz RSSI */ + A_UINT32 good_rssi_threshold; /** RSSI below which roam is kicked in by background scan, although rssi is still good */ } wmi_roam_scan_extended_threshold_param; - /** * WMI_ROAM_SCAN_PERIOD: period for roam scan. * Applicable when the scan mode is Periodic or both. */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_scan_period_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** roam scan period value */ - A_UINT32 roam_scan_period; - /** Aging for Roam scans */ - A_UINT32 roam_scan_age; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_scan_period_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** roam scan period value */ + A_UINT32 roam_scan_period; + /** Aging for Roam scans */ + A_UINT32 roam_scan_age; } wmi_roam_scan_period_fixed_param; /** @@ -8445,16 +8095,15 @@ typedef struct { * Note scan is triggered based on the rssi threshold condition set by WMI_ROAM_SCAN_RSSI_THRESHOLD */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_scan_rssi_change_threshold_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** roam scan rssi change threshold value */ - A_UINT32 roam_scan_rssi_change_thresh; - /** When using Hw generated beacon RSSI interrupts */ - A_UINT32 bcn_rssi_weight; - /** Minimum delay between two 5G scans */ - A_UINT32 hirssi_delay_btw_scans; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_scan_rssi_change_threshold_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** roam scan rssi change threshold value */ + A_UINT32 roam_scan_rssi_change_thresh; + /** When using Hw generated beacon RSSI interrupts */ + A_UINT32 bcn_rssi_weight; + /** Minimum delay between two 5G scans */ + A_UINT32 hirssi_delay_btw_scans; } wmi_roam_scan_rssi_change_threshold_fixed_param; #define WMI_ROAM_SCAN_CHAN_LIST_TYPE_NONE 0x1 @@ -8464,16 +8113,15 @@ typedef struct { * TLV for roaming channel list */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_chan_list_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** WMI_CHAN_LIST_TAG */ - A_UINT32 chan_list_type; - /** # if channels to scan */ - A_UINT32 num_chan; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_chan_list_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** WMI_CHAN_LIST_TAG */ + A_UINT32 chan_list_type; + /** # if channels to scan */ + A_UINT32 num_chan; /** - * TLV (tag length value ) parameters follow the wmi_roam_chan_list + * TLV (tag length value) parameters follow the wmi_roam_chan_list * structure. The TLV's are: * A_UINT32 channel_list[]; **/ @@ -8481,36 +8129,36 @@ typedef struct { /** Authentication modes */ enum { - WMI_AUTH_NONE, /* no upper level auth */ - WMI_AUTH_OPEN, /* open */ - WMI_AUTH_SHARED, /* shared-key */ - WMI_AUTH_8021X, /* 802.1x */ - WMI_AUTH_AUTO, /* Auto */ - WMI_AUTH_WPA, /* WPA */ - WMI_AUTH_RSNA, /* WPA2/RSNA */ - WMI_AUTH_CCKM, /* CCKM */ - WMI_AUTH_WAPI, /* WAPI */ - WMI_AUTH_AUTO_PSK, - WMI_AUTH_WPA_PSK, - WMI_AUTH_RSNA_PSK, - WMI_AUTH_WAPI_PSK, - WMI_AUTH_FT_RSNA, /* 11r FT */ - WMI_AUTH_FT_RSNA_PSK, - WMI_AUTH_RSNA_PSK_SHA256, - WMI_AUTH_RSNA_8021X_SHA256, - WMI_AUTH_CCKM_WPA, - WMI_AUTH_CCKM_RSNA, + WMI_AUTH_NONE, /* no upper level auth */ + WMI_AUTH_OPEN, /* open */ + WMI_AUTH_SHARED, /* shared-key */ + WMI_AUTH_8021X, /* 802.1x */ + WMI_AUTH_AUTO, /* Auto */ + WMI_AUTH_WPA, /* WPA */ + WMI_AUTH_RSNA, /* WPA2/RSNA */ + WMI_AUTH_CCKM, /* CCKM */ + WMI_AUTH_WAPI, /* WAPI */ + WMI_AUTH_AUTO_PSK, + WMI_AUTH_WPA_PSK, + WMI_AUTH_RSNA_PSK, + WMI_AUTH_WAPI_PSK, + WMI_AUTH_FT_RSNA, /* 11r FT */ + WMI_AUTH_FT_RSNA_PSK, + WMI_AUTH_RSNA_PSK_SHA256, + WMI_AUTH_RSNA_8021X_SHA256, + WMI_AUTH_CCKM_WPA, + WMI_AUTH_CCKM_RSNA, }; typedef struct { - /** authentication mode (defined above) */ - A_UINT32 rsn_authmode; - /** unicast cipher set */ - A_UINT32 rsn_ucastcipherset; - /** mcast/group cipher set */ - A_UINT32 rsn_mcastcipherset; - /** mcast/group management frames cipher set */ - A_UINT32 rsn_mcastmgmtcipherset; + /** authentication mode (defined above) */ + A_UINT32 rsn_authmode; + /** unicast cipher set */ + A_UINT32 rsn_ucastcipherset; + /** mcast/group cipher set */ + A_UINT32 rsn_mcastcipherset; + /** mcast/group management frames cipher set */ + A_UINT32 rsn_mcastmgmtcipherset; } wmi_rsn_params; /** looking for a wps enabled AP */ @@ -8520,6 +8168,7 @@ typedef struct { /** looking for a PMF enabled AP */ #define WMI_AP_PROFILE_FLAG_PMF 0x4 + /** To match an open AP, the rs_authmode should be set to WMI_AUTH_NONE * and WMI_AP_PROFILE_FLAG_CRYPTO should be clear. * To match a WEP enabled AP, the rs_authmode should be set to WMI_AUTH_NONE @@ -8527,31 +8176,30 @@ typedef struct { */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ap_profile */ - /** flags as defined above */ - A_UINT32 flags; - /** - * rssi thresold value: the value of the the candidate AP should - * higher by this threshold than the rssi of the currrently associated AP. - */ - A_UINT32 rssi_threshold; - /** - * ssid vlaue to be matched. - */ - wmi_ssid ssid; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ap_profile */ + /** flags as defined above */ + A_UINT32 flags; + /** + * rssi thresold value: the value of the the candidate AP should + * higher by this threshold than the rssi of the currrently associated AP. + */ + A_UINT32 rssi_threshold; + /** + * ssid vlaue to be matched. + */ + wmi_ssid ssid; - /** - * security params to be matched. - */ - /** authentication mode (defined above) */ - A_UINT32 rsn_authmode; - /** unicast cipher set */ - A_UINT32 rsn_ucastcipherset; - /** mcast/group cipher set */ - A_UINT32 rsn_mcastcipherset; - /** mcast/group management frames cipher set */ - A_UINT32 rsn_mcastmgmtcipherset; + /** + * security params to be matched. + */ + /** authentication mode (defined above) */ + A_UINT32 rsn_authmode; + /** unicast cipher set */ + A_UINT32 rsn_ucastcipherset; + /** mcast/group cipher set */ + A_UINT32 rsn_mcastcipherset; + /** mcast/group management frames cipher set */ + A_UINT32 rsn_mcastmgmtcipherset; } wmi_ap_profile; /** Support early stop roaming scanning when finding a strong candidate AP @@ -8562,117 +8210,109 @@ typedef struct { * Earlystop threshold will be relaxed as each channel is scanned. */ typedef struct { - A_UINT32 tlv_header; - /* Minimum RSSI threshold value for early stop, unit is dB above NF. */ - A_UINT32 roam_earlystop_thres_min; - /* Maminum RSSI threshold value for early stop, unit is dB above NF. */ - A_UINT32 roam_earlystop_thres_max; + A_UINT32 tlv_header; + /* Minimum RSSI threshold value for early stop, unit is dB above NF. */ + A_UINT32 roam_earlystop_thres_min; + /* Maminum RSSI threshold value for early stop, unit is dB above NF. */ + A_UINT32 roam_earlystop_thres_max; } wmi_roam_earlystop_rssi_thres_param; typedef struct { - /* TLV tag and len; - * tag equals WMITLV_TAG_STRUC_wmi_roam_dense_thres_param - */ - A_UINT32 tlv_header; - /* rssi threshold offset under trffic and dense env */ - A_UINT32 roam_dense_rssi_thres_offset; - /* minimum number of APs to determine dense env */ - A_UINT32 roam_dense_min_aps; - /* initial dense status detected by host - * at the time of initial connection */ - A_UINT32 roam_dense_status; - /* traffic threshold to enable aggressive roaming in dense env; - * units are percent of medium occupancy, 0 - 100 - */ - A_UINT32 roam_dense_traffic_thres; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_dense_thres_param */ + A_UINT32 tlv_header; + /** rssi threshold offset under trffic and dense env */ + A_UINT32 roam_dense_rssi_thres_offset; + /** minimum number of APs to determine dense env */ + A_UINT32 roam_dense_min_aps; + /** initial dense status detected by host at the time of initial connection */ + A_UINT32 roam_dense_status; + /* traffic threshold to enable aggressive roaming in dense env; units are percent of medium occupancy, 0 - 100 */ + A_UINT32 roam_dense_traffic_thres; } wmi_roam_dense_thres_param; /** Beacon filter wmi command info */ #define BCN_FLT_MAX_SUPPORTED_IES 256 -#define BCN_FLT_MAX_ELEMS_IE_LIST BCN_FLT_MAX_SUPPORTED_IES/32 +#define BCN_FLT_MAX_ELEMS_IE_LIST (BCN_FLT_MAX_SUPPORTED_IES/32) typedef struct bss_bcn_stats { - A_UINT32 vdev_id; - A_UINT32 bss_bcnsdropped; - A_UINT32 bss_bcnsdelivered; + A_UINT32 vdev_id; + A_UINT32 bss_bcnsdropped; + A_UINT32 bss_bcnsdelivered; } wmi_bss_bcn_stats_t; typedef struct bcn_filter_stats { - A_UINT32 bcns_dropped; - A_UINT32 bcns_delivered; - A_UINT32 activefilters; - wmi_bss_bcn_stats_t bss_stats; + A_UINT32 bcns_dropped; + A_UINT32 bcns_delivered; + A_UINT32 activefilters; + wmi_bss_bcn_stats_t bss_stats; } wmi_bcnfilter_stats_t; typedef struct wmi_add_bcn_filter_cmd { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_add_bcn_filter_cmd_fixed_param */ - A_UINT32 vdev_id; - /* - * Following this structure is the TLV: - * A_UINT32 ie_map[BCN_FLT_MAX_ELEMS_IE_LIST]; - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_add_bcn_filter_cmd_fixed_param */ + A_UINT32 vdev_id; +/* + * Following this structure is the TLV: + * A_UINT32 ie_map[BCN_FLT_MAX_ELEMS_IE_LIST]; + */ } wmi_add_bcn_filter_cmd_fixed_param; typedef struct wmi_rmv_bcn_filter_cmd { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_rmv_bcn_filter_cmd_fixed_param */ - A_UINT32 vdev_id; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_rmv_bcn_filter_cmd_fixed_param */ + A_UINT32 vdev_id; } wmi_rmv_bcn_filter_cmd_fixed_param; #define WMI_BCN_SEND_DTIM_ZERO 1 #define WMI_BCN_SEND_DTIM_BITCTL_SET 2 typedef struct wmi_bcn_send_from_host { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_bcn_send_from_host_cmd_fixed_param */ - A_UINT32 vdev_id; - A_UINT32 data_len; - union { - A_UINT32 frag_ptr; /* Physical address of the frame */ - A_UINT32 frag_ptr_lo; /* LSB of physical address of the frame */ - }; - A_UINT32 frame_ctrl; /* farme ctrl to setup PPDU desc */ - A_UINT32 dtim_flag; /* to control CABQ traffic */ - A_UINT32 bcn_antenna; /* Antenna for beacon transmission */ - A_UINT32 frag_ptr_hi; /* MSBs of physical address of the frame */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_bcn_send_from_host_cmd_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 data_len; + union { + A_UINT32 frag_ptr; /* Physical address of the frame */ + A_UINT32 frag_ptr_lo; /* LSBs of physical address of the frame */ + }; + A_UINT32 frame_ctrl; /* farme ctrl to setup PPDU desc */ + A_UINT32 dtim_flag; /* to control CABQ traffic */ + A_UINT32 bcn_antenna; /* Antenna for beacon transmission */ + A_UINT32 frag_ptr_hi; /* MSBs of physical address of the frame */ } wmi_bcn_send_from_host_cmd_fixed_param; /* cmd to support bcn snd for all vaps at once */ typedef struct wmi_pdev_send_bcn { - A_UINT32 num_vdevs; - wmi_bcn_send_from_host_cmd_fixed_param bcn_cmd[1]; + A_UINT32 num_vdevs; + wmi_bcn_send_from_host_cmd_fixed_param bcn_cmd[1]; } wmi_pdev_send_bcn_cmd_t; /* * WMI_ROAM_AP_PROFILE: AP profile of connected AP for roaming. */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_ap_profile_fixed_param */ - /** id of AP criteria */ - A_UINT32 id; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_ap_profile_fixed_param */ + /** id of AP criteria */ + A_UINT32 id; - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; - /* - * Following this structure is the TLV: - * wmi_ap_profile ap_profile; //AP profile info - */ +/* + * Following this structure is the TLV: + * wmi_ap_profile ap_profile; <-- AP profile info + */ } wmi_roam_ap_profile_fixed_param; /** * WMI_OFL_SCAN_ADD_AP_PROFILE: add an AP profile. */ typedef struct { - /** id of AP criteria */ - A_UINT32 id; + /** id of AP criteria */ + A_UINT32 id; - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; - /** AP profile info */ - wmi_ap_profile ap_profile; + /** AP profile info */ + wmi_ap_profile ap_profile; } wmi_ofl_scan_add_ap_profile; @@ -8680,10 +8320,10 @@ typedef struct { * WMI_OFL_SCAN_REMOVE_AP_CRITERIA: remove an ap profile. */ typedef struct { - /** id of AP criteria */ - A_UINT32 id; - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; + /** id of AP criteria */ + A_UINT32 id; + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; } wmi_ofl_scan_remove_ap_profile; /** @@ -8692,8 +8332,8 @@ typedef struct { * scan. */ typedef struct { - /** offload scan period value, used for scans used when not connected */ - A_UINT32 ofl_scan_period; + /** offload scan period value, used for scans used when not connected */ + A_UINT32 ofl_scan_period; } wmi_ofl_scan_period; /* Do not modify XXX_BYTES or XXX_LEN below as it is fixed by standard */ @@ -8704,74 +8344,65 @@ typedef struct { #define ROAM_OFFLOAD_R0KH_ID_MAX_LEN (48) #define ROAM_OFFLOAD_NUM_MCS_SET (16) -/* This TLV will be filled only in case roam offload - * for wpa2-psk/okc/ese/11r is enabled */ +/* This TLV will be filled only in case roam offload for wpa2-psk/okc/ese/11r is enabled */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_offload_fixed_param */ - A_UINT32 rssi_cat_gap; /* gap for every category bucket */ - A_UINT32 prefer_5g; /* prefer select 5G candidate */ - A_UINT32 select_5g_margin; - A_UINT32 reassoc_failure_timeout; /* reassoc failure timeout */ - A_UINT32 capability; - A_UINT32 ht_caps_info; - A_UINT32 ampdu_param; - A_UINT32 ht_ext_cap; - A_UINT32 ht_txbf; - A_UINT32 asel_cap; - A_UINT32 qos_enabled; - A_UINT32 qos_caps; - A_UINT32 wmm_caps; - A_UINT32 mcsset[ROAM_OFFLOAD_NUM_MCS_SET >> 2]; /* since this 4 byte aligned, - * we don't declare it as - * tlv array */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_offload_fixed_param */ + A_UINT32 rssi_cat_gap; /* gap for every category bucket */ + A_UINT32 prefer_5g; /* prefer select 5G candidate */ + A_UINT32 select_5g_margin; + A_UINT32 reassoc_failure_timeout; /* reassoc failure timeout */ + A_UINT32 capability; + A_UINT32 ht_caps_info; + A_UINT32 ampdu_param; + A_UINT32 ht_ext_cap; + A_UINT32 ht_txbf; + A_UINT32 asel_cap; + A_UINT32 qos_enabled; + A_UINT32 qos_caps; + A_UINT32 wmm_caps; + A_UINT32 mcsset[ROAM_OFFLOAD_NUM_MCS_SET>>2]; /* since this 4 byte aligned, we don't declare it as tlv array */ } wmi_roam_offload_tlv_param; + /* flags for 11i offload */ -#define WMI_ROAM_OFFLOAD_FLAG_OKC_ENABLED 0 /* okc is enabled */ +#define WMI_ROAM_OFFLOAD_FLAG_OKC_ENABLED 0 /* okc is enabled */ /* from bit 1 to bit 31 are reserved */ #define WMI_SET_ROAM_OFFLOAD_OKC_ENABLED(flag) do { \ - (flag) |= (1 << WMI_ROAM_OFFLOAD_FLAG_OKC_ENABLED); \ -} while (0) + (flag) |= (1 << WMI_ROAM_OFFLOAD_FLAG_OKC_ENABLED); \ + } while (0) #define WMI_SET_ROAM_OFFLOAD_OKC_DISABLED(flag) do { \ - (flag) &= ~(1 << WMI_ROAM_OFFLOAD_FLAG_OKC_ENABLED); \ -} while (0) + (flag) &= ~(1 << WMI_ROAM_OFFLOAD_FLAG_OKC_ENABLED); \ + } while (0) -#define WMI_GET_ROAM_OFFLOAD_OKC_ENABLED(flag) \ - ((flag) & (1 << WMI_ROAM_OFFLOAD_FLAG_OKC_ENABLED)) +#define WMI_GET_ROAM_OFFLOAD_OKC_ENABLED(flag) \ + ((flag) & (1 << WMI_ROAM_OFFLOAD_FLAG_OKC_ENABLED)) /* This TLV will be filled only in case of wpa-psk/wpa2-psk */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_11i_offload_fixed_param */ - A_UINT32 flags; - /** flags. see WMI_ROAM_OFFLOAD_FLAG_ above */ - A_UINT32 pmk[ROAM_OFFLOAD_PMK_BYTES >> 2]; /* pmk offload. As this 4 byte aligned, we don't declare it as tlv array */ - A_UINT32 pmk_len; - /**the length of pmk. in normal case it should be 32, but for LEAP, is should be 16*/ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_11i_offload_fixed_param */ + A_UINT32 flags; /** flags. see WMI_ROAM_OFFLOAD_FLAG_ above */ + A_UINT32 pmk[ROAM_OFFLOAD_PMK_BYTES>>2]; /* pmk offload. As this 4 byte aligned, we don't declare it as tlv array */ + A_UINT32 pmk_len; /**the length of pmk. in normal case it should be 32, but for LEAP, is should be 16*/ } wmi_roam_11i_offload_tlv_param; /* This TLV will be filled only in case of 11R*/ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_11r_offload_fixed_param */ - A_UINT32 mdie_present; - A_UINT32 mdid; - A_UINT32 r0kh_id[ROAM_OFFLOAD_R0KH_ID_MAX_LEN >> 2]; - A_UINT32 r0kh_id_len; - A_UINT32 psk_msk[ROAM_OFFLOAD_PSK_MSK_BYTES >> 2]; /* psk/msk offload. As this 4 byte aligned, we don't declare it as tlv array */ - A_UINT32 psk_msk_len; - /**length of psk_msk*/ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_11r_offload_fixed_param */ + A_UINT32 mdie_present; + A_UINT32 mdid; + A_UINT32 r0kh_id[ROAM_OFFLOAD_R0KH_ID_MAX_LEN>>2]; + A_UINT32 r0kh_id_len; + A_UINT32 psk_msk[ROAM_OFFLOAD_PSK_MSK_BYTES>>2]; /* psk/msk offload. As this 4 byte aligned, we don't declare it as tlv array */ + A_UINT32 psk_msk_len; /**length of psk_msk*/ } wmi_roam_11r_offload_tlv_param; /* This TLV will be filled only in case of ESE */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_ese_offload_fixed_param */ - A_UINT32 krk[ROAM_OFFLOAD_KRK_BYTES >> 2]; /* KRK offload. As this 4 byte aligned, we don't declare it as tlv array */ - A_UINT32 btk[ROAM_OFFLOAD_BTK_BYTES >> 2]; /* BTK offload. As this 4 byte aligned, we don't declare it as tlv array */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_ese_offload_fixed_param */ + A_UINT32 krk[ROAM_OFFLOAD_KRK_BYTES>>2]; /* KRK offload. As this 4 byte aligned, we don't declare it as tlv array */ + A_UINT32 btk[ROAM_OFFLOAD_BTK_BYTES>>2]; /* BTK offload. As this 4 byte aligned, we don't declare it as tlv array */ } wmi_roam_ese_offload_tlv_param; /** WMI_ROAM_EVENT: roam event triggering the host roam logic. @@ -8780,34 +8411,30 @@ typedef struct { * from the current AP. */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_event_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** reason for roam event */ - A_UINT32 reason; - /** associated AP's rssi calculated by FW when reason code is WMI_ROAM_REASON_LOW_RSSI*/ - A_UINT32 rssi; - /** roam notification */ - A_UINT32 notif; - + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_event_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** reason for roam event */ + A_UINT32 reason; + /** associated AP's rssi calculated by FW when reason code is WMI_ROAM_REASON_LOW_RSSI*/ + A_UINT32 rssi; + /** roam notification */ + A_UINT32 notif; } wmi_roam_event_fixed_param; -/* roam_reason: bits 0-3 */ -/** invalid reason. Do not interpret reason field */ -#define WMI_ROAM_REASON_INVALID 0x0 +/* roam_reason: bits 0-3 */ +#define WMI_ROAM_REASON_INVALID 0x0 /** invalid reason. Do not interpret reason field */ #define WMI_ROAM_REASON_BETTER_AP 0x1 /** found a better AP */ #define WMI_ROAM_REASON_BMISS 0x2 /** beacon miss detected */ #define WMI_ROAM_REASON_DEAUTH 0x2 /** deauth/disassoc received */ #define WMI_ROAM_REASON_LOW_RSSI 0x3 /** connected AP's low rssi condition detected */ #define WMI_ROAM_REASON_SUITABLE_AP 0x4 /** found another AP that matches - SSID and Security profile in - WMI_ROAM_AP_PROFILE, found during scan - triggered upon FINAL_BMISS **/ + SSID and Security profile in + WMI_ROAM_AP_PROFILE, found during scan + triggered upon FINAL_BMISS **/ #define WMI_ROAM_REASON_HO_FAILED 0x5 /** LFR3.0 roaming failed, indicate the disconnection to host */ - -/* - * WMI_ROAM_REASON_INVOKE_ROAM_FAIL: +/** WMI_ROAM_REASON_INVOKE_ROAM_FAIL: * Result code of WMI_ROAM_INVOKE_CMDID. * Any roaming failure before reassociation will be indicated to host * with this reason. @@ -8818,69 +8445,64 @@ typedef struct { /* reserved up through 0xF */ /* subnet status: bits 4-5 */ -typedef enum { - WMI_ROAM_SUBNET_CHANGE_STATUS_UNKNOWN = 0, - WMI_ROAM_SUBNET_CHANGE_STATUS_UNCHANGED, - WMI_ROAM_SUBNET_CHANGE_STATUS_CHANGED, +typedef enum +{ + WMI_ROAM_SUBNET_CHANGE_STATUS_UNKNOWN = 0, + WMI_ROAM_SUBNET_CHANGE_STATUS_UNCHANGED, + WMI_ROAM_SUBNET_CHANGE_STATUS_CHANGED, } wmi_roam_subnet_change_status; #define WMI_ROAM_SUBNET_CHANGE_STATUS_MASK 0x30 #define WMI_ROAM_SUBNET_CHANGE_STATUS_SHIFT 4 #define WMI_SET_ROAM_SUBNET_CHANGE_STATUS(roam_reason, status) \ - do { \ - (roam_reason) |= \ - (((status) << WMI_ROAM_SUBNET_CHANGE_STATUS_SHIFT) & \ - WMI_ROAM_SUBNET_CHANGE_STATUS_MASK); \ - } while (0) + do { \ + (roam_reason) |= \ + (((status) << WMI_ROAM_SUBNET_CHANGE_STATUS_SHIFT) & \ + WMI_ROAM_SUBNET_CHANGE_STATUS_MASK); \ + } while (0) #define WMI_GET_ROAM_SUBNET_CHANGE_STATUS(roam_reason) \ - (((roam_reason) & WMI_ROAM_SUBNET_CHANGE_STATUS_MASK) >> \ - WMI_ROAM_SUBNET_CHANGE_STATUS_SHIFT) + (((roam_reason) & WMI_ROAM_SUBNET_CHANGE_STATUS_MASK) >> \ + WMI_ROAM_SUBNET_CHANGE_STATUS_SHIFT) /* roaming notification */ -/** invalid notification. Do not interpret notif field */ -#define WMI_ROAM_NOTIF_INVALID 0x0 -/** indicate that roaming is started. sent only in non WOW state */ -#define WMI_ROAM_NOTIF_ROAM_START 0x1 -/** indicate that roaming is aborted. sent only in non WOW state */ -#define WMI_ROAM_NOTIF_ROAM_ABORT 0x2 +#define WMI_ROAM_NOTIF_INVALID 0x0 /** invalid notification. Do not interpret notif field */ +#define WMI_ROAM_NOTIF_ROAM_START 0x1 /** indicate that roaming is started. sent only in non WOW state */ +#define WMI_ROAM_NOTIF_ROAM_ABORT 0x2 /** indicate that roaming is aborted. sent only in non WOW state */ /**whenever RIC request information change, host driver should pass all ric related information to firmware (now only support tsepc) - * Once, 11r roaming happens, firmware can generate RIC request in reassoc request based on these informations - */ -typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ric_request_fixed_param */ - A_UINT32 vdev_id; - /**unique id identifying the VDEV, generated by the caller*/ - A_UINT32 num_ric_request; - /**number of ric request ie send to firmware.(max value is 2 now)*/ - A_UINT32 is_add_ric; - /**support add ric or delete ric*/ +* Once, 11r roaming happens, firmware can generate RIC request in reassoc request based on these informations +*/ +typedef struct +{ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ric_request_fixed_param */ + A_UINT32 vdev_id; /**unique id identifying the VDEV, generated by the caller*/ + A_UINT32 num_ric_request; /**number of ric request ie send to firmware.(max value is 2 now)*/ + A_UINT32 is_add_ric; /**support add ric or delete ric*/ } wmi_ric_request_fixed_param; /**tspec element: refer to 8.4.2.32 of 802.11 2012 spec - * these elements are used to construct tspec field in RIC request, which allow station to require specific TS when 11r roaming - */ -typedef struct { - A_UINT32 tlv_header; - A_UINT32 ts_info; /** bits value of TS Info field.*/ - A_UINT32 nominal_msdu_size; /**Nominal MSDU Size field*/ - A_UINT32 maximum_msdu_size; /**The Maximum MSDU Size field*/ - A_UINT32 min_service_interval; /**The Minimum Service Interval field*/ - A_UINT32 max_service_interval; /**The Maximum Service Interval field*/ - A_UINT32 inactivity_interval; /**The Inactivity Interval field*/ - A_UINT32 suspension_interval; /**The Suspension Interval field*/ - A_UINT32 svc_start_time; /**The Service Start Time field*/ - A_UINT32 min_data_rate; /**The Minimum Data Rate field*/ - A_UINT32 mean_data_rate; /**The Mean Data Rate field*/ - A_UINT32 peak_data_rate; /**The Peak Data Rate field*/ - A_UINT32 max_burst_size; /**The Burst Size field*/ - A_UINT32 delay_bound; /**The Delay Bound field*/ - A_UINT32 min_phy_rate; /**The Minimum PHY Rate field*/ - A_UINT32 surplus_bw_allowance; /**The Surplus Bandwidth Allowance field*/ - A_UINT32 medium_time; /**The Medium Time field,in units of 32 us/s.*/ +* these elements are used to construct tspec field in RIC request, which allow station to require specific TS when 11r roaming +*/ +typedef struct{ + A_UINT32 tlv_header; + A_UINT32 ts_info; /** bits value of TS Info field.*/ + A_UINT32 nominal_msdu_size; /**Nominal MSDU Size field*/ + A_UINT32 maximum_msdu_size; /**The Maximum MSDU Size field*/ + A_UINT32 min_service_interval; /**The Minimum Service Interval field*/ + A_UINT32 max_service_interval; /**The Maximum Service Interval field*/ + A_UINT32 inactivity_interval; /**The Inactivity Interval field*/ + A_UINT32 suspension_interval; /**The Suspension Interval field*/ + A_UINT32 svc_start_time; /**The Service Start Time field*/ + A_UINT32 min_data_rate; /**The Minimum Data Rate field*/ + A_UINT32 mean_data_rate; /**The Mean Data Rate field*/ + A_UINT32 peak_data_rate; /**The Peak Data Rate field*/ + A_UINT32 max_burst_size; /**The Burst Size field*/ + A_UINT32 delay_bound; /**The Delay Bound field*/ + A_UINT32 min_phy_rate; /**The Minimum PHY Rate field*/ + A_UINT32 surplus_bw_allowance; /**The Surplus Bandwidth Allowance field*/ + A_UINT32 medium_time; /**The Medium Time field,in units of 32 us/s.*/ } wmi_ric_tspec; /* flags for roam_invoke_cmd */ @@ -8893,15 +8515,15 @@ typedef struct { /* from bit 3 to bit 31 are reserved */ #define WMI_SET_ROAM_INVOKE_ADD_CH_TO_CACHE(flag) do { \ - (flag) |= (1 << WMI_SET_ROAM_INVOKE_ADD_CH_TO_CACHE); \ - } while (0) + (flag) |= (1 << WMI_SET_ROAM_INVOKE_ADD_CH_TO_CACHE); \ + } while (0) #define WMI_CLEAR_ROAM_INVOKE_ADD_CH_TO_CACHE(flag) do { \ - (flag) &= ~(1 << WMI_SET_ROAM_INVOKE_ADD_CH_TO_CACHE); \ - } while (0) + (flag) &= ~(1 << WMI_SET_ROAM_INVOKE_ADD_CH_TO_CACHE); \ + } while (0) #define WMI_GET_ROAM_INVOKE_ADD_CH_TO_CACHE(flag) \ - ((flag) & (1 << WMI_SET_ROAM_INVOKE_ADD_CH_TO_CACHE)) + ((flag) & (1 << WMI_SET_ROAM_INVOKE_ADD_CH_TO_CACHE)) #define WMI_ROAM_INVOKE_SCAN_MODE_FIXED_CH 0 /* scan given channel only */ @@ -8912,75 +8534,66 @@ typedef struct { #define WMI_ROAM_INVOKE_AP_SEL_ANY_BSSID 1 /* roam to any BSSID */ /** WMI_ROAM_INVOKE_CMD: command to invoke roaming forcefully - * - * if is zero and is not given, roaming is not executed. - * if is zero and = 0 - * = 0 - * = 0 - * |= WMI_ROAM_INVOKE_FLAG_ADD_CH_TO_CACHE - * = do not fill (there will be no actual roaming because of ap_sel_mode is zero, but no BSSID is given) - * = channel list to be added - */ +* +if is zero and is not given, roaming is not executed. +if is zero and = 0 + = 0 + = 0 + |= WMI_ROAM_INVOKE_FLAG_ADD_CH_TO_CACHE + = do not fill (there will be no actual roaming because of ap_sel_mode is zero, but no BSSID is given) + = channel list to be added +*/ typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_invoke_fixed_param */ - A_UINT32 vdev_id; /** Unique id identifying the VDEV on which roaming is invoked */ - A_UINT32 flags; /** flags. see WMI_ROAM_INVOKE_FLAG_ above */ - A_UINT32 roam_scan_mode; /** see WMI_ROAM_INVOKE_SCAN_ above */ - A_UINT32 roam_ap_sel_mode; /** see WMI_ROAM_INVOKE_AP_SEL_ above */ - A_UINT32 roam_delay; /** 0 = immediate roam, 1-2^32 = roam after this delay (msec) */ - A_UINT32 num_chan; /** # if channels to scan. In the TLV channel_list[] */ - A_UINT32 num_bssid; /** number of bssids. In the TLV bssid_list[] */ - /** - * TLV (tag length value ) parameters follows roam_invoke_req - * The TLV's are: - * A_UINT32 channel_list[]; - * wmi_mac_addr bssid_list[]; - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_invoke_fixed_param */ + A_UINT32 vdev_id; /** Unique id identifying the VDEV on which roaming is invoked */ + A_UINT32 flags; /** flags. see WMI_ROAM_INVOKE_FLAG_ above */ + A_UINT32 roam_scan_mode; /** see WMI_ROAM_INVOKE_SCAN_ above */ + A_UINT32 roam_ap_sel_mode; /** see WMI_ROAM_INVOKE_AP_SEL_ above */ + A_UINT32 roam_delay; /** 0 = immediate roam, 1-2^32 = roam after this delay (msec) */ + A_UINT32 num_chan; /** # if channels to scan. In the TLV channel_list[] */ + A_UINT32 num_bssid; /** number of bssids. In the TLV bssid_list[] */ + /** + * TLV (tag length value) parameters follows roam_invoke_req + * The TLV's are: + * A_UINT32 channel_list[]; + * wmi_mac_addr bssid_list[]; + */ } wmi_roam_invoke_cmd_fixed_param; /* Definition for op_bitmap */ enum { - ROAM_FILTER_OP_BITMAP_BLACK_LIST = 0x1, - ROAM_FILTER_OP_BITMAP_WHITE_LIST = 0x2, - ROAM_FILTER_OP_BITMAP_PREFER_BSSID = 0x4, + ROAM_FILTER_OP_BITMAP_BLACK_LIST = 0x1, + ROAM_FILTER_OP_BITMAP_WHITE_LIST = 0x2, + ROAM_FILTER_OP_BITMAP_PREFER_BSSID = 0x4, }; typedef struct { - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_filter_list_fixed_param */ - A_UINT32 tlv_header; - /** Unique id identifying the VDEV on which roaming filter is adopted */ - A_UINT32 vdev_id; - A_UINT32 flags; /** flags for filter */ - /** 32 bit bitmap to be set on. - * bit0 = first param, - * bit 1 = second param...etc. Can be or'ed - */ - A_UINT32 op_bitmap; - /* number of blacklist in the TLV variable bssid_black_list */ - A_UINT32 num_bssid_black_list; - /* number of whitelist in the TLV variable ssid_white_list */ - A_UINT32 num_ssid_white_list; - /* only for lfr 3.0. number of preferred list & factor in the TLV */ - A_UINT32 num_bssid_preferred_list; - /** - * TLV (tag length value ) parameters follows roam_filter_list_cmd - * The TLV's are: - * wmi_mac_addr bssid_black_list[]; - * wmi_ssid ssid_white_list[]; - * wmi_mac_addr bssid_preferred_list[]; - * A_UINT32 bssid_preferred_factor[]; - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_filter_list_fixed_param */ + A_UINT32 vdev_id; /** Unique id identifying the VDEV on which roaming filter is adopted */ + A_UINT32 flags; /** flags for filter */ + A_UINT32 op_bitmap; /** 32 bit bitmap to be set on. bit0 = first param, bit 1 = second param...etc. Can be or'ed */ + A_UINT32 num_bssid_black_list; /* number of blacklist in the TLV variable bssid_black_list */ + A_UINT32 num_ssid_white_list; /* number of whitelist in the TLV variable ssid_white_list */ + A_UINT32 num_bssid_preferred_list; /* only for lfr 3.0. number of preferred list & factor in the TLV */ + /** + * TLV (tag length value) parameters follows roam_filter_list_cmd + * The TLV's are: + * wmi_mac_addr bssid_black_list[]; + * wmi_ssid ssid_white_list[]; + * wmi_mac_addr bssid_preferred_list[]; + * A_UINT32 bssid_preferred_factor[]; + */ } wmi_roam_filter_fixed_param; typedef struct { - A_UINT8 address[4]; /* IPV4 address in Network Byte Order */ + A_UINT8 address[4]; /* IPV4 address in Network Byte Order */ } WMI_IPV4_ADDR; typedef struct _WMI_IPV6_ADDR { - A_UINT8 address[16]; /* IPV6 in Network Byte Order */ + A_UINT8 address[16]; /* IPV6 in Network Byte Order */ } WMI_IPV6_ADDR; /* flags for subnet change detection */ @@ -8990,57 +8603,52 @@ typedef struct _WMI_IPV6_ADDR { /* set IPv4 enabled/disabled flag and get the flag */ #define WMI_SET_ROAM_SUBNET_CHANGE_FLAG_IP4_ENABLED(flag) do { \ - (flag) |= (1 << WMI_ROAM_SUBNET_CHANGE_FLAG_IP4_ENABLED); \ + (flag) |= (1 << WMI_ROAM_SUBNET_CHANGE_FLAG_IP4_ENABLED); \ } while (0) #define WMI_SET_ROAM_SUBNET_CHANGE_FLAG_IP4_DISABLED(flag) do { \ - (flag) &= ~(1 << WMI_ROAM_SUBNET_CHANGE_FLAG_IP4_ENABLED); \ + (flag) &= ~(1 << WMI_ROAM_SUBNET_CHANGE_FLAG_IP4_ENABLED); \ } while (0) #define WMI_GET_ROAM_SUBNET_CHANGE_FLAG_IP4_ENABLED(flag) \ - ((flag) & (1 << WMI_ROAM_SUBNET_CHANGE_FLAG_IP4_ENABLED)) + ((flag) & (1 << WMI_ROAM_SUBNET_CHANGE_FLAG_IP4_ENABLED)) /* set IPv6 enabled flag, disabled and get the flag */ #define WMI_SET_ROAM_SUBNET_CHANGE_FLAG_IP6_ENABLED(flag) do { \ - (flag) |= (1 << WMI_ROAM_SUBNET_CHANGE_FLAG_IP6_ENABLED); \ + (flag) |= (1 << WMI_ROAM_SUBNET_CHANGE_FLAG_IP6_ENABLED); \ } while (0) #define WMI_SET_ROAM_SUBNET_CHANGE_FLAG_IP6_DISABLED(flag) do { \ - (flag) &= ~(1 << WMI_ROAM_SUBNET_CHANGE_FLAG_IP6_ENABLED); \ + (flag) &= ~(1 << WMI_ROAM_SUBNET_CHANGE_FLAG_IP6_ENABLED); \ } while (0) #define WMI_GET_ROAM_SUBNET_CHANGE_FLAG_IP6_ENABLED(flag) \ - ((flag) & (1 << WMI_ROAM_SUBNET_CHANGE_FLAG_IP6_ENABLED)) + ((flag) & (1 << WMI_ROAM_SUBNET_CHANGE_FLAG_IP6_ENABLED)) /** * WMI_ROAM_SUBNET_CHANGE_CONFIG : Pass the gateway IP and MAC addresses * to FW. FW uses these parameters for subnet change detection. */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_roam_subnet_change_config_fixed_param - */ - A_UINT32 tlv_header; - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** IPv4/IPv6 enabled/disabled */ - /** This flag sets the WMI_SET_ROAM_SUBNET_CHANGE_FLAG_xxx_ENABLED/ - DISABLED */ - A_UINT32 flag; - /** Gateway MAC address */ - wmi_mac_addr inet_gw_mac_addr; - /** IP addresses */ - WMI_IPV4_ADDR inet_gw_ip_v4_addr; - WMI_IPV6_ADDR inet_gw_ip_v6_addr; - /** Number of software retries for ARP/Neighbor solicitation request */ - A_UINT32 max_retries; - /** timeout in milliseconds for each ARP request*/ - A_UINT32 timeout; - /** number of skipped aps **/ - A_UINT32 num_skip_subnet_change_detection_bssid_list; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_subnet_change_config_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** IPv4/IPv6 enabled/disabled */ + /** This flag sets the WMI_SET_ROAM_SUBNET_CHANGE_FLAG_xxx_ENABLED/DISABLED */ + A_UINT32 flag; + /** Gateway MAC address */ + wmi_mac_addr inet_gw_mac_addr; + /** IP addresses */ + WMI_IPV4_ADDR inet_gw_ip_v4_addr; + WMI_IPV6_ADDR inet_gw_ip_v6_addr; + /** Number of software retries for ARP/Neighbor solicitation request */ + A_UINT32 max_retries; + /** timeout in milliseconds for each ARP request*/ + A_UINT32 timeout; + /** number of skipped aps **/ + A_UINT32 num_skip_subnet_change_detection_bssid_list; /** - * TLV (tag length value ) parameters follows roam_subnet_change_config_cmd + * TLV (tag length value) parameters follows roam_subnet_change_config_cmd * structure. The TLV's are: * wmi_mac_addr skip_subnet_change_detection_bssid_list []; **/ @@ -9059,13 +8667,13 @@ typedef struct { * FW will respond to probe requests while in listen state. */ typedef struct { - /* number of secondary device types,supported */ - A_UINT32 num_secondary_dev_types; - /** - * followed by 8 bytes of primary device id and - * num_secondary_dev_types * 8 bytes of secondary device - * id. - */ + /* number of secondary device types,supported */ + A_UINT32 num_secondary_dev_types; +/** + * followed by 8 bytes of primary device id and + * num_secondary_dev_types * 8 bytes of secondary device + * id. + */ } wmi_p2p_dev_set_device_info; /** WMI_P2P_DEV_SET_DISCOVERABILITY: enable/disable discoverability @@ -9074,8 +8682,8 @@ typedef struct { */ typedef struct { - /* 1:enable disoverability, 0:disable discoverability */ - A_UINT32 enable_discoverability; + /* 1:enable disoverability, 0:disable discoverability */ + A_UINT32 enable_discoverability; } wmi_p2p_set_discoverability; /** WMI_P2P_GO_SET_BEACON_IE: P2P IE to be added to @@ -9084,14 +8692,14 @@ typedef struct { * template set by WMI_BCN_TMPL_CMDID command. */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_p2p_go_set_beacon_ie_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /* ie length */ - A_UINT32 ie_buf_len; - /* Following this structure is the TLV byte stream of ie data of length ie_buf_len: - * A_UINT8 ie_data[]; // length in byte given by field num_data. - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_p2p_go_set_beacon_ie_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /* ie length */ + A_UINT32 ie_buf_len; +/* Following this structure is the TLV byte stream of ie data of length ie_buf_len: + * A_UINT8 ie_data[]; <-- length in byte given by field num_data. + */ } wmi_p2p_go_set_beacon_ie_fixed_param; @@ -9101,553 +8709,522 @@ typedef struct { * template set by WMI_PRB_TMPL_CMDID command. */ typedef struct { - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /* ie length */ - A_UINT32 ie_buf_len; - /*followed by byte stream of ie data of length ie_buf_len */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /* ie length */ + A_UINT32 ie_buf_len; +/*followed by byte stream of ie data of length ie_buf_len */ } wmi_p2p_go_set_probe_resp_ie; /** WMI_P2P_SET_VENDOR_IE_DATA_CMDID: Vendor specific P2P IE data, which will * be used by the FW to parse the P2P NoA attribute in beacons, probe resposes * and action frames received by the P2P Client. + * Note: This command is currently used only for Apple P2P implementation. */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_p2p_set_vendor_ie_data_cmd_fixed_param */ - /** OS specific P2P IE OUI (3 bytes) + OUI type (1 byte) */ - A_UINT32 p2p_ie_oui_type; - /** OS specific NoA Attribute ID */ - A_UINT32 p2p_noa_attribute; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_p2p_set_vendor_ie_data_cmd_fixed_param */ + /** OS specific P2P IE OUI (3 bytes) + OUI type (1 byte) */ + A_UINT32 p2p_ie_oui_type; + /** OS specific NoA Attribute ID */ + A_UINT32 p2p_noa_attribute; } wmi_p2p_set_vendor_ie_data_cmd_fixed_param; /*----P2P disc offload definition ----*/ typedef struct { - A_UINT32 pattern_type; - /** - * TLV (tag length value ) paramerters follow the pattern structure. - * TLV can contain bssid list, ssid list and - * ie. the TLV tags are defined above; - */ + A_UINT32 pattern_type; +/** + * TLV (tag length value) paramerters follow the pattern structure. + * TLV can contain bssid list, ssid list and + * ie. the TLV tags are defined above; + */ } wmi_p2p_disc_offload_pattern_cmd; typedef struct { - /* unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /* mgmt type of the ie */ - A_UINT32 mgmt_type; - /* ie length */ - A_UINT32 ie_buf_len; - /*followed by byte stream of ie data of length ie_buf_len */ + /* unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /* mgmt type of the ie*/ + A_UINT32 mgmt_type; + /* ie length */ + A_UINT32 ie_buf_len; +/*followed by byte stream of ie data of length ie_buf_len */ } wmi_p2p_disc_offload_appie_cmd; typedef struct { - /* enable/disable p2p find offload */ - A_UINT32 enable; - /* unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /* p2p find type */ - A_UINT32 disc_type; - /* p2p find perodic */ - A_UINT32 perodic; - /* p2p find listen channel */ - A_UINT32 listen_channel; - /* p2p find full channel number */ - A_UINT32 num_scan_chans; - /** - * TLV (tag length value ) paramerters follow the pattern structure. - * TLV contain channel list - */ + /* enable/disable p2p find offload*/ + A_UINT32 enable; + /* unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /* p2p find type */ + A_UINT32 disc_type; + /* p2p find perodic */ + A_UINT32 perodic; + /* p2p find listen channel */ + A_UINT32 listen_channel; + /* p2p find full channel number */ + A_UINT32 num_scan_chans; +/** + * TLV (tag length value) paramerters follow the pattern structure. + * TLV contain channel list + */ } wmi_p2p_disc_offload_config_cmd; /*----P2P OppPS definition ----*/ typedef struct { - /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_p2p_set_oppps_cmd_fixed_param */ - A_UINT32 tlv_header; - /* unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /* OppPS attributes */ - /** Bit 0: Indicate enable/disable of OppPS - * Bits 7-1: Ctwindow in TUs - * Bits 31-8: Reserved - */ - A_UINT32 oppps_attr; + /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_p2p_set_oppps_cmd_fixed_param */ + A_UINT32 tlv_header; + /* unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /* OppPS attributes */ + /** Bit 0: Indicate enable/disable of OppPS + * Bits 7-1: Ctwindow in TUs + * Bits 31-8: Reserved + */ + A_UINT32 oppps_attr; } wmi_p2p_set_oppps_cmd_fixed_param; -#define WMI_UNIFIED_OPPPS_ATTR_ENALBED 0x1 -#define WMI_UNIFIED_OPPPS_ATTR_ENALBED_S 0 +#define WMI_UNIFIED_OPPPS_ATTR_ENALBED 0x1 +#define WMI_UNIFIED_OPPPS_ATTR_ENALBED_S 0 -#define WMI_UNIFIED_OPPPS_ATTR_IS_ENABLED(hdr) \ - WMI_F_MS((hdr)->oppps_attr, WMI_UNIFIED_OPPPS_ATTR_ENALBED) +#define WMI_UNIFIED_OPPPS_ATTR_IS_ENABLED(hdr) \ + WMI_F_MS((hdr)->oppps_attr, WMI_UNIFIED_OPPPS_ATTR_ENALBED) -#define WMI_UNIFIED_OPPPS_ATTR_ENABLED_SET(hdr) \ - WMI_F_RMW((hdr)->oppps_attr, 0x1, \ - WMI_UNIFIED_OPPPS_ATTR_ENALBED); +#define WMI_UNIFIED_OPPPS_ATTR_ENABLED_SET(hdr) \ + WMI_F_RMW((hdr)->oppps_attr, 0x1, \ + WMI_UNIFIED_OPPPS_ATTR_ENALBED); -#define WMI_UNIFIED_OPPPS_ATTR_CTWIN 0xfe -#define WMI_UNIFIED_OPPPS_ATTR_CTWIN_S 1 +#define WMI_UNIFIED_OPPPS_ATTR_CTWIN 0xfe +#define WMI_UNIFIED_OPPPS_ATTR_CTWIN_S 1 -#define WMI_UNIFIED_OPPPS_ATTR_CTWIN_GET(hdr) \ - WMI_F_MS((hdr)->oppps_attr, WMI_UNIFIED_OPPPS_ATTR_CTWIN) +#define WMI_UNIFIED_OPPPS_ATTR_CTWIN_GET(hdr) \ + WMI_F_MS((hdr)->oppps_attr, WMI_UNIFIED_OPPPS_ATTR_CTWIN) -#define WMI_UNIFIED_OPPPS_ATTR_CTWIN_SET(hdr, v) \ - WMI_F_RMW((hdr)->oppps_attr, (v) & 0x7f, \ - WMI_UNIFIED_OPPPS_ATTR_CTWIN); +#define WMI_UNIFIED_OPPPS_ATTR_CTWIN_SET(hdr, v) \ + WMI_F_RMW((hdr)->oppps_attr, (v) & 0x7f, \ + WMI_UNIFIED_OPPPS_ATTR_CTWIN); typedef enum p2p_lo_start_ctrl_flags_e { - /* flush prob. req when host is awake */ - P2P_LO_START_CTRL_FLAG_FLUSH_LISTEN_RESULT = 1 << 0, + P2P_LO_START_CTRL_FLAG_FLUSH_LISTEN_RESULT = 1 << 0, /* flush prob. req when host is awake */ } p2p_lo_start_ctrl_flags; typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 ctl_flags; /* refer to enum_p2p_lo_start_ctrl_flags_e */ - A_UINT32 channel; /* MHz */ - A_UINT32 period; /* ms */ - A_UINT32 interval; /* ms, interval should be larger than period */ - A_UINT32 count; /* 0 means forever */ - /* - * device_types_len specifies the number of bytes in the - * device_types_data[] byte-array TLV that follows this TLV. - * The data in device_types_data[] is in 8-byte elements, so - * device_types_len will be a multiple of 8. - */ - A_UINT32 device_types_len; - /* - * prob_resp_len specifies the number of bytes in the - * prob_resp_data[] byte-array TLV that follows this TLV. - */ - A_UINT32 prob_resp_len; - /* - * Two other TLVs follow this TLV: - * A_UINT8 device_types_data[device_types_len]; - * A_UINT8 prob_resp_data[prob_resp_len]; - * The information in device_types_data[] and prob_resp_data[] - * needs to be provided to the target in over-the-air byte order. - * On a big-endian host, if device_types_data and prob_resp_data - * are initially in the correct over-the-air byte order, - * the automatic byteswap for endianness-correction during WMI - * message download will mess up the byte order. - * Thus, a big-endian host needs to explicitly byte-swap the bytes - * within each quad-byte segment of device_types_data[] and - * prob_resp_data[], so that the automatic byte-swap applied during - * WMI download from a big-endian host to the little-endian target - * will restore device_types_data and prob_resp_data into the - * correct byte ordering. - */ + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 ctl_flags; /* refer to enum_p2p_lo_start_ctrl_flags_e */ + A_UINT32 channel; /* MHz */ + A_UINT32 period; /* ms */ + A_UINT32 interval; /* ms, interval should be larger than period */ + A_UINT32 count; /* 0 means forever */ + /* + * device_types_len specifies the number of bytes in the + * device_types_data[] byte-array TLV that follows this TLV. + * The data in device_types_data[] is in 8-byte elements, so + * device_types_len will be a multiple of 8. + */ + A_UINT32 device_types_len; + /* + * prob_resp_len specifies the number of bytes in the + * prob_resp_data[] byte-array TLV that follows this TLV. + */ + A_UINT32 prob_resp_len; + /* + * Two other TLVs follow this TLV: + * A_UINT8 device_types_data[device_types_len]; + * A_UINT8 prob_resp_data[prob_resp_len]; + * The information in device_types_data[] and prob_resp_data[] + * needs to be provided to the target in over-the-air byte order. + * On a big-endian host, if device_types_data and prob_resp_data + * are initially in the correct over-the-air byte order, + * the automatic byteswap for endianness-correction during WMI + * message download will mess up the byte order. + * Thus, a big-endian host needs to explicitly byte-swap the bytes + * within each quad-byte segment of device_types_data[] and + * prob_resp_data[], so that the automatic byte-swap applied during + * WMI download from a big-endian host to the little-endian target + * will restore device_types_data and prob_resp_data into the + * correct byte ordering. + */ } wmi_p2p_lo_start_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; + A_UINT32 tlv_header; + A_UINT32 vdev_id; } wmi_p2p_lo_stop_cmd_fixed_param; typedef enum p2p_lo_stopped_reason_e { - /* finished as scheduled */ - P2P_LO_STOPPED_REASON_COMPLETE = 0, - /* host stops it */ - P2P_LO_STOPPED_REASON_RECV_STOP_CMD, - /* invalid listen offload par */ - P2P_LO_STOPPED_REASON_INVALID_LO_PAR, - /* vdev cannot support it right now */ - P2P_LO_STOPPED_REASON_FW_NOT_SUPPORT, + P2P_LO_STOPPED_REASON_COMPLETE = 0, /* finished as scheduled */ + P2P_LO_STOPPED_REASON_RECV_STOP_CMD, /* host stops it */ + P2P_LO_STOPPED_REASON_INVALID_LO_PAR, /* invalid listen offload par */ + P2P_LO_STOPPED_REASON_FW_NOT_SUPPORT, /* vdev cannot support it right now */ } p2p_lo_stopped_reason; typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 reason; /* refer to p2p_lo_stopped_reason_e */ + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 reason;/* refer to p2p_lo_stopped_reason_e */ } wmi_p2p_lo_stopped_event_fixed_param; typedef enum { - WMI_MNT_FILTER_CONFIG_MANAGER, - WMI_MNT_FILTER_CONFIG_CONTROL, - WMI_MNT_FILTER_CONFIG_DATA, - WMI_MNT_FILTER_CONFIG_ALL, - WMI_MNT_FILTER_CONFIG_UNKNOWN, + WMI_MNT_FILTER_CONFIG_MANAGER, + WMI_MNT_FILTER_CONFIG_CONTROL, + WMI_MNT_FILTER_CONFIG_DATA, + WMI_MNT_FILTER_CONFIG_ALL, + WMI_MNT_FILTER_CONFIG_UNKNOWN, } WMI_MNT_FILTER_CONFIG_TYPE; typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 clear_or_set; - A_UINT32 configure_type; /* see WMI_MNT_FILTER_CONFIG_TYPE */ + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 clear_or_set; + A_UINT32 configure_type; /* see WMI_MNT_FILTER_CONFIG_TYPE */ } wmi_mnt_filter_cmd_fixed_param; typedef struct { - A_UINT32 time32; /* upper 32 bits of time stamp */ - A_UINT32 time0; /* lower 32 bits of time stamp */ + A_UINT32 time32; /* upper 32 bits of time stamp */ + A_UINT32 time0; /* lower 32 bits of time stamp */ } A_TIME64; typedef enum wmi_peer_sta_kickout_reason { - WMI_PEER_STA_KICKOUT_REASON_UNSPECIFIED = 0, /* default value to preserve legacy behavior */ - WMI_PEER_STA_KICKOUT_REASON_XRETRY = 1, - WMI_PEER_STA_KICKOUT_REASON_INACTIVITY = 2, - WMI_PEER_STA_KICKOUT_REASON_IBSS_DISCONNECT = 3, - WMI_PEER_STA_KICKOUT_REASON_TDLS_DISCONNECT = 4, /* TDLS peer has disappeared. All tx is failing */ - WMI_PEER_STA_KICKOUT_REASON_SA_QUERY_TIMEOUT = 5, + WMI_PEER_STA_KICKOUT_REASON_UNSPECIFIED = 0, /* default value to preserve legacy behavior */ + WMI_PEER_STA_KICKOUT_REASON_XRETRY = 1, + WMI_PEER_STA_KICKOUT_REASON_INACTIVITY = 2, + WMI_PEER_STA_KICKOUT_REASON_IBSS_DISCONNECT = 3, + WMI_PEER_STA_KICKOUT_REASON_TDLS_DISCONNECT = 4, /* TDLS peer has disappeared. All tx is failing */ + WMI_PEER_STA_KICKOUT_REASON_SA_QUERY_TIMEOUT = 5, } PEER_KICKOUT_REASON; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_sta_kickout_event_fixed_param */ - /** peer mac address */ - wmi_mac_addr peer_macaddr; - /** Reason code, defined as above */ - A_UINT32 reason; - /** RSSI of the last bcn (averaged) in dB. 0 means Noise Floor value */ - A_UINT32 rssi; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_sta_kickout_event_fixed_param */ + /** peer mac address */ + wmi_mac_addr peer_macaddr; + /** Reason code, defined as above */ + A_UINT32 reason; + /** RSSI of the last bcn (averaged) in dB. 0 means Noise Floor value */ + A_UINT32 rssi; } wmi_peer_sta_kickout_event_fixed_param; #define WMI_WLAN_PROFILE_MAX_HIST 3 #define WMI_WLAN_PROFILE_MAX_BIN_CNT 32 typedef struct _wmi_wlan_profile_t { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wlan_profile_t */ - A_UINT32 id; - A_UINT32 cnt; - A_UINT32 tot; - A_UINT32 min; - A_UINT32 max; - A_UINT32 hist_intvl; - A_UINT32 hist[WMI_WLAN_PROFILE_MAX_HIST]; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wlan_profile_t */ + A_UINT32 id; + A_UINT32 cnt; + A_UINT32 tot; + A_UINT32 min; + A_UINT32 max; + A_UINT32 hist_intvl; + A_UINT32 hist[WMI_WLAN_PROFILE_MAX_HIST]; } wmi_wlan_profile_t; typedef struct _wmi_wlan_profile_ctx_t { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wlan_profile_ctx_t */ - A_UINT32 tot; /* time in us */ - A_UINT32 tx_msdu_cnt; - A_UINT32 tx_mpdu_cnt; - A_UINT32 tx_ppdu_cnt; - A_UINT32 rx_msdu_cnt; - A_UINT32 rx_mpdu_cnt; - A_UINT32 bin_count; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wlan_profile_ctx_t */ + A_UINT32 tot; /* time in us */ + A_UINT32 tx_msdu_cnt; + A_UINT32 tx_mpdu_cnt; + A_UINT32 tx_ppdu_cnt; + A_UINT32 rx_msdu_cnt; + A_UINT32 rx_mpdu_cnt; + A_UINT32 bin_count; } wmi_wlan_profile_ctx_t; + typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wlan_profile_trigger_cmd_fixed_param */ - A_UINT32 enable; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wlan_profile_trigger_cmd_fixed_param */ + A_UINT32 enable; } wmi_wlan_profile_trigger_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wlan_profile_get_prof_data_cmd_fixed_param */ - A_UINT32 value; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wlan_profile_get_prof_data_cmd_fixed_param */ + A_UINT32 value; } wmi_wlan_profile_get_prof_data_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wlan_profile_set_hist_intvl_cmd_fixed_param */ - A_UINT32 profile_id; - A_UINT32 value; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wlan_profile_set_hist_intvl_cmd_fixed_param */ + A_UINT32 profile_id; + A_UINT32 value; } wmi_wlan_profile_set_hist_intvl_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wlan_profile_enable_profile_id_cmd_fixed_param */ - A_UINT32 profile_id; - A_UINT32 enable; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wlan_profile_enable_profile_id_cmd_fixed_param */ + A_UINT32 profile_id; + A_UINT32 enable; } wmi_wlan_profile_enable_profile_id_cmd_fixed_param; /*Wifi header is upto 26, LLC is 8, with 14 byte duplicate in 802.3 header, that's 26+8-14=20. - 146-128=18. So this means it is converted to non-QoS header. Riva FW take care of the QOS/non-QOS - when comparing wifi header.*/ + 146-128=18. So this means it is converted to non-QoS header. Riva FW take care of the QOS/non-QOS + when comparing wifi header.*/ /* NOTE: WOW_DEFAULT_BITMAP_PATTERN_SIZE(_DWORD) and WOW_DEFAULT_BITMASK_SIZE(_DWORD) can't be changed without breaking the compatibility */ #define WOW_DEFAULT_BITMAP_PATTERN_SIZE 146 -#define WOW_DEFAULT_BITMAP_PATTERN_SIZE_DWORD 37 /* Convert WOW_DEFAULT_EVT_BUF_SIZE into Int32 size */ +#define WOW_DEFAULT_BITMAP_PATTERN_SIZE_DWORD 37 /* Convert WOW_DEFAULT_EVT_BUF_SIZE into Int32 size */ #define WOW_DEFAULT_BITMASK_SIZE 146 #define WOW_DEFAULT_BITMASK_SIZE_DWORD 37 #define WOW_MAX_BITMAP_FILTERS 32 #define WOW_DEFAULT_MAGIG_PATTERN_MATCH_CNT 16 -#define WOW_EXTEND_PATTERN_MATCH_CNT 16 -#define WOW_SHORT_PATTERN_MATCH_CNT 8 -#define WOW_DEFAULT_EVT_BUF_SIZE 148 /* Maximum 148 bytes of the data is copied starting from header incase if the match is found. - The 148 comes from (128 - 14 ) payload size + 8bytes LLC + 26bytes MAC header */ +#define WOW_EXTEND_PATTERN_MATCH_CNT 16 +#define WOW_SHORT_PATTERN_MATCH_CNT 8 +#define WOW_DEFAULT_EVT_BUF_SIZE 148 /* Maximum 148 bytes of the data is copied starting from header incase if the match is found. + The 148 comes from (128 - 14) payload size + 8bytes LLC + 26bytes MAC header*/ #define WOW_DEFAULT_IOAC_PATTERN_SIZE 6 #define WOW_DEFAULT_IOAC_PATTERN_SIZE_DWORD 2 #define WOW_DEFAULT_IOAC_RANDOM_SIZE 6 #define WOW_DEFAULT_IOAC_RANDOM_SIZE_DWORD 2 #define WOW_DEFAULT_IOAC_KEEP_ALIVE_PKT_SIZE 120 #define WOW_DEFAULT_IOAC_KEEP_ALIVE_PKT_SIZE_DWORD 30 -#define WOW_DEFAULT_IOAC_SOCKET_PATTERN_SIZE 32 +#define WOW_DEFAULT_IOAC_SOCKET_PATTERN_SIZE 32 #define WOW_DEFAULT_IOAC_SOCKET_PATTERN_SIZE_DWORD 8 -#define WOW_DEFAULT_IOAC_KEEP_ALIVE_PKT_REV_SIZE 32 +#define WOW_DEFAULT_IOAC_KEEP_ALIVE_PKT_REV_SIZE 32 #define WOW_DEFAULT_IOAC_KEEP_ALIVE_PKT_REV_SIZE_DWORD 8 #define WOW_DEFAULT_IOAC_SOCKET_PATTERN_ACKNAK_SIZE 128 #define WOW_DEFAULT_IOAC_SOCKET_PATTERN_ACKNAK_SIZE_DWORD 32 typedef enum pattern_type_e { - WOW_PATTERN_MIN = 0, - WOW_BITMAP_PATTERN = WOW_PATTERN_MIN, - WOW_IPV4_SYNC_PATTERN, - WOW_IPV6_SYNC_PATTERN, - WOW_WILD_CARD_PATTERN, - WOW_TIMER_PATTERN, - WOW_MAGIC_PATTERN, - WOW_IPV6_RA_PATTERN, - WOW_IOAC_PKT_PATTERN, - WOW_IOAC_TMR_PATTERN, - WOW_IOAC_SOCK_PATTERN, - WOW_PATTERN_MAX + WOW_PATTERN_MIN = 0, + WOW_BITMAP_PATTERN = WOW_PATTERN_MIN, + WOW_IPV4_SYNC_PATTERN, + WOW_IPV6_SYNC_PATTERN, + WOW_WILD_CARD_PATTERN, + WOW_TIMER_PATTERN, + WOW_MAGIC_PATTERN, + WOW_IPV6_RA_PATTERN, + WOW_IOAC_PKT_PATTERN, + WOW_IOAC_TMR_PATTERN, + WOW_IOAC_SOCK_PATTERN, + WOW_PATTERN_MAX } WOW_PATTERN_TYPE; typedef enum event_type_e { - WOW_BMISS_EVENT = 0, - WOW_BETTER_AP_EVENT, - WOW_DEAUTH_RECVD_EVENT, - WOW_MAGIC_PKT_RECVD_EVENT, - WOW_GTK_ERR_EVENT, - WOW_FOURWAY_HSHAKE_EVENT, - WOW_EAPOL_RECVD_EVENT, - WOW_NLO_DETECTED_EVENT, - WOW_DISASSOC_RECVD_EVENT, - WOW_PATTERN_MATCH_EVENT, - WOW_CSA_IE_EVENT, - WOW_PROBE_REQ_WPS_IE_EVENT, - WOW_AUTH_REQ_EVENT, - WOW_ASSOC_REQ_EVENT, - WOW_HTT_EVENT, - WOW_RA_MATCH_EVENT, - WOW_HOST_AUTO_SHUTDOWN_EVENT, - WOW_IOAC_MAGIC_EVENT, - WOW_IOAC_SHORT_EVENT, - WOW_IOAC_EXTEND_EVENT, - WOW_IOAC_TIMER_EVENT, - WOW_DFS_PHYERR_RADAR_EVENT, - WOW_BEACON_EVENT, - WOW_CLIENT_KICKOUT_EVENT, - WOW_NAN_EVENT, - WOW_EXTSCAN_EVENT, - WOW_IOAC_REV_KA_FAIL_EVENT, - WOW_IOAC_SOCK_EVENT, - WOW_NLO_SCAN_COMPLETE_EVENT, - WOW_NAN_DATA_EVENT, - WOW_NAN_RTT_EVENT, /* DEPRECATED, UNUSED */ - /* reuse deprecated event value */ - WOW_OEM_RESPONSE_EVENT = WOW_NAN_RTT_EVENT, - WOW_TDLS_CONN_TRACKER_EVENT, - WOW_CRITICAL_LOG_EVENT, + WOW_BMISS_EVENT = 0, + WOW_BETTER_AP_EVENT, + WOW_DEAUTH_RECVD_EVENT, + WOW_MAGIC_PKT_RECVD_EVENT, + WOW_GTK_ERR_EVENT, + WOW_FOURWAY_HSHAKE_EVENT, + WOW_EAPOL_RECVD_EVENT, + WOW_NLO_DETECTED_EVENT, + WOW_DISASSOC_RECVD_EVENT, + WOW_PATTERN_MATCH_EVENT, + WOW_CSA_IE_EVENT, + WOW_PROBE_REQ_WPS_IE_EVENT, + WOW_AUTH_REQ_EVENT, + WOW_ASSOC_REQ_EVENT, + WOW_HTT_EVENT, + WOW_RA_MATCH_EVENT, + WOW_HOST_AUTO_SHUTDOWN_EVENT, + WOW_IOAC_MAGIC_EVENT, + WOW_IOAC_SHORT_EVENT, + WOW_IOAC_EXTEND_EVENT, + WOW_IOAC_TIMER_EVENT, + WOW_DFS_PHYERR_RADAR_EVENT, + WOW_BEACON_EVENT, + WOW_CLIENT_KICKOUT_EVENT, + WOW_NAN_EVENT, + WOW_EXTSCAN_EVENT, + WOW_IOAC_REV_KA_FAIL_EVENT, + WOW_IOAC_SOCK_EVENT, + WOW_NLO_SCAN_COMPLETE_EVENT, + WOW_NAN_DATA_EVENT, + WOW_NAN_RTT_EVENT, /* DEPRECATED, UNUSED */ + WOW_OEM_RESPONSE_EVENT = WOW_NAN_RTT_EVENT, /* reuse deprecated event value */ + WOW_TDLS_CONN_TRACKER_EVENT, + WOW_CRITICAL_LOG_EVENT, } WOW_WAKE_EVENT_TYPE; typedef enum wake_reason_e { - WOW_REASON_UNSPECIFIED = -1, - WOW_REASON_NLOD = 0, - WOW_REASON_AP_ASSOC_LOST, - WOW_REASON_LOW_RSSI, - WOW_REASON_DEAUTH_RECVD, - WOW_REASON_DISASSOC_RECVD, - WOW_REASON_GTK_HS_ERR, - WOW_REASON_EAP_REQ, - WOW_REASON_FOURWAY_HS_RECV, - WOW_REASON_TIMER_INTR_RECV, - WOW_REASON_PATTERN_MATCH_FOUND, - WOW_REASON_RECV_MAGIC_PATTERN, - WOW_REASON_P2P_DISC, - WOW_REASON_WLAN_HB, - WOW_REASON_CSA_EVENT, - WOW_REASON_PROBE_REQ_WPS_IE_RECV, - WOW_REASON_AUTH_REQ_RECV, - WOW_REASON_ASSOC_REQ_RECV, - WOW_REASON_HTT_EVENT, - WOW_REASON_RA_MATCH, - WOW_REASON_HOST_AUTO_SHUTDOWN, - WOW_REASON_IOAC_MAGIC_EVENT, - WOW_REASON_IOAC_SHORT_EVENT, - WOW_REASON_IOAC_EXTEND_EVENT, - WOW_REASON_IOAC_TIMER_EVENT, - WOW_REASON_ROAM_HO, - WOW_REASON_DFS_PHYERR_RADADR_EVENT, - WOW_REASON_BEACON_RECV, - WOW_REASON_CLIENT_KICKOUT_EVENT, - WOW_REASON_NAN_EVENT, - WOW_REASON_EXTSCAN, - WOW_REASON_RSSI_BREACH_EVENT, - WOW_REASON_IOAC_REV_KA_FAIL_EVENT, - WOW_REASON_IOAC_SOCK_EVENT, - WOW_REASON_NLO_SCAN_COMPLETE, - WOW_REASON_PACKET_FILTER_MATCH, - WOW_REASON_ASSOC_RES_RECV, - WOW_REASON_REASSOC_REQ_RECV, - WOW_REASON_REASSOC_RES_RECV, - WOW_REASON_ACTION_FRAME_RECV, - WOW_REASON_BPF_ALLOW, - WOW_REASON_NAN_DATA, - WOW_REASON_NAN_RTT, /* DEPRECATED, UNUSED */ - /* reuse deprecated reason value */ - WOW_REASON_OEM_RESPONSE_EVENT = WOW_REASON_NAN_RTT, - WOW_REASON_TDLS_CONN_TRACKER_EVENT, - WOW_REASON_CRITICAL_LOG, - WOW_REASON_P2P_LISTEN_OFFLOAD, - WOW_REASON_NAN_EVENT_WAKE_HOST, - WOW_REASON_DEBUG_TEST = 0xFF, + WOW_REASON_UNSPECIFIED = -1, + WOW_REASON_NLOD = 0, + WOW_REASON_AP_ASSOC_LOST, + WOW_REASON_LOW_RSSI, + WOW_REASON_DEAUTH_RECVD, + WOW_REASON_DISASSOC_RECVD, + WOW_REASON_GTK_HS_ERR, + WOW_REASON_EAP_REQ, + WOW_REASON_FOURWAY_HS_RECV, + WOW_REASON_TIMER_INTR_RECV, + WOW_REASON_PATTERN_MATCH_FOUND, + WOW_REASON_RECV_MAGIC_PATTERN, + WOW_REASON_P2P_DISC, + WOW_REASON_WLAN_HB, + WOW_REASON_CSA_EVENT, + WOW_REASON_PROBE_REQ_WPS_IE_RECV, + WOW_REASON_AUTH_REQ_RECV, + WOW_REASON_ASSOC_REQ_RECV, + WOW_REASON_HTT_EVENT, + WOW_REASON_RA_MATCH, + WOW_REASON_HOST_AUTO_SHUTDOWN, + WOW_REASON_IOAC_MAGIC_EVENT, + WOW_REASON_IOAC_SHORT_EVENT, + WOW_REASON_IOAC_EXTEND_EVENT, + WOW_REASON_IOAC_TIMER_EVENT, + WOW_REASON_ROAM_HO, + WOW_REASON_DFS_PHYERR_RADADR_EVENT, + WOW_REASON_BEACON_RECV, + WOW_REASON_CLIENT_KICKOUT_EVENT, + WOW_REASON_NAN_EVENT, + WOW_REASON_EXTSCAN, + WOW_REASON_RSSI_BREACH_EVENT, + WOW_REASON_IOAC_REV_KA_FAIL_EVENT, + WOW_REASON_IOAC_SOCK_EVENT, + WOW_REASON_NLO_SCAN_COMPLETE, + WOW_REASON_PACKET_FILTER_MATCH, + WOW_REASON_ASSOC_RES_RECV, + WOW_REASON_REASSOC_REQ_RECV, + WOW_REASON_REASSOC_RES_RECV, + WOW_REASON_ACTION_FRAME_RECV, + WOW_REASON_BPF_ALLOW, + WOW_REASON_NAN_DATA, + WOW_REASON_NAN_RTT, /* DEPRECATED, UNUSED */ + WOW_REASON_OEM_RESPONSE_EVENT = WOW_REASON_NAN_RTT, /* reuse deprecated reason value */ + WOW_REASON_TDLS_CONN_TRACKER_EVENT, + WOW_REASON_CRITICAL_LOG, + WOW_REASON_P2P_LISTEN_OFFLOAD, + WOW_REASON_NAN_EVENT_WAKE_HOST, + WOW_REASON_DEBUG_TEST = 0xFF, } WOW_WAKE_REASON_TYPE; + typedef enum { - WOW_IFACE_PAUSE_ENABLED, - WOW_IFACE_PAUSE_DISABLED + WOW_IFACE_PAUSE_ENABLED, + WOW_IFACE_PAUSE_DISABLED } WOW_IFACE_STATUS; enum { - /* some win10 platfrom will not assert pcie_reset for wow.*/ - WMI_WOW_FLAG_IGNORE_PCIE_RESET = 0x00000001, - /* - * WMI_WOW_FLAG_SEND_PM_PME - * Some platforms have issues if the PM_PME message is sent after WoW, - * so don't send PM_PME after WoW unless the host uses this flag - * to request it. - */ - WMI_WOW_FLAG_SEND_PM_PME = 0x00000002, - /* Flag to indicate unit test */ - WMI_WOW_FLAG_UNIT_TEST_ENABLE = 0x00000004, - /* Force HTC wakeup */ - WMI_WOW_FLAG_DO_HTC_WAKEUP = 0x00000008, + WMI_WOW_FLAG_IGNORE_PCIE_RESET = 0x00000001, /* some win10 platfrom will not assert pcie_reset for wow.*/ + /* WMI_WOW_FLAG_SEND_PM_PME + * Some platforms have issues if the PM_PME message is sent after WoW, + * so don't send PM_PME after WoW unless the host uses this flag + * to request it. + */ + WMI_WOW_FLAG_SEND_PM_PME = 0x00000002, + /* Flag to indicate unit test */ + WMI_WOW_FLAG_UNIT_TEST_ENABLE = 0x00000004, + /* Force HTC wakeup */ + WMI_WOW_FLAG_DO_HTC_WAKEUP = 0x00000008, }; - typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wow_enable_cmd_fixed_param */ - A_UINT32 enable; - A_UINT32 pause_iface_config; - A_UINT32 flags; /* WMI_WOW_FLAG enums */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wow_enable_cmd_fixed_param */ + A_UINT32 enable; + A_UINT32 pause_iface_config; + A_UINT32 flags; /* WMI_WOW_FLAG enums */ } wmi_wow_enable_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wow_hostwakeup_from_sleep_cmd_fixed_param */ - /** Reserved for future use */ - A_UINT32 reserved0; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wow_hostwakeup_from_sleep_cmd_fixed_param */ + /** Reserved for future use */ + A_UINT32 reserved0; } wmi_wow_hostwakeup_from_sleep_cmd_fixed_param; #define WOW_ICMPV6_NA_FILTER_DISABLE 0 #define WOW_ICMPV6_NA_FILTER_ENABLE 1 typedef struct { - /* TLV tag and len; - * tag equals WMITLV_TAG_STRUC_wmi_wow_enable_icmpv6_na_flt_cmd_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 enable; /* WOW_ICMPV6_NA_FILTER_ENABLE/DISABLE */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wow_enable_icmpv6_na_flt_cmd_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 enable; /* WOW_ICMPV6_NA_FILTER_ENABLE/DISABLE */ } wmi_wow_enable_icmpv6_na_flt_cmd_fixed_param; typedef struct bitmap_pattern_s { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WOW_BITMAP_PATTERN_T */ - A_UINT32 patternbuf[WOW_DEFAULT_BITMAP_PATTERN_SIZE_DWORD]; - A_UINT32 bitmaskbuf[WOW_DEFAULT_BITMASK_SIZE_DWORD]; - A_UINT32 pattern_offset; - A_UINT32 pattern_len; - A_UINT32 bitmask_len; - A_UINT32 pattern_id; /* must be less than max_bitmap_filters */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WOW_BITMAP_PATTERN_T */ + A_UINT32 patternbuf[WOW_DEFAULT_BITMAP_PATTERN_SIZE_DWORD]; + A_UINT32 bitmaskbuf[WOW_DEFAULT_BITMASK_SIZE_DWORD]; + A_UINT32 pattern_offset; + A_UINT32 pattern_len; + A_UINT32 bitmask_len; + A_UINT32 pattern_id; /* must be less than max_bitmap_filters */ } WOW_BITMAP_PATTERN_T; typedef struct ipv4_sync_s { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WOW_IPV4_SYNC_PATTERN_T */ - A_UINT32 ipv4_src_addr; - A_UINT32 ipv4_dst_addr; - A_UINT32 tcp_src_prt; - A_UINT32 tcp_dst_prt; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WOW_IPV4_SYNC_PATTERN_T */ + A_UINT32 ipv4_src_addr; + A_UINT32 ipv4_dst_addr; + A_UINT32 tcp_src_prt; + A_UINT32 tcp_dst_prt; } WOW_IPV4_SYNC_PATTERN_T; typedef struct ipv6_sync_s { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WOW_IPV6_SYNC_PATTERN_T */ - A_UINT32 ipv6_src_addr[4]; - A_UINT32 ipv6_dst_addr[4]; - A_UINT32 tcp_src_prt; - A_UINT32 tcp_dst_prt; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WOW_IPV6_SYNC_PATTERN_T */ + A_UINT32 ipv6_src_addr[4]; + A_UINT32 ipv6_dst_addr[4]; + A_UINT32 tcp_src_prt; + A_UINT32 tcp_dst_prt; } WOW_IPV6_SYNC_PATTERN_T; -typedef struct WOW_MAGIC_PATTERN_CMD { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WOW_MAGIC_PATTERN_CMD */ - wmi_mac_addr macaddr; +typedef struct WOW_MAGIC_PATTERN_CMD +{ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WOW_MAGIC_PATTERN_CMD */ + wmi_mac_addr macaddr; } WOW_MAGIC_PATTERN_CMD; typedef enum wow_ioac_pattern_type { - WOW_IOAC_MAGIC_PATTERN = 1, - WOW_IOAC_SHORT_PATTERN, - WOW_IOAC_EXTEND_PATTERN, + WOW_IOAC_MAGIC_PATTERN = 1, + WOW_IOAC_SHORT_PATTERN, + WOW_IOAC_EXTEND_PATTERN, } WOW_IOAC_PATTERN_TYPE; typedef struct ioac_sock_pattern_s { - /** - * TLV tag and len; - * tag equals WMITLV_TAG_STRUC_WOW_IOAC_SOCK_PATTERN_T - */ - A_UINT32 tlv_header; - A_UINT32 id; - A_UINT32 local_ipv4; - A_UINT32 remote_ipv4; - A_UINT32 local_port; - A_UINT32 remote_port; - A_UINT32 pattern_len; /* units = bytes */ - A_UINT32 pattern[WOW_DEFAULT_IOAC_SOCKET_PATTERN_SIZE_DWORD]; - WMI_IPV6_ADDR local_ipv6; - WMI_IPV6_ADDR remote_ipv6; - A_UINT32 ack_nak_len; - A_UINT32 ackpkt[WOW_DEFAULT_IOAC_SOCKET_PATTERN_ACKNAK_SIZE_DWORD]; - A_UINT32 nakpkt[WOW_DEFAULT_IOAC_SOCKET_PATTERN_ACKNAK_SIZE_DWORD]; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WOW_IOAC_SOCK_PATTERN_T */ + A_UINT32 id; + A_UINT32 local_ipv4; + A_UINT32 remote_ipv4; + A_UINT32 local_port; + A_UINT32 remote_port; + A_UINT32 pattern_len; /* units = bytes */ + A_UINT32 pattern[WOW_DEFAULT_IOAC_SOCKET_PATTERN_SIZE_DWORD]; + WMI_IPV6_ADDR local_ipv6; + WMI_IPV6_ADDR remote_ipv6; + A_UINT32 ack_nak_len; + A_UINT32 ackpkt[WOW_DEFAULT_IOAC_SOCKET_PATTERN_ACKNAK_SIZE_DWORD]; + A_UINT32 nakpkt[WOW_DEFAULT_IOAC_SOCKET_PATTERN_ACKNAK_SIZE_DWORD]; } WOW_IOAC_SOCK_PATTERN_T; typedef struct ioac_pkt_pattern_s { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WOW_IOAC_PKT_PATTERN_T */ - A_UINT32 pattern_type; - A_UINT32 pattern[WOW_DEFAULT_IOAC_PATTERN_SIZE_DWORD]; - A_UINT32 random[WOW_DEFAULT_IOAC_RANDOM_SIZE_DWORD]; - A_UINT32 pattern_len; - A_UINT32 random_len; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WOW_IOAC_PKT_PATTERN_T */ + A_UINT32 pattern_type; + A_UINT32 pattern[WOW_DEFAULT_IOAC_PATTERN_SIZE_DWORD]; + A_UINT32 random[WOW_DEFAULT_IOAC_RANDOM_SIZE_DWORD]; + A_UINT32 pattern_len; + A_UINT32 random_len; } WOW_IOAC_PKT_PATTERN_T; typedef struct ioac_tmr_pattern_s { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WOW_IOAC_TMR_PATTERN_T */ - A_UINT32 wake_in_s; - A_UINT32 vdev_id; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WOW_IOAC_TMR_PATTERN_T */ + A_UINT32 wake_in_s; + A_UINT32 vdev_id; } WOW_IOAC_TMR_PATTERN_T; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_IOAC_ADD_KEEPALIVE_CMD_fixed_param */ - A_UINT32 nID; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_IOAC_ADD_KEEPALIVE_CMD_fixed_param */ + A_UINT32 nID; } WMI_WOW_IOAC_ADD_KEEPALIVE_CMD_fixed_param; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_IOAC_DEL_KEEPALIVE_CMD_fixed_param */ - A_UINT32 nID; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_IOAC_DEL_KEEPALIVE_CMD_fixed_param */ + A_UINT32 nID; } WMI_WOW_IOAC_DEL_KEEPALIVE_CMD_fixed_param; typedef struct ioac_keepalive_s { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_IOAC_KEEPALIVE_T */ - A_UINT32 - keepalive_pkt_buf - [WOW_DEFAULT_IOAC_KEEP_ALIVE_PKT_SIZE_DWORD]; - A_UINT32 keepalive_pkt_len; - A_UINT32 period_in_ms; - A_UINT32 vdev_id; - A_UINT32 max_loss_cnt; - A_UINT32 local_ipv4; - A_UINT32 remote_ipv4; - A_UINT32 local_port; - A_UINT32 remote_port; - A_UINT32 recv_period_in_ms; - A_UINT32 rev_ka_size; - A_UINT32 rev_ka_data[WOW_DEFAULT_IOAC_KEEP_ALIVE_PKT_REV_SIZE_DWORD]; - WMI_IPV6_ADDR local_ipv6; - WMI_IPV6_ADDR remote_ipv6; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_IOAC_KEEPALIVE_T */ + A_UINT32 keepalive_pkt_buf[WOW_DEFAULT_IOAC_KEEP_ALIVE_PKT_SIZE_DWORD]; + A_UINT32 keepalive_pkt_len; + A_UINT32 period_in_ms; + A_UINT32 vdev_id; + A_UINT32 max_loss_cnt; + A_UINT32 local_ipv4; + A_UINT32 remote_ipv4; + A_UINT32 local_port; + A_UINT32 remote_port; + A_UINT32 recv_period_in_ms; + A_UINT32 rev_ka_size; + A_UINT32 rev_ka_data[WOW_DEFAULT_IOAC_KEEP_ALIVE_PKT_REV_SIZE_DWORD]; + WMI_IPV6_ADDR local_ipv6; + WMI_IPV6_ADDR remote_ipv6; } WMI_WOW_IOAC_KEEPALIVE_T; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_IOAC_ADD_PATTERN_CMD_fixed_param */ - A_UINT32 vdev_id; - A_UINT32 pattern_type; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_IOAC_ADD_PATTERN_CMD_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 pattern_type; /* * Following this struct are these TLVs. Note that they are all array of structures * but can have at most one element. Which TLV is empty or has one element depends @@ -9658,48 +9235,47 @@ typedef struct { } WMI_WOW_IOAC_ADD_PATTERN_CMD_fixed_param; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_IOAC_DEL_PATTERN_CMD_fixed_param */ - A_UINT32 vdev_id; - A_UINT32 pattern_type; - A_UINT32 pattern_id; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_IOAC_DEL_PATTERN_CMD_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 pattern_type; + A_UINT32 pattern_id; } WMI_WOW_IOAC_DEL_PATTERN_CMD_fixed_param; typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_ADD_PATTERN_CMD_fixed_param */ - A_UINT32 vdev_id; - A_UINT32 pattern_id; - A_UINT32 pattern_type; - /* - * Following this struct are these TLVs. Note that they are all array of structures - * but can have at most one element. Which TLV is empty or has one element depends - * on the field pattern_type. This is to emulate an union. - * WOW_BITMAP_PATTERN_T pattern_info_bitmap[]; - * WOW_IPV4_SYNC_PATTERN_T pattern_info_ipv4[]; - * WOW_IPV6_SYNC_PATTERN_T pattern_info_ipv6[]; - * WOW_MAGIC_PATTERN_CMD pattern_info_magic_pattern[]; - * A_UINT32 pattern_info_timeout[]; - * A_UINT32 ra_ratelimit_interval; - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_ADD_PATTERN_CMD_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 pattern_id; + A_UINT32 pattern_type; +/* + * Following this struct are these TLVs. Note that they are all array of structures + * but can have at most one element. Which TLV is empty or has one element depends + * on the field pattern_type. This is to emulate an union. + * WOW_BITMAP_PATTERN_T pattern_info_bitmap[]; + * WOW_IPV4_SYNC_PATTERN_T pattern_info_ipv4[]; + * WOW_IPV6_SYNC_PATTERN_T pattern_info_ipv6[]; + * WOW_MAGIC_PATTERN_CMD pattern_info_magic_pattern[]; + * A_UINT32 pattern_info_timeout[]; + * A_UINT32 ra_ratelimit_interval; + */ } WMI_WOW_ADD_PATTERN_CMD_fixed_param; typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_DEL_PATTERN_CMD_fixed_param */ - A_UINT32 vdev_id; - A_UINT32 pattern_id; - A_UINT32 pattern_type; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_DEL_PATTERN_CMD_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 pattern_id; + A_UINT32 pattern_type; } WMI_WOW_DEL_PATTERN_CMD_fixed_param; #define WMI_WOW_MAX_EVENT_BM_LEN 4 typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_ADD_DEL_EVT_CMD_fixed_param */ - A_UINT32 vdev_id; - A_UINT32 is_add; - union { - A_UINT32 event_bitmap; - A_UINT32 event_bitmaps[WMI_WOW_MAX_EVENT_BM_LEN]; - }; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_ADD_DEL_EVT_CMD_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 is_add; + union { + A_UINT32 event_bitmap; + A_UINT32 event_bitmaps[WMI_WOW_MAX_EVENT_BM_LEN]; + }; } WMI_WOW_ADD_DEL_EVT_CMD_fixed_param; /* @@ -9708,120 +9284,84 @@ typedef struct { * AP to the entity in the IP network that sent the UDP packet to this STA. */ typedef struct { - /* - * TLV tag and len; - * tag equals WMITLV_TAG_STRUC_WMI_WOW_UDP_SVC_OFLD_CMD_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 enable; /* 1: enable, 0: disable */ - /* - * dest_port - - * bits 7:0 contain the LSB of the UDP dest port, - * bits 15:8 contain the MSB of the UDP dest port - */ - A_UINT32 dest_port; - A_UINT32 pattern_len; /* length in byte of pattern[] */ - A_UINT32 response_len; /* length in byte of response[] */ - /* - * Following this struct are the TLV's: - * payload of UDP packet to be checked, network byte order - * A_UINT8 pattern[]; - * payload of UDP packet to be response, network byte order - * A_UINT8 response[]; - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_UDP_SVC_OFLD_CMD_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 enable; /* 1: enable, 0: disable*/ + /* dest_port - + * bits 7:0 contain the LSB of the UDP dest port, + * bits 15:8 contain the MSB of the UDP dest port + */ + A_UINT32 dest_port; + A_UINT32 pattern_len; /* length in byte of pattern[] */ + A_UINT32 response_len; /* length in byte of response[] */ +/* Following this struct are the TLV's: + * A_UINT8 pattern[]; <-- payload of UDP packet to be checked, network byte order + * A_UINT8 response[]; <-- payload of UDP packet to be response, network byte order + */ } WMI_WOW_UDP_SVC_OFLD_CMD_fixed_param; /* - * This structure is used to set the pattern for WOW host wakeup pin pulse - * pattern confirguration. + * This structure is used to set the pattern for WOW host wakeup pin pulse pattern confirguration. */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_WMI_WOW_HOSTWAKEUP_PIN_PATTERN_CONFIG_CMD_fixed_param - */ - A_UINT32 tlv_header; - - /* 1: enable, 0: disable */ - A_UINT32 enable; - - /* pin for host wakeup */ - A_UINT32 pin; - - /* interval for keeping low voltage, unit: ms */ - A_UINT32 interval_low; - - /* interval for keeping high voltage, unit: ms */ - A_UINT32 interval_high; - - /* repeat times for pulse (0xffffffff means forever) */ - A_UINT32 repeat_cnt; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_HOSTWAKEUP_PIN_PATTERN_CONFIG_CMD_fixed_param */ + A_UINT32 enable; /* 1: enable, 0: disable */ + A_UINT32 pin; /* pin for host wakeup */ + A_UINT32 interval_low; /* interval for keeping low voltage, unit: ms */ + A_UINT32 interval_high; /* interval for keeping high voltage, unit: ms */ + A_UINT32 repeat_cnt; /* repeat times for pulse (0xffffffff means forever) */ } WMI_WOW_HOSTWAKEUP_GPIO_PIN_PATTERN_CONFIG_CMD_fixed_param; #define MAX_SUPPORTED_ACTION_CATEGORY 256 #define MAX_SUPPORTED_ACTION_CATEGORY_ELE_LIST (MAX_SUPPORTED_ACTION_CATEGORY/32) typedef enum { - WOW_ACTION_WAKEUP_OPERATION_RESET = 0, - WOW_ACTION_WAKEUP_OPERATION_SET, - WOW_ACTION_WAKEUP_OPERATION_ADD_SET, - WOW_ACTION_WAKEUP_OPERATION_DELETE_SET, + WOW_ACTION_WAKEUP_OPERATION_RESET = 0, + WOW_ACTION_WAKEUP_OPERATION_SET, + WOW_ACTION_WAKEUP_OPERATION_ADD_SET, + WOW_ACTION_WAKEUP_OPERATION_DELETE_SET, } WOW_ACTION_WAKEUP_OPERATION; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_WMI_WOW_SET_ACTION_WAKE_UP_CMD_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; - /* - * 0 reset to fw default, 1 set the bits, 2 add the setting bits, - * 3 delete the setting bits - */ - A_UINT32 operation; - A_UINT32 action_category_map[MAX_SUPPORTED_ACTION_CATEGORY_ELE_LIST]; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_WOW_SET_ACTION_WAKE_UP_CMD_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 operation; /* 0 reset to fw default, 1 set the bits, 2 add the setting bits, 3 delete the setting bits */ + A_UINT32 action_category_map[MAX_SUPPORTED_ACTION_CATEGORY_ELE_LIST]; } WMI_WOW_SET_ACTION_WAKE_UP_CMD_fixed_param; - typedef struct wow_event_info_s { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WOW_EVENT_INFO_fixed_param */ - A_UINT32 vdev_id; - A_UINT32 flag; /*This is current reserved. */ - A_INT32 wake_reason; - A_UINT32 data_len; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WOW_EVENT_INFO_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 flag; /*This is current reserved.*/ + A_INT32 wake_reason; + A_UINT32 data_len; } WOW_EVENT_INFO_fixed_param; typedef struct wow_initial_wakeup_event_s { - /* - * TLV tag and len; tag equals - * WOW_INITIAL_WAKEUP_EVENT_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WOW_INITIAL_WAKEUP_EVENT_fixed_param */ + A_UINT32 vdev_id; } WOW_INITIAL_WAKEUP_EVENT_fixed_param; typedef enum { - WOW_EVENT_INFO_TYPE_PACKET = 0x0001, - WOW_EVENT_INFO_TYPE_BITMAP, - WOW_EVENT_INFO_TYPE_GTKIGTK, + WOW_EVENT_INFO_TYPE_PACKET = 0x0001, + WOW_EVENT_INFO_TYPE_BITMAP, + WOW_EVENT_INFO_TYPE_GTKIGTK, } WOW_EVENT_INFO_TYPE; typedef struct wow_event_info_section_s { - A_UINT32 data_type; - A_UINT32 data_len; + A_UINT32 data_type; + A_UINT32 data_len; } WOW_EVENT_INFO_SECTION; typedef struct wow_event_info_section_packet_s { - A_UINT8 packet[WOW_DEFAULT_EVT_BUF_SIZE]; + A_UINT8 packet[WOW_DEFAULT_EVT_BUF_SIZE]; } WOW_EVENT_INFO_SECTION_PACKET; typedef struct wow_event_info_section_bitmap_s { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WOW_EVENT_INFO_SECTION_BITMAP */ - A_UINT32 flag; /*This is current reserved. */ - A_UINT32 value; /*This could be the pattern id for bitmap pattern. */ - A_UINT32 org_len; /*The length of the orginal packet. */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WOW_EVENT_INFO_SECTION_BITMAP */ + A_UINT32 flag; /*This is current reserved.*/ + A_UINT32 value; /*This could be the pattern id for bitmap pattern.*/ + A_UINT32 org_len; /*The length of the orginal packet.*/ } WOW_EVENT_INFO_SECTION_BITMAP; /** @@ -9846,175 +9386,173 @@ typedef struct wow_event_info_section_bitmap_s { * */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_d0_wow_enable_disable_cmd_fixed_param */ - A_UINT32 enable; /* 1 = enable, 0 = disable */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_d0_wow_enable_disable_cmd_fixed_param */ + A_UINT32 enable; /* 1 = enable, 0 = disable */ } wmi_d0_wow_enable_disable_cmd_fixed_param; + typedef enum extend_wow_type_e { - EXTWOW_TYPE_APP_TYPE1, /* extend wow type: only enable wakeup for app type1 */ - EXTWOW_TYPE_APP_TYPE2, /* extend wow type: only enable wakeup for app type2 */ - EXTWOW_TYPE_APP_TYPE1_2, /* extend wow type: enable wakeup for app type1&2 */ - EXTWOW_TYPE_APP_PULSETEST, - EXTWOW_DISABLED = 255, + EXTWOW_TYPE_APP_TYPE1, /* extend wow type: only enable wakeup for app type1 */ + EXTWOW_TYPE_APP_TYPE2, /* extend wow type: only enable wakeup for app type2 */ + EXTWOW_TYPE_APP_TYPE1_2, /* extend wow type: enable wakeup for app type1&2 */ + EXTWOW_TYPE_APP_PULSETEST, + EXTWOW_DISABLED = 255, } EXTWOW_TYPE; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals wmi_extwow_enable_cmd_fixed_param */ - A_UINT32 vdev_id; - A_UINT32 type; - A_UINT32 wakeup_pin_num; - A_UINT32 swol_pulsetest_type; - A_UINT32 swol_pulsetest_application; + A_UINT32 tlv_header; /* TLV tag and len; tag equals wmi_extwow_enable_cmd_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 type; + A_UINT32 wakeup_pin_num; + A_UINT32 swol_pulsetest_type; + A_UINT32 swol_pulsetest_application; } wmi_extwow_enable_cmd_fixed_param; #define SWOL_INDOOR_MAC_ADDRESS_INDEX_MAX 8 #define SWOL_INDOOR_KEY_LEN 16 typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals wmi_extwow_set_app_type1_params_cmd_fixed_param */ - A_UINT32 vdev_id; - wmi_mac_addr wakee_mac; - A_UINT8 ident[8]; - A_UINT8 passwd[16]; - A_UINT32 ident_len; - A_UINT32 passwd_len; + A_UINT32 tlv_header; /* TLV tag and len; tag equals wmi_extwow_set_app_type1_params_cmd_fixed_param */ + A_UINT32 vdev_id; + wmi_mac_addr wakee_mac; + A_UINT8 ident[8]; + A_UINT8 passwd[16]; + A_UINT32 ident_len; + A_UINT32 passwd_len; - /* indoor check parameters */ - /* key for mac addresses specified in swol_indoor_key_mac - * Big-endian hosts need to byte-swap the bytes within each 4-byte - * segment of this array, so the bytes will return to their original - * order when the entire WMI message contents are byte-swapped to - * convert from big-endian to little-endian format. - */ - A_UINT8 swol_indoor_key[SWOL_INDOOR_MAC_ADDRESS_INDEX_MAX][SWOL_INDOOR_KEY_LEN]; - /* key length for specified mac address index - * Big-endian hosts need to byte-swap the bytes within each 4-byte - * segment of this array, so the bytes will return to their original - * order when the entire WMI message contents are byte-swapped to - * convert from big-endian to little-endian format. - */ - A_UINT8 swol_indoor_key_len[SWOL_INDOOR_MAC_ADDRESS_INDEX_MAX]; - /* mac address array allowed to wakeup host*/ - wmi_mac_addr swol_indoor_key_mac[SWOL_INDOOR_MAC_ADDRESS_INDEX_MAX]; - /* app mask for the mac addresses specified in swol_indoor_key_mac */ - A_UINT32 swol_indoor_app_mask[SWOL_INDOOR_MAC_ADDRESS_INDEX_MAX]; - A_UINT32 swol_indoor_waker_check; /* whether to do indoor waker check */ - A_UINT32 swol_indoor_pw_check; /* whether to check password */ - A_UINT32 swol_indoor_pattern; /* wakeup pattern */ - A_UINT32 swol_indoor_exception; /* wakeup when exception happens */ - A_UINT32 swol_indoor_exception_app; - A_UINT32 swol_assist_enable; /* whether to enable IoT mode */ + /* indoor check parameters */ + /* key for mac addresses specified in swol_indoor_key_mac + * Big-endian hosts need to byte-swap the bytes within each 4-byte + * segment of this array, so the bytes will return to their original + * order when the entire WMI message contents are byte-swapped to + * convert from big-endian to little-endian format. + */ + A_UINT8 swol_indoor_key[SWOL_INDOOR_MAC_ADDRESS_INDEX_MAX][SWOL_INDOOR_KEY_LEN]; + /* key length for specified mac address index + * Big-endian hosts need to byte-swap the bytes within each 4-byte + * segment of this array, so the bytes will return to their original + * order when the entire WMI message contents are byte-swapped to + * convert from big-endian to little-endian format. + */ + A_UINT8 swol_indoor_key_len[SWOL_INDOOR_MAC_ADDRESS_INDEX_MAX]; + /* mac address array allowed to wakeup host*/ + wmi_mac_addr swol_indoor_key_mac[SWOL_INDOOR_MAC_ADDRESS_INDEX_MAX]; + /* app mask for the mac addresses specified in swol_indoor_key_mac */ + A_UINT32 swol_indoor_app_mask[SWOL_INDOOR_MAC_ADDRESS_INDEX_MAX]; + A_UINT32 swol_indoor_waker_check; /* whether to do indoor waker check */ + A_UINT32 swol_indoor_pw_check; /* whether to check password */ + A_UINT32 swol_indoor_pattern; /* wakeup pattern */ + A_UINT32 swol_indoor_exception; /* wakeup when exception happens */ + A_UINT32 swol_indoor_exception_app; + A_UINT32 swol_assist_enable; /* whether to enable IoT mode */ } wmi_extwow_set_app_type1_params_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals wmi_extwow_set_app_type2_params_cmd_fixed_param */ - A_UINT32 vdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals wmi_extwow_set_app_type2_params_cmd_fixed_param */ + A_UINT32 vdev_id; - A_UINT8 rc4_key[16]; - A_UINT32 rc4_key_len; + A_UINT8 rc4_key[16]; + A_UINT32 rc4_key_len; - /** ip header parameter */ - A_UINT32 ip_id; /* NC id */ - A_UINT32 ip_device_ip; /* NC IP address */ - A_UINT32 ip_server_ip; /* Push server IP address */ + /** ip header parameter */ + A_UINT32 ip_id; /* NC id */ + A_UINT32 ip_device_ip; /* NC IP address */ + A_UINT32 ip_server_ip; /* Push server IP address */ - /** tcp header parameter */ - A_UINT16 tcp_src_port; /* NC TCP port */ - A_UINT16 tcp_dst_port; /* Push server TCP port */ - A_UINT32 tcp_seq; - A_UINT32 tcp_ack_seq; + /** tcp header parameter */ + A_UINT16 tcp_src_port; /* NC TCP port */ + A_UINT16 tcp_dst_port; /* Push server TCP port */ + A_UINT32 tcp_seq; + A_UINT32 tcp_ack_seq; - A_UINT32 keepalive_init; /* Initial ping interval */ - A_UINT32 keepalive_min; /* Minimum ping interval */ - A_UINT32 keepalive_max; /* Maximum ping interval */ - A_UINT32 keepalive_inc; /* Increment of ping interval */ + A_UINT32 keepalive_init; /* Initial ping interval */ + A_UINT32 keepalive_min; /* Minimum ping interval */ + A_UINT32 keepalive_max; /* Maximum ping interval */ + A_UINT32 keepalive_inc; /* Increment of ping interval */ - wmi_mac_addr gateway_mac; - A_UINT32 tcp_tx_timeout_val; - A_UINT32 tcp_rx_timeout_val; + wmi_mac_addr gateway_mac; + A_UINT32 tcp_tx_timeout_val; + A_UINT32 tcp_rx_timeout_val; - /** add extra parameter for backward-compatible */ - /* - * For all byte arrays, natural order is used. E.g. - * rc4_write_sandbox[0] holds the 1st RC4 S-box byte, - * rc4_write_sandbox[1] holds the 2nd RC4 S-box byte, etc. - */ + /** add extra parameter for backward-compatible */ + /* + * For all byte arrays, natural order is used. E.g. + * rc4_write_sandbox[0] holds the 1st RC4 S-box byte, + * rc4_write_sandbox[1] holds the 2nd RC4 S-box byte, etc. + */ - /* used to encrypt transmit packet such as keep-alive */ - A_UINT8 rc4_write_sandbox[256]; - A_UINT32 rc4_write_x; - A_UINT32 rc4_write_y; + /* used to encrypt transmit packet such as keep-alive */ + A_UINT8 rc4_write_sandbox[256]; + A_UINT32 rc4_write_x; + A_UINT32 rc4_write_y; - /* used to decrypt received packet such as wow data */ - A_UINT8 rc4_read_sandbox[256]; - A_UINT32 rc4_read_x; - A_UINT32 rc4_read_y; + /* used to decrypt received packet such as wow data */ + A_UINT8 rc4_read_sandbox[256]; + A_UINT32 rc4_read_x; + A_UINT32 rc4_read_y; - /* used to caculate HMAC hash for transmit packet such as keep-alive */ - A_UINT8 ssl_write_seq[8]; - A_UINT8 ssl_sha1_write_key[64]; - A_UINT32 ssl_sha1_write_key_len; + /* used to caculate HMAC hash for transmit packet such as keep-alive */ + A_UINT8 ssl_write_seq[8]; + A_UINT8 ssl_sha1_write_key[64]; + A_UINT32 ssl_sha1_write_key_len; - /* used to calculate HAMC hash for receive packet such as wow data */ - A_UINT8 ssl_read_seq[8]; - A_UINT8 ssl_sha1_read_key[64]; - A_UINT32 ssl_sha1_read_key_len; + /* used to calculate HAMC hash for receive packet such as wow data */ + A_UINT8 ssl_read_seq[8]; + A_UINT8 ssl_sha1_read_key[64]; + A_UINT32 ssl_sha1_read_key_len; - /* optional element for specifying TCP options data to include in - * transmit packets such as keep-alive - */ - A_UINT32 tcp_options_len; - A_UINT8 tcp_options[40]; + /* optional element for specifying TCP options data to include in + * transmit packets such as keep-alive + */ + A_UINT32 tcp_options_len; + A_UINT8 tcp_options[40]; - A_UINT32 async_id; /* keep-alive request id */ + A_UINT32 async_id; /* keep-alive request id */ } wmi_extwow_set_app_type2_params_cmd_fixed_param; -#define WMI_RXERR_CRC 0x01 /* CRC error on frame */ -#define WMI_RXERR_DECRYPT 0x08 /* non-Michael decrypt error */ -#define WMI_RXERR_MIC 0x10 /* Michael MIC decrypt error */ -#define WMI_RXERR_KEY_CACHE_MISS 0x20 /* No/incorrect key matter in h/w */ + +#define WMI_RXERR_CRC 0x01 /* CRC error on frame */ +#define WMI_RXERR_DECRYPT 0x08 /* non-Michael decrypt error */ +#define WMI_RXERR_MIC 0x10 /* Michael MIC decrypt error */ +#define WMI_RXERR_KEY_CACHE_MISS 0x20 /* No/incorrect key matter in h/w */ typedef enum { - PKT_PWR_SAVE_PAID_MATCH = 0x0001, - PKT_PWR_SAVE_GID_MATCH = 0x0002, - PKT_PWR_SAVE_EARLY_TIM_CLEAR = 0x0004, - PKT_PWR_SAVE_EARLY_DTIM_CLEAR = 0x0008, - PKT_PWR_SAVE_EOF_PAD_DELIM = 0x0010, - PKT_PWR_SAVE_MACADDR_MISMATCH = 0x0020, - PKT_PWR_SAVE_DELIM_CRC_FAIL = 0x0040, - PKT_PWR_SAVE_GID_NSTS_ZERO = 0x0080, - PKT_PWR_SAVE_RSSI_CHECK = 0x0100, - PKT_PWR_SAVE_5G_EBT = 0x0200, - PKT_PWR_SAVE_2G_EBT = 0x0400, - WMI_PKT_PWR_SAVE_MAX = 0x0800, + PKT_PWR_SAVE_PAID_MATCH = 0x0001, + PKT_PWR_SAVE_GID_MATCH = 0x0002, + PKT_PWR_SAVE_EARLY_TIM_CLEAR = 0x0004, + PKT_PWR_SAVE_EARLY_DTIM_CLEAR = 0x0008, + PKT_PWR_SAVE_EOF_PAD_DELIM = 0x0010, + PKT_PWR_SAVE_MACADDR_MISMATCH = 0x0020, + PKT_PWR_SAVE_DELIM_CRC_FAIL = 0x0040, + PKT_PWR_SAVE_GID_NSTS_ZERO = 0x0080, + PKT_PWR_SAVE_RSSI_CHECK = 0x0100, + PKT_PWR_SAVE_5G_EBT = 0x0200, + PKT_PWR_SAVE_2G_EBT = 0x0400, + WMI_PKT_PWR_SAVE_MAX = 0x0800, } WMI_PKT_PWR_SAVE_TYPE; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ftm_intg_cmd_fixed_param */ - A_UINT32 num_data; - /** length in byte of data[]. */ - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - /* This structure is used to send Factory Test Mode [FTM] command - * from host to firmware for integrated chips which are binary blobs. - * Following this structure is the TLV: - * A_UINT8 data[]; // length in byte given by field num_data. - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ftm_intg_cmd_fixed_param */ + A_UINT32 num_data; /** length in byte of data[]. */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; +/* This structure is used to send Factory Test Mode [FTM] command + * from host to firmware for integrated chips which are binary blobs. + * Following this structure is the TLV: + * A_UINT8 data[]; <-- length in byte given by field num_data. + */ } wmi_ftm_intg_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ftm_intg_event_fixed_param */ - A_UINT32 num_data; - /** length in byte of data[]. */ - /* This structure is used to receive Factory Test Mode [FTM] event - * from firmware to host for integrated chips which are binary blobs. - * Following this structure is the TLV: - * A_UINT8 data[]; // length in byte given by field num_data. - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ftm_intg_event_fixed_param */ + A_UINT32 num_data; /** length in byte of data[]. */ +/* This structure is used to receive Factory Test Mode [FTM] event + * from firmware to host for integrated chips which are binary blobs. + * Following this structure is the TLV: + * A_UINT8 data[]; <-- length in byte given by field num_data. + */ } wmi_ftm_intg_event_fixed_param; #define WMI_MAX_NS_OFFLOADS 2 @@ -10025,120 +9563,121 @@ typedef struct { #define WMI_ARPOFF_FLAGS_REMOTE_IP_VALID (1 << 2) /* remote IP field is valid */ typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_ARP_OFFLOAD_TUPLE */ - A_UINT32 flags; /* flags */ - A_UINT8 target_ipaddr[4]; /* IPV4 addresses of the local node */ - A_UINT8 remote_ipaddr[4]; /* source address of the remote node requesting the ARP (qualifier) */ - wmi_mac_addr target_mac; /* mac address for this tuple, if not valid, the local MAC is used */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_ARP_OFFLOAD_TUPLE */ + A_UINT32 flags; /* flags */ + A_UINT8 target_ipaddr[4]; /* IPV4 addresses of the local node*/ + A_UINT8 remote_ipaddr[4]; /* source address of the remote node requesting the ARP (qualifier) */ + wmi_mac_addr target_mac; /* mac address for this tuple, if not valid, the local MAC is used */ } WMI_ARP_OFFLOAD_TUPLE; -#define WMI_NSOFF_FLAGS_VALID (1 << 0) /* the tuple entry is valid */ -#define WMI_NSOFF_FLAGS_MAC_VALID (1 << 1) /* the target mac address is valid */ -#define WMI_NSOFF_FLAGS_REMOTE_IP_VALID (1 << 2) /* remote IP field is valid */ -/* whether the configured IPv6 address is anycast */ -#define WMI_NSOFF_FLAGS_IS_IPV6_ANYCAST (1 << 3) +#define WMI_NSOFF_FLAGS_VALID (1 << 0) /* the tuple entry is valid */ +#define WMI_NSOFF_FLAGS_MAC_VALID (1 << 1) /* the target mac address is valid */ +#define WMI_NSOFF_FLAGS_REMOTE_IP_VALID (1 << 2) /* remote IP field is valid */ +#define WMI_NSOFF_FLAGS_IS_IPV6_ANYCAST (1 << 3) /* whether the configured IPv6 address is anycast */ #define WMI_NSOFF_MAX_TARGET_IPS 2 typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_NS_OFFLOAD_TUPLE */ - A_UINT32 flags; /* flags */ - /* NOTE: This size of array target_ipaddr[] cannot be changed without breaking WMI compatibility. */ - WMI_IPV6_ADDR target_ipaddr[WMI_NSOFF_MAX_TARGET_IPS]; /* IPV6 target addresses of the local node */ - WMI_IPV6_ADDR solicitation_ipaddr; /* multi-cast source IP addresses for receiving solicitations */ - WMI_IPV6_ADDR remote_ipaddr; /* address of remote node requesting the solicitation (qualifier) */ - wmi_mac_addr target_mac; /* mac address for this tuple, if not valid, the local MAC is used */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_NS_OFFLOAD_TUPLE */ + A_UINT32 flags; /* flags */ + /* NOTE: This size of array target_ipaddr[] cannot be changed without breaking WMI compatibility. */ + WMI_IPV6_ADDR target_ipaddr[WMI_NSOFF_MAX_TARGET_IPS]; /* IPV6 target addresses of the local node */ + WMI_IPV6_ADDR solicitation_ipaddr; /* multi-cast source IP addresses for receiving solicitations */ + WMI_IPV6_ADDR remote_ipaddr; /* address of remote node requesting the solicitation (qualifier) */ + wmi_mac_addr target_mac; /* mac address for this tuple, if not valid, the local MAC is used */ } WMI_NS_OFFLOAD_TUPLE; typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_SET_ARP_NS_OFFLOAD_CMD_fixed_param */ - A_UINT32 flags; - A_UINT32 vdev_id; - A_UINT32 num_ns_ext_tuples; - /* Following this structure are the TLVs: - * WMI_NS_OFFLOAD_TUPLE ns_tuples[WMI_MAX_NS_OFFLOADS]; - * WMI_ARP_OFFLOAD_TUPLE arp_tuples[WMI_MAX_ARP_OFFLOADS]; - * size of ns_ext_tuples is based on num_ns_ext_tuples - * WMI_NS_OFFLOAD_TUPLE ns_ext_tuples[]; - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_SET_ARP_NS_OFFLOAD_CMD_fixed_param */ + A_UINT32 flags; + A_UINT32 vdev_id; + A_UINT32 num_ns_ext_tuples; +/* Following this structure are the TLVs: + * WMI_NS_OFFLOAD_TUPLE ns_tuples[WMI_MAX_NS_OFFLOADS]; + * WMI_ARP_OFFLOAD_TUPLE arp_tuples[WMI_MAX_ARP_OFFLOADS]; + * WMI_NS_OFFLOAD_TUPLE ns_ext_tuples[]; <-- size based on num_ns_ext_tuples + */ } WMI_SET_ARP_NS_OFFLOAD_CMD_fixed_param; -typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 pattern_id; - A_UINT32 timeout; - A_UINT32 length; - /* Following this would be the pattern - A_UINT8 pattern[] of length specifed by length - field in the structure. */ -} WMI_ADD_PROACTIVE_ARP_RSP_PATTERN_CMD_fixed_param; typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 pattern_id; + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 pattern_id; + A_UINT32 timeout; + A_UINT32 length; + /*Following this would be the pattern + A_UINT8 pattern[] of length specifed by length + field in the structure.*/ +} WMI_ADD_PROACTIVE_ARP_RSP_PATTERN_CMD_fixed_param; + + +typedef struct { + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 pattern_id; } WMI_DEL_PROACTIVE_ARP_RSP_PATTERN_CMD_fixed_param; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_tid_addba_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /** Tid number */ - A_UINT32 tid; - /** Initiator (1) or Responder (0) for this aggregation */ - A_UINT32 initiator; - /** size of the negotiated window */ - A_UINT32 window_size; - /** starting sequence number (only valid for initiator) */ - A_UINT32 ssn; - /** timeout field represents the time to wait for Block Ack in - * initiator case and the time to wait for BAR in responder - * case. 0 represents no timeout. */ - A_UINT32 timeout; - /* BA policy: immediate ACK (0) or delayed ACK (1) */ - A_UINT32 policy; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_tid_addba_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** Tid number */ + A_UINT32 tid; + /** Initiator (1) or Responder (0) for this aggregation */ + A_UINT32 initiator; + /** size of the negotiated window */ + A_UINT32 window_size; + /** starting sequence number (only valid for initiator) */ + A_UINT32 ssn; + /** timeout field represents the time to wait for Block Ack in + * initiator case and the time to wait for BAR in responder + * case. 0 represents no timeout. */ + A_UINT32 timeout; + /* BA policy: immediate ACK (0) or delayed ACK (1) */ + A_UINT32 policy; } wmi_peer_tid_addba_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_tid_delba_cmd */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /** Tid number */ - A_UINT32 tid; - /** Initiator (1) or Responder (0) for this aggregation */ - A_UINT32 initiator; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_tid_delba_cmd */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** Tid number */ + A_UINT32 tid; + /** Initiator (1) or Responder (0) for this aggregation */ + A_UINT32 initiator; } wmi_peer_tid_delba_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tx_addba_complete_event_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /** Tid number */ - A_UINT32 tid; - /** Event status */ - A_UINT32 status; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tx_addba_complete_event_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** Tid number */ + A_UINT32 tid; + /** Event status */ + A_UINT32 status; } wmi_tx_addba_complete_event_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tx_delba_complete_event_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /** Tid number */ - A_UINT32 tid; - /** Event status */ - A_UINT32 status; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tx_delba_complete_event_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** Tid number */ + A_UINT32 tid; + /** Event status */ + A_UINT32 status; } wmi_tx_delba_complete_event_fixed_param; + + + /* * Structure to request sequence numbers for a given * peer station on different TIDs. The TIDs are @@ -10149,20 +9688,21 @@ typedef struct { * numbers for the peer on all the TIDs requested * and send back a response in a WMI event. */ -typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals - WMITLV_TAG_STRUC_wmi_ba_req_ssn_cmd_sub_struct_param */ - wmi_mac_addr peer_macaddr; - A_UINT32 tidBitmap; +typedef struct +{ + A_UINT32 tlv_header; /* TLV tag and len; tag equals + WMITLV_TAG_STRUC_wmi_ba_req_ssn_cmd_sub_struct_param */ + wmi_mac_addr peer_macaddr; + A_UINT32 tidBitmap; } wmi_ba_req_ssn; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals - WMITLV_TAG_STRUC_wmi_ba_req_ssn_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** Number of requested SSN In the TLV wmi_ba_req_ssn[] */ - A_UINT32 num_ba_req_ssn; + A_UINT32 tlv_header; /* TLV tag and len; tag equals + WMITLV_TAG_STRUC_wmi_ba_req_ssn_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** Number of requested SSN In the TLV wmi_ba_req_ssn[] */ + A_UINT32 num_ba_req_ssn; /* Following this struc are the TLV's: * wmi_ba_req_ssn ba_req_ssn_list; All peer and tidBitMap for which the ssn is requested */ @@ -10180,35 +9720,38 @@ typedef struct { * Structure to send response sequence numbers * for a give peer and tidmap. */ -typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals - WMITLV_TAG_STRUC_wmi_ba_req_ssn_event_sub_struct_param */ - wmi_mac_addr peer_macaddr; - /* A bool to indicate if ssn is present */ - A_UINT32 ssn_present_for_tid[WMI_MAX_TC]; - /* The ssn from target, valid only if - * ssn_present_for_tid[tidn] equals 1 - */ - A_UINT32 ssn_for_tid[WMI_MAX_TC]; +typedef struct +{ + A_UINT32 tlv_header; /* TLV tag and len; tag equals + WMITLV_TAG_STRUC_wmi_ba_req_ssn_event_sub_struct_param */ + wmi_mac_addr peer_macaddr; + /* A boolean to indicate if ssn is present */ + A_UINT32 ssn_present_for_tid[WMI_MAX_TC]; + /* The ssn from target, valid only if + * ssn_present_for_tid[tidn] equals 1 + */ + A_UINT32 ssn_for_tid[WMI_MAX_TC]; } wmi_ba_event_ssn; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals - WMITLV_TAG_STRUC_wmi_ba_rsp_ssn_event_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** Event status, success or failure of the overall operation */ - A_UINT32 status; - /** Number of requested SSN In the TLV wmi_ba_req_ssn[] */ - A_UINT32 num_ba_event_ssn; + A_UINT32 tlv_header; /* TLV tag and len; tag equals + WMITLV_TAG_STRUC_wmi_ba_rsp_ssn_event_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** Event status, success or failure of the overall operation */ + A_UINT32 status; + /** Number of requested SSN In the TLV wmi_ba_req_ssn[] */ + A_UINT32 num_ba_event_ssn; /* Following this struc are the TLV's: * wmi_ba_event_ssn ba_event_ssn_list; All peer and tidBitMap for which the ssn is requested */ } wmi_ba_rsp_ssn_event_fixed_param; + enum wmi_aggr_state_req_type { - WMI_DISABLE_AGGREGATION, - WMI_ENABLE_AGGREGATION + + WMI_DISABLE_AGGREGATION, + WMI_ENABLE_AGGREGATION }; /* @@ -10216,58 +9759,59 @@ enum wmi_aggr_state_req_type { * when esco call is begins the coex module in fw genrated this event to host to * disable the RX aggregation and after completion of the esco call fw will indicate to * enable back the Rx aggregation . - */ +*/ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_aggr_state_trig_event_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** req_type contains values from enum - * wmi_aggr_state_req_type; 0 (disable) 1(enable) */ - A_UINT32 req_type; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_aggr_state_trig_event_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** req_type contains values from enum + * wmi_aggr_state_req_type; 0 (disable) 1(enable) */ + A_UINT32 req_type; } wmi_aggr_state_trig_event_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_install_key_complete_event_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** MAC address used for installing */ - wmi_mac_addr peer_macaddr; - /** key index */ - A_UINT32 key_ix; - /** key flags */ - A_UINT32 key_flags; - /** Event status */ - A_UINT32 status; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_install_key_complete_event_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** MAC address used for installing */ + wmi_mac_addr peer_macaddr; + /** key index */ + A_UINT32 key_ix; + /** key flags */ + A_UINT32 key_flags; + /** Event status */ + A_UINT32 status; } wmi_vdev_install_key_complete_event_fixed_param; typedef enum _WMI_NLO_AUTH_ALGORITHM { - WMI_NLO_AUTH_ALGO_80211_OPEN = 1, - WMI_NLO_AUTH_ALGO_80211_SHARED_KEY = 2, - WMI_NLO_AUTH_ALGO_WPA = 3, - WMI_NLO_AUTH_ALGO_WPA_PSK = 4, - WMI_NLO_AUTH_ALGO_WPA_NONE = 5, - WMI_NLO_AUTH_ALGO_RSNA = 6, - WMI_NLO_AUTH_ALGO_RSNA_PSK = 7, + WMI_NLO_AUTH_ALGO_80211_OPEN = 1, + WMI_NLO_AUTH_ALGO_80211_SHARED_KEY = 2, + WMI_NLO_AUTH_ALGO_WPA = 3, + WMI_NLO_AUTH_ALGO_WPA_PSK = 4, + WMI_NLO_AUTH_ALGO_WPA_NONE = 5, + WMI_NLO_AUTH_ALGO_RSNA = 6, + WMI_NLO_AUTH_ALGO_RSNA_PSK = 7, } WMI_NLO_AUTH_ALGORITHM; typedef enum _WMI_NLO_CIPHER_ALGORITHM { - WMI_NLO_CIPHER_ALGO_NONE = 0x00, - WMI_NLO_CIPHER_ALGO_WEP40 = 0x01, - WMI_NLO_CIPHER_ALGO_TKIP = 0x02, - WMI_NLO_CIPHER_ALGO_CCMP = 0x04, - WMI_NLO_CIPHER_ALGO_WEP104 = 0x05, - WMI_NLO_CIPHER_ALGO_BIP = 0x06, - WMI_NLO_CIPHER_ALGO_WPA_USE_GROUP = 0x100, - WMI_NLO_CIPHER_ALGO_RSN_USE_GROUP = 0x100, - WMI_NLO_CIPHER_ALGO_WEP = 0x101, + WMI_NLO_CIPHER_ALGO_NONE = 0x00, + WMI_NLO_CIPHER_ALGO_WEP40 = 0x01, + WMI_NLO_CIPHER_ALGO_TKIP = 0x02, + WMI_NLO_CIPHER_ALGO_CCMP = 0x04, + WMI_NLO_CIPHER_ALGO_WEP104 = 0x05, + WMI_NLO_CIPHER_ALGO_BIP = 0x06, + WMI_NLO_CIPHER_ALGO_WPA_USE_GROUP = 0x100, + WMI_NLO_CIPHER_ALGO_RSN_USE_GROUP = 0x100, + WMI_NLO_CIPHER_ALGO_WEP = 0x101, } WMI_NLO_CIPHER_ALGORITHM; /* SSID broadcast type passed in NLO params */ -typedef enum _WMI_NLO_SSID_BcastNwType { - WMI_NLO_BCAST_UNKNOWN = 0, - WMI_NLO_BCAST_NORMAL = 1, - WMI_NLO_BCAST_HIDDEN = 2, +typedef enum _WMI_NLO_SSID_BcastNwType +{ + WMI_NLO_BCAST_UNKNOWN = 0, + WMI_NLO_BCAST_NORMAL = 1, + WMI_NLO_BCAST_HIDDEN = 2, } WMI_NLO_SSID_BcastNwType; #define WMI_NLO_MAX_SSIDS 16 @@ -10279,14 +9823,15 @@ typedef enum _WMI_NLO_SSID_BcastNwType { #define WMI_NLO_CONFIG_SLOW_SCAN (0x1 << 4) #define WMI_NLO_CONFIG_FAST_SCAN (0x1 << 5) #define WMI_NLO_CONFIG_SSID_HIDE_EN (0x1 << 6) -/* This bit is used to indicate if EPNO or supplicant PNO is enabled. Only - * one of them can be enabled at a given time */ + +/* This bit is used to indicate if EPNO Profile is enabled */ #define WMI_NLO_CONFIG_ENLO (0x1 << 7) #define WMI_NLO_CONFIG_SCAN_PASSIVE (0x1 << 8) #define WMI_NLO_CONFIG_ENLO_RESET (0x1 << 9) #define WMI_NLO_CONFIG_SPOOFED_MAC_IN_PROBE_REQ (0x1 << 10) #define WMI_NLO_CONFIG_RANDOM_SEQ_NO_IN_PROBE_REQ (0x1 << 11) #define WMI_NLO_CONFIG_ENABLE_IE_WHITELIST_IN_PROBE_REQ (0x1 << 12) +#define WMI_NLO_CONFIG_ENABLE_CNLO_RSSI_CONFIG (0x1 << 13) /* Whether directed scan needs to be performed (for hidden SSIDs) */ #define WMI_ENLO_FLAG_DIRECTED_SCAN 1 @@ -10296,7 +9841,9 @@ typedef enum _WMI_NLO_SSID_BcastNwType { #define WMI_ENLO_FLAG_G_BAND 4 /* Whether strict matching is required (i.e. firmware shall not match on the entire SSID) */ #define WMI_ENLO_FLAG_STRICT_MATCH 8 -/* Code for matching the beacon AUTH IE - additional codes TBD open */ + +/* Code for matching the beacon AUTH IE - additional codes TBD */ +/* open */ #define WMI_ENLO_AUTH_CODE_OPEN 1 /* WPA_PSK or WPA2PSK */ #define WMI_ENLO_AUTH_CODE_PSK 2 @@ -10304,161 +9851,169 @@ typedef enum _WMI_NLO_SSID_BcastNwType { #define WMI_ENLO_AUTH_CODE_EAPOL 4 /* NOTE: wmi_nlo_ssid_param structure can't be changed without breaking the compatibility */ -typedef struct wmi_nlo_ssid_param { - A_UINT32 valid; - wmi_ssid ssid; +typedef struct wmi_nlo_ssid_param +{ + A_UINT32 valid; + wmi_ssid ssid; } wmi_nlo_ssid_param; /* NOTE: wmi_nlo_enc_param structure can't be changed without breaking the compatibility */ -typedef struct wmi_nlo_enc_param { - A_UINT32 valid; - A_UINT32 enc_type; +typedef struct wmi_nlo_enc_param +{ + A_UINT32 valid; + A_UINT32 enc_type; } wmi_nlo_enc_param; /* NOTE: wmi_nlo_auth_param structure can't be changed without breaking the compatibility */ -typedef struct wmi_nlo_auth_param { - A_UINT32 valid; - A_UINT32 auth_type; +typedef struct wmi_nlo_auth_param +{ + A_UINT32 valid; + A_UINT32 auth_type; } wmi_nlo_auth_param; /* NOTE: wmi_nlo_bcast_nw_param structure can't be changed without breaking the compatibility */ -typedef struct wmi_nlo_bcast_nw_param { - A_UINT32 valid; - /** - * If WMI_NLO_CONFIG_EPNO is not set. Supplicant PNO is enabled. The value - * should be true/false.Otherwise EPNO is enabled. bcast_nw_type would be used - * as a bit flag contains WMI_ENLO_FLAG_XXX - */ - A_UINT32 bcast_nw_type; +typedef struct wmi_nlo_bcast_nw_param +{ + A_UINT32 valid; +/* If WMI_NLO_CONFIG_EPNO is not set. Supplicant PNO is enabled. The value should be true/false +Otherwise EPNO is enabled. bcast_nw_type would be used as a bit flag contains WMI_ENLO_FLAG_XXX */ + A_UINT32 bcast_nw_type; } wmi_nlo_bcast_nw_param; /* NOTE: wmi_nlo_rssi_param structure can't be changed without breaking the compatibility */ -typedef struct wmi_nlo_rssi_param { - A_UINT32 valid; - A_INT32 rssi; +typedef struct wmi_nlo_rssi_param +{ + A_UINT32 valid; + A_INT32 rssi; } wmi_nlo_rssi_param; typedef struct nlo_configured_parameters { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_nlo_configured_parameters */ - wmi_nlo_ssid_param ssid; - wmi_nlo_enc_param enc_type; - wmi_nlo_auth_param auth_type; - wmi_nlo_rssi_param rssi_cond; - wmi_nlo_bcast_nw_param bcast_nw_type; /* indicates if the SSID is hidden or not */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_nlo_configured_parameters */ + wmi_nlo_ssid_param ssid; + wmi_nlo_enc_param enc_type; + wmi_nlo_auth_param auth_type; + wmi_nlo_rssi_param rssi_cond; + wmi_nlo_bcast_nw_param bcast_nw_type; /* indicates if the SSID is hidden or not */ } nlo_configured_parameters; + /* Support channel prediction for PNO scan after scanning top_k_num channels * if stationary_threshold is met. */ typedef struct nlo_channel_prediction_cfg { - A_UINT32 tlv_header; - /* Enable or disable this feature. */ - A_UINT32 enable; - /* Top K channels will be scanned before deciding whether to further - * scan or stop. Minimum value is 3 and maximum is 5. */ - A_UINT32 top_k_num; - /* Preconfigured stationary threshold. Lesser value means more - * conservative. Bigger value means more aggressive. - * Maximum is 100 and mininum is 0. */ - A_UINT32 stationary_threshold; - /* Periodic full channel scan in milliseconds unit. - * After full_scan_period_ms since last full scan, channel prediction - * scan is suppressed and will do full scan. - * This is to help detecting sudden AP power-on or -off. - * Value 0 means no full scan at all (not recommended). - */ - A_UINT32 full_scan_period_ms; + A_UINT32 tlv_header; + /* Enable or disable this feature. */ + A_UINT32 enable; + /* Top K channels will be scanned before deciding whether to further scan + * or stop. Minimum value is 3 and maximum is 5. */ + A_UINT32 top_k_num; + /* Preconfigured stationary threshold. + * Lesser value means more conservative. Bigger value means more aggressive. + * Maximum is 100 and mininum is 0. */ + A_UINT32 stationary_threshold; + /* Periodic full channel scan in milliseconds unit. + * After full_scan_period_ms since last full scan, channel prediction + * scan is suppressed and will do full scan. + * This is to help detecting sudden AP power-on or -off. Value 0 means no + * full scan at all (not recommended). + */ + A_UINT32 full_scan_period_ms; } nlo_channel_prediction_cfg; typedef struct enlo_candidate_score_params_t { - /* - * TLV tag and len; - * tag equals WMITLV_TAG_STRUC_wmi_enlo_candidate_score_param - */ - A_UINT32 tlv_header; - /* minimum 5GHz RSSI for a BSSID to be considered (units = dBm) */ - A_INT32 min5GHz_rssi; - /* minimum 2.4GHz RSSI for a BSSID to be considered (units = dBm) */ - A_INT32 min24GHz_rssi; - /* the maximum score that a network can have before bonuses */ - A_UINT32 initial_score_max; - /* current_connection_bonus: - * only report when there is a network's score this much higher - * than the current connection - */ - A_UINT32 current_connection_bonus; - /* score bonus for all networks with the same network flag */ - A_UINT32 same_network_bonus; - /* score bonus for networks that are not open */ - A_UINT32 secure_bonus; - /* 5GHz RSSI score bonus (applied to all 5GHz networks) */ - A_UINT32 band5GHz_bonus; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_enlo_candidate_score_param */ + A_INT32 min5GHz_rssi; /* minimum 5GHz RSSI for a BSSID to be considered (units = dBm) */ + A_INT32 min24GHz_rssi; /* minimum 2.4GHz RSSI for a BSSID to be considered (units = dBm) */ + A_UINT32 initial_score_max; /* the maximum score that a network can have before bonuses */ + /* current_connection_bonus: + * only report when there is a network's score this much higher + * than the current connection + */ + A_UINT32 current_connection_bonus; + A_UINT32 same_network_bonus; /* score bonus for all networks with the same network flag */ + A_UINT32 secure_bonus; /* score bonus for networks that are not open */ + A_UINT32 band5GHz_bonus; /* 5GHz RSSI score bonus (applied to all 5GHz networks) */ } enlo_candidate_score_params; -typedef struct wmi_nlo_config { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_nlo_config_cmd_fixed_param */ - A_UINT32 flags; - A_UINT32 vdev_id; - A_UINT32 fast_scan_max_cycles; - A_UINT32 active_dwell_time; - A_UINT32 passive_dwell_time; /* PDT in msecs */ - A_UINT32 probe_bundle_size; - A_UINT32 rest_time; /* ART = IRT */ - A_UINT32 max_rest_time; /* Max value that can be reached after SBM */ - A_UINT32 scan_backoff_multiplier; /* SBM */ - A_UINT32 fast_scan_period; /* SCBM */ - A_UINT32 slow_scan_period; /* specific to windows */ - A_UINT32 no_of_ssids; - A_UINT32 num_of_channels; - A_UINT32 delay_start_time; /* NLO scan start delay time in milliseconds */ - /** MAC Address to use in Probe Req as SA **/ - wmi_mac_addr mac_addr; - /** Mask on which MAC has to be randomized **/ - wmi_mac_addr mac_mask; - /** IE bitmap to use in Probe Req **/ - A_UINT32 ie_bitmap[WMI_IE_BITMAP_SIZE]; - /** Number of vendor OUIs. In the TLV vendor_oui[] **/ - A_UINT32 num_vendor_oui; - /* The TLVs will follow. - * nlo_configured_parameters nlo_list[]; - * A_UINT32 channel_list[]; - * nlo_channel_prediction_cfg ch_prediction_cfg; - * enlo_candidate_score_params candidate_score_params; - * wmi_vendor_oui vendor_oui[]; - */ +typedef struct connected_nlo_rssi_params_t { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_connected_nlo_rssi_params */ + /* Relative rssi threshold (in dB) by which new BSS should have better rssi than + * the current connected BSS. + */ + A_INT32 relative_rssi; + /* The amount of rssi preference (in dB) that can be given to a 5G BSS over 2.4G BSS. */ + A_INT32 relative_rssi_5g_pref; +} connected_nlo_rssi_params; +typedef struct wmi_nlo_config { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_nlo_config_cmd_fixed_param */ + A_UINT32 flags; + A_UINT32 vdev_id; + A_UINT32 fast_scan_max_cycles; + A_UINT32 active_dwell_time; + A_UINT32 passive_dwell_time; /* PDT in msecs */ + A_UINT32 probe_bundle_size; + A_UINT32 rest_time; /* ART = IRT */ + A_UINT32 max_rest_time; /* Max value that can be reached after SBM */ + A_UINT32 scan_backoff_multiplier; /* SBM */ + A_UINT32 fast_scan_period; /* SCBM */ + A_UINT32 slow_scan_period; /* specific to windows */ + A_UINT32 no_of_ssids; + A_UINT32 num_of_channels; + A_UINT32 delay_start_time; /* NLO scan start delay time in milliseconds */ + /** MAC Address to use in Probe Req as SA **/ + wmi_mac_addr mac_addr; + /** Mask on which MAC has to be randomized **/ + wmi_mac_addr mac_mask; + /** IE bitmap to use in Probe Req **/ + A_UINT32 ie_bitmap[WMI_IE_BITMAP_SIZE]; + /** Number of vendor OUIs. In the TLV vendor_oui[] **/ + A_UINT32 num_vendor_oui; +/* The TLVs will follow. + * nlo_configured_parameters nlo_list[]; + * A_UINT32 channel_list[]; + * nlo_channel_prediction_cfg ch_prediction_cfg; + * enlo_candidate_score_params candidate_score_params; + * wmi_vendor_oui vendor_oui[]; + * connected_nlo_rssi_params cnlo_rssi_params; + */ } wmi_nlo_config_cmd_fixed_param; -typedef struct wmi_nlo_event { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_nlo_event */ - A_UINT32 vdev_id; +typedef struct wmi_nlo_event +{ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_nlo_event */ + A_UINT32 vdev_id; } wmi_nlo_event; + /* WMI_PASSPOINT_CONFIG_SET * Sets a list for passpoint networks for PNO purposes; * it should be matched against any passpoint networks found * during regular PNO scan. */ -#define WMI_PASSPOINT_CONFIG_SET (0x1 << 0) +#define WMI_PASSPOINT_CONFIG_SET (0x1 << 0) /* WMI_PASSPOINT_CONFIG_RESET * Reset passpoint network list - * no Passpoint networks should be matched after this. */ #define WMI_PASSPOINT_CONFIG_RESET (0x1 << 1) + #define PASSPOINT_REALM_LEN 256 #define PASSPOINT_ROAMING_CONSORTIUM_ID_LEN 5 #define PASSPOINT_ROAMING_CONSORTIUM_ID_NUM 16 #define PASSPOINT_PLMN_ID_LEN 3 #define PASSPOINT_PLMN_ID_ALLOC_LEN /* round up to A_UINT32 boundary */ \ - (((PASSPOINT_PLMN_ID_LEN + 3) >> 2) << 2) + (((PASSPOINT_PLMN_ID_LEN + 3) >> 2) << 2) /* * Confirm PASSPOINT_REALM_LEN is a multiple of 4, so the - * A_UINT8 realm[PASSPOINT_REALM_LEN] + * A_UINT8 realm[PASSPOINT_REALM_LEN] * array will end on a 4-byte boundary. * (This 4-byte alignment simplifies endianness-correction byte swapping.) */ -A_COMPILE_TIME_ASSERT(check_passpoint_realm_size, (PASSPOINT_REALM_LEN % sizeof(A_UINT32)) == 0); +A_COMPILE_TIME_ASSERT( + check_passpoint_realm_size, + (PASSPOINT_REALM_LEN % sizeof(A_UINT32)) == 0); /* * Confirm the product of PASSPOINT_ROAMING_CONSORTIUM_ID_NUM and @@ -10466,93 +10021,87 @@ A_COMPILE_TIME_ASSERT(check_passpoint_realm_size, (PASSPOINT_REALM_LEN % sizeof( * roaming_consortium_ids array below will end on a 4-byte boundary. * (This 4-byte alignment simplifies endianness-correction byte swapping.) */ -A_COMPILE_TIME_ASSERT(check_passpoint_roaming_consortium_ids_size, -((PASSPOINT_ROAMING_CONSORTIUM_ID_NUM*PASSPOINT_ROAMING_CONSORTIUM_ID_LEN) % sizeof(A_UINT32)) == 0); +A_COMPILE_TIME_ASSERT( + check_passpoint_roaming_consortium_ids_size, + ((PASSPOINT_ROAMING_CONSORTIUM_ID_NUM*PASSPOINT_ROAMING_CONSORTIUM_ID_LEN) % sizeof(A_UINT32)) == 0); /* wildcard ID to allow an action (reset) to apply to all networks */ #define WMI_PASSPOINT_NETWORK_ID_WILDCARD 0xFFFFFFFF typedef struct wmi_passpoint_config { - /* TLV tag and len; tag equals wmi_passpoint_config_cmd_fixed_param */ - A_UINT32 tlv_header; - /* (network) id - * identifier of the matched network, report this in event - * This id can be a wildcard (WMI_PASSPOINT_NETWORK_ID_WILDCARD) - * that indicates the action should be applied to all networks. - * Currently, the only action that is applied to all networks is "reset". - * If a non-wildcard ID is specified, that particular network is configured. - * If a wildcard ID is specified, all networks are reset. - */ - A_UINT32 id; - A_UINT32 req_id; - /*null terminated UTF8 encoded realm, 0 if unspecified*/ - A_UINT8 realm[PASSPOINT_REALM_LEN]; - /*roaming consortium ids to match, 0s if unspecified*/ - A_UINT8 roaming_consortium_ids[PASSPOINT_ROAMING_CONSORTIUM_ID_NUM][PASSPOINT_ROAMING_CONSORTIUM_ID_LEN]; - /*This would be bytes-stream as same as defition of realm id in 802.11 standard*/ - /*PLMN id mcc/mnc combination as per rules, 0s if unspecified */ - A_UINT8 plmn[PASSPOINT_PLMN_ID_ALLOC_LEN]; + A_UINT32 tlv_header; /* TLV tag and len; tag equals wmi_passpoint_config_cmd_fixed_param */ + /* (network) id + * identifier of the matched network, report this in event + * This id can be a wildcard (WMI_PASSPOINT_NETWORK_ID_WILDCARD) + * that indicates the action should be applied to all networks. + * Currently, the only action that is applied to all networks is "reset". + * If a non-wildcard ID is specified, that particular network is configured. + * If a wildcard ID is specified, all networks are reset. + */ + A_UINT32 id; + A_UINT32 req_id; + A_UINT8 realm[PASSPOINT_REALM_LEN]; /*null terminated UTF8 encoded realm, 0 if unspecified*/ + A_UINT8 roaming_consortium_ids[PASSPOINT_ROAMING_CONSORTIUM_ID_NUM][PASSPOINT_ROAMING_CONSORTIUM_ID_LEN]; /*roaming consortium ids to match, 0s if unspecified*/ + /*This would be bytes-stream as same as defition of realm id in 802.11 standard*/ + A_UINT8 plmn[PASSPOINT_PLMN_ID_ALLOC_LEN]; /*PLMN id mcc/mnc combination as per rules, 0s if unspecified */ } wmi_passpoint_config_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals -wmi_passpoint_event_hdr */ - A_UINT32 id; /* identifier of the matched network */ - A_UINT32 vdev_id; - A_UINT32 timestamp; /* time since boot (in microsecond) when the -result was retrieved*/ - wmi_ssid ssid; - wmi_mac_addr bssid; /* bssid of the network */ - A_UINT32 channel_mhz; /* channel frequency in MHz */ - A_UINT32 rssi; /* rssi value */ - A_UINT32 rtt; /* timestamp in nanoseconds*/ - A_UINT32 rtt_sd; /* standard deviation in rtt */ - A_UINT32 beacon_period; /* beacon advertised in the beacon */ - A_UINT32 capability; /* capabilities advertised in the beacon */ - A_UINT32 ie_length; /* size of the ie_data blob */ - A_UINT32 anqp_length; /* length of ANQP blob */ - /** - * Following this structure is the byte stream of ie data of length ie_buf_len: - * A_UINT8 ie_data[]; // length in byte given by field ie_length, blob of ie data in beacon - * A_UINT8 anqp_ie[]; // length in byte given by field anqp_len, blob of anqp data of IE - * Implicitly, combing ie_data and anqp_ie into a single bufp, and the bytes - * stream of each ie should be same as BEACON/Action-frm by 802.11 spec - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals wmi_passpoint_event_hdr */ + A_UINT32 id; /* identifier of the matched network */ + A_UINT32 vdev_id; + A_UINT32 timestamp; /* time since boot (in microsecond) when the result was retrieved*/ + wmi_ssid ssid; + wmi_mac_addr bssid; /* bssid of the network */ + A_UINT32 channel_mhz; /* channel frequency in MHz */ + A_UINT32 rssi; /* rssi value */ + A_UINT32 rtt; /* timestamp in nanoseconds*/ + A_UINT32 rtt_sd; /* standard deviation in rtt */ + A_UINT32 beacon_period; /* beacon advertised in the beacon */ + A_UINT32 capability; /* capabilities advertised in the beacon */ + A_UINT32 ie_length; /* size of the ie_data blob */ + A_UINT32 anqp_length; /* length of ANQP blob */ +/* Following this structure is the byte stream of ie data of length ie_buf_len: + * A_UINT8 ie_data[]; <-- length in byte given by field ie_length, blob of ie data in beacon + * A_UINT8 anqp_ie[]; <-- length in byte given by field anqp_len, blob of anqp data of IE + * Implicitly, combing ie_data and anqp_ie into a single bufp, and the bytes stream of each ie should be same as BEACON/Action-frm by 802.11 spec. + */ } wmi_passpoint_event_hdr; -#define GTK_OFFLOAD_OPCODE_MASK 0xFF000000 + +#define GTK_OFFLOAD_OPCODE_MASK 0xFF000000 /** Enable GTK offload, and provided parameters KEK,KCK and replay counter values */ -#define GTK_OFFLOAD_ENABLE_OPCODE 0x01000000 +#define GTK_OFFLOAD_ENABLE_OPCODE 0x01000000 /** Disable GTK offload */ -#define GTK_OFFLOAD_DISABLE_OPCODE 0x02000000 +#define GTK_OFFLOAD_DISABLE_OPCODE 0x02000000 /** Read GTK offload parameters, generates WMI_GTK_OFFLOAD_STATUS_EVENT */ -#define GTK_OFFLOAD_REQUEST_STATUS_OPCODE 0x04000000 +#define GTK_OFFLOAD_REQUEST_STATUS_OPCODE 0x04000000 enum wmi_chatter_mode { - /* Chatter enter/exit happens - * automatically based on preset - * params - */ - WMI_CHATTER_MODE_AUTO, - /* Chatter enter is triggered - * manually by the user - */ - WMI_CHATTER_MODE_MANUAL_ENTER, - /* Chatter exit is triggered - * manually by the user - */ - WMI_CHATTER_MODE_MANUAL_EXIT, - /* Placeholder max value, always last */ - WMI_CHATTER_MODE_MAX + /* Chatter enter/exit happens + * automatically based on preset + * params + */ + WMI_CHATTER_MODE_AUTO, + /* Chatter enter is triggered + * manually by the user + */ + WMI_CHATTER_MODE_MANUAL_ENTER, + /* Chatter exit is triggered + * manually by the user + */ + WMI_CHATTER_MODE_MANUAL_EXIT, + /* Placeholder max value, always last*/ + WMI_CHATTER_MODE_MAX }; enum wmi_chatter_query_type { - /*query coalescing filter match counter */ - WMI_CHATTER_QUERY_FILTER_MATCH_CNT, - WMI_CHATTER_QUERY_MAX + /*query coalescing filter match counter*/ + WMI_CHATTER_QUERY_FILTER_MATCH_CNT, + WMI_CHATTER_QUERY_MAX }; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_chatter_set_mode_cmd_fixed_param */ - A_UINT32 chatter_mode; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_chatter_set_mode_cmd_fixed_param */ + A_UINT32 chatter_mode; } wmi_chatter_set_mode_cmd_fixed_param; /** maximum number of filter supported*/ @@ -10574,49 +10123,49 @@ typedef struct { /** coalescing field test*/ typedef struct _chatter_pkt_coalescing_hdr_test { - /** offset from start of mac header, for windows native wifi host driver - * should assume standard 802.11 frame format without QoS info and address4 - * FW would account for any non-stand fields for final offset value. - */ - A_UINT32 offset; - A_UINT32 length; /* length of test field */ - A_UINT32 test; /*equal, not equal or masked equal */ - A_UINT32 mask[CHATTER_MAX_TEST_FIELD_LEN32]; /*mask byte stream */ - A_UINT32 value[CHATTER_MAX_TEST_FIELD_LEN32]; /*value byte stream */ + /** offset from start of mac header, for windows native wifi host driver + * should assume standard 802.11 frame format without QoS info and address4 + * FW would account for any non-stand fields for final offset value. + */ + A_UINT32 offset; + A_UINT32 length; /* length of test field*/ + A_UINT32 test; /*equal, not equal or masked equal*/ + A_UINT32 mask[CHATTER_MAX_TEST_FIELD_LEN32]; /*mask byte stream*/ + A_UINT32 value[CHATTER_MAX_TEST_FIELD_LEN32]; /*value byte stream*/ } chatter_pkt_coalescing_hdr_test; /** packet coalescing filter*/ typedef struct _chatter_pkt_coalescing_filter { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_chatter_pkt_coalescing_filter */ - A_UINT32 filter_id; /*unique id assigned by OS */ - A_UINT32 max_coalescing_delay; /*max miliseconds 1st pkt can be hold */ - A_UINT32 pkt_type; /*unicast/multicast/broadcast */ - A_UINT32 num_of_test_field; /*number of field test in table */ - chatter_pkt_coalescing_hdr_test test_fields[CHATTER_MAX_FIELD_TEST]; /*field test tbl */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_chatter_pkt_coalescing_filter */ + A_UINT32 filter_id; /*unique id assigned by OS*/ + A_UINT32 max_coalescing_delay; /*max miliseconds 1st pkt can be hold*/ + A_UINT32 pkt_type; /*unicast/multicast/broadcast*/ + A_UINT32 num_of_test_field; /*number of field test in table*/ + chatter_pkt_coalescing_hdr_test test_fields[CHATTER_MAX_FIELD_TEST]; /*field test tbl*/ } chatter_pkt_coalescing_filter; /** packet coalescing filter add command*/ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_chatter_coalescing_add_filter_cmd_fixed_param */ - A_UINT32 num_of_filters; - /* Following this tlv, there comes an array of structure of type chatter_pkt_coalescing_filter - chatter_pkt_coalescing_filter rx_filter[1]; */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_chatter_coalescing_add_filter_cmd_fixed_param */ + A_UINT32 num_of_filters; +/* Following this tlv, there comes an array of structure of type chatter_pkt_coalescing_filter + chatter_pkt_coalescing_filter rx_filter[1];*/ } wmi_chatter_coalescing_add_filter_cmd_fixed_param; /** packet coalescing filter delete command*/ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_chatter_coalescing_delete_filter_cmd_fixed_param */ - A_UINT32 filter_id; /*filter id which will be deleted */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_chatter_coalescing_delete_filter_cmd_fixed_param */ + A_UINT32 filter_id; /*filter id which will be deleted*/ } wmi_chatter_coalescing_delete_filter_cmd_fixed_param; /** packet coalescing query command*/ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_chatter_coalescing_query_cmd_fixed_param */ - A_UINT32 type; /*type of query */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_chatter_coalescing_query_cmd_fixed_param */ + A_UINT32 type; /*type of query*/ } wmi_chatter_coalescing_query_cmd_fixed_param; /** chatter query reply event*/ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_chatter_query_reply_event_fixed_param */ - A_UINT32 type; /*query type */ - A_UINT32 filter_match_cnt; /*coalescing filter match counter */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_chatter_query_reply_event_fixed_param */ + A_UINT32 type; /*query type*/ + A_UINT32 filter_match_cnt; /*coalescing filter match counter*/ } wmi_chatter_query_reply_event_fixed_param; /* NOTE: This constants GTK_OFFLOAD_KEK_BYTES, GTK_OFFLOAD_KCK_BYTES, and GTK_REPLAY_COUNTER_BYTES @@ -10629,158 +10178,150 @@ typedef struct { #define IGTK_PN_SIZE 6 typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_GTK_OFFLOAD_STATUS_EVENT_fixed_param */ - A_UINT32 vdev_id; - /** unique id identifying the VDEV */ - A_UINT32 flags; /* status flags */ - A_UINT32 refresh_cnt; /* number of successful GTK refresh exchanges since last SET operation */ - A_UINT8 replay_counter[GTK_REPLAY_COUNTER_BYTES]; /* current replay counter */ - A_UINT8 igtk_keyIndex; /* Use if IGTK_OFFLOAD is defined */ - A_UINT8 igtk_keyLength; /* Use if IGTK_OFFLOAD is defined */ - A_UINT8 igtk_keyRSC[IGTK_PN_SIZE]; /* key replay sequence counter *//* Use if IGTK_OFFLOAD is defined */ - A_UINT8 igtk_key[WMI_MAX_KEY_LEN]; /* Use if IGTK_OFFLOAD is defined */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_GTK_OFFLOAD_STATUS_EVENT_fixed_param */ + A_UINT32 vdev_id; /** unique id identifying the VDEV */ + A_UINT32 flags; /* status flags */ + A_UINT32 refresh_cnt; /* number of successful GTK refresh exchanges since last SET operation */ + A_UINT8 replay_counter[GTK_REPLAY_COUNTER_BYTES]; /* current replay counter */ + A_UINT8 igtk_keyIndex; /* Use if IGTK_OFFLOAD is defined */ + A_UINT8 igtk_keyLength; /* Use if IGTK_OFFLOAD is defined */ + A_UINT8 igtk_keyRSC[IGTK_PN_SIZE]; /* key replay sequence counter *//* Use if IGTK_OFFLOAD is defined */ + A_UINT8 igtk_key[WMI_MAX_KEY_LEN]; /* Use if IGTK_OFFLOAD is defined */ } WMI_GTK_OFFLOAD_STATUS_EVENT_fixed_param; typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_GTK_OFFLOAD_CMD_fixed_param */ - A_UINT32 vdev_id; /** unique id identifying the VDEV */ - A_UINT32 flags; /* control flags, GTK offload command use high byte */ - /* The size of following 3 arrays cannot be changed without breaking WMI compatibility. */ - A_UINT8 KEK[GTK_OFFLOAD_KEK_BYTES]; /* key encryption key */ - A_UINT8 KCK[GTK_OFFLOAD_KCK_BYTES]; /* key confirmation key */ - A_UINT8 replay_counter[GTK_REPLAY_COUNTER_BYTES]; /* replay counter for re-key */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_GTK_OFFLOAD_CMD_fixed_param */ + A_UINT32 vdev_id; /** unique id identifying the VDEV */ + A_UINT32 flags; /* control flags, GTK offload command use high byte */ + /* The size of following 3 arrays cannot be changed without breaking WMI compatibility. */ + A_UINT8 KEK[GTK_OFFLOAD_KEK_BYTES]; /* key encryption key */ + A_UINT8 KCK[GTK_OFFLOAD_KCK_BYTES]; /* key confirmation key */ + A_UINT8 replay_counter[GTK_REPLAY_COUNTER_BYTES]; /* replay counter for re-key */ } WMI_GTK_OFFLOAD_CMD_fixed_param; typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_WMI_PMF_OFFLOAD_SET_SA_QUERY_CMD_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 sa_query_retry_interval; /* in msec */ - A_UINT32 sa_query_max_retry_count; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_PMF_OFFLOAD_SET_SA_QUERY_CMD_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 sa_query_retry_interval; /* in msec */ + A_UINT32 sa_query_max_retry_count; } WMI_PMF_OFFLOAD_SET_SA_QUERY_CMD_fixed_param; typedef enum { - WMI_STA_KEEPALIVE_METHOD_NULL_FRAME = 1, /* 802.11 NULL frame */ - WMI_STA_KEEPALIVE_METHOD_UNSOLICITED_ARP_RESPONSE = 2, /* ARP response */ - WMI_STA_KEEPALIVE_METHOD_ETHERNET_LOOPBACK = 3, /*ETHERNET LOOPBACK */ - /* gratuitous ARP req*/ - WMI_STA_KEEPALIVE_METHOD_GRATUITOUS_ARP_REQUEST = 4, + WMI_STA_KEEPALIVE_METHOD_NULL_FRAME = 1, /* 802.11 NULL frame */ + WMI_STA_KEEPALIVE_METHOD_UNSOLICITED_ARP_RESPONSE = 2, /* ARP response */ + WMI_STA_KEEPALIVE_METHOD_ETHERNET_LOOPBACK = 3, /*ETHERNET LOOPBACK*/ + WMI_STA_KEEPALIVE_METHOD_GRATUITOUS_ARP_REQUEST = 4, /* gratuitous ARP req*/ } WMI_STA_KEEPALIVE_METHOD; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_STA_KEEPALVE_ARP_RESPONSE */ - WMI_IPV4_ADDR sender_prot_addr; /* Sender protocol address */ - WMI_IPV4_ADDR target_prot_addr; /* Target protocol address */ - wmi_mac_addr dest_mac_addr; /* destination MAC address */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_STA_KEEPALVE_ARP_RESPONSE */ + WMI_IPV4_ADDR sender_prot_addr; /* Sender protocol address */ + WMI_IPV4_ADDR target_prot_addr; /* Target protocol address */ + wmi_mac_addr dest_mac_addr; /* destination MAC address */ } WMI_STA_KEEPALVE_ARP_RESPONSE; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_STA_KEEPALIVE_CMD_fixed_param */ - A_UINT32 vdev_id; - A_UINT32 enable; /* 1 - Enable, 0 - disable */ - A_UINT32 method; /* keep alive method */ - A_UINT32 interval; /* time interval in seconds */ - /* - * NOTE: following this structure is the TLV for ARP Resonse: - * WMI_STA_KEEPALVE_ARP_RESPONSE arp_resp; // ARP response - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_STA_KEEPALIVE_CMD_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 enable; /* 1 - Enable, 0 - disable */ + A_UINT32 method; /* keep alive method */ + A_UINT32 interval; /* time interval in seconds */ +/* + * NOTE: following this structure is the TLV for ARP Resonse: + * WMI_STA_KEEPALVE_ARP_RESPONSE arp_resp; <-- ARP response + */ } WMI_STA_KEEPALIVE_CMD_fixed_param; typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 action; + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 action; } WMI_VDEV_WNM_SLEEPMODE_CMD_fixed_param; typedef WMI_VDEV_WNM_SLEEPMODE_CMD_fixed_param WMI_STA_WNMSLEEP_CMD; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_set_keepalive_cmd_fixed_param */ - A_UINT32 vdev_id; - A_UINT32 keepaliveInterval; /* seconds */ - A_UINT32 keepaliveMethod; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_set_keepalive_cmd_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 keepaliveInterval; /* seconds */ + A_UINT32 keepaliveMethod; } wmi_vdev_set_keepalive_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_get_keepalive_cmd_fixed_param */ - A_UINT32 vdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_get_keepalive_cmd_fixed_param */ + A_UINT32 vdev_id; } wmi_vdev_get_keepalive_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_get_keepalive_event_fixed_param */ - A_UINT32 vdev_id; - A_UINT32 keepaliveInterval; /* seconds */ - A_UINT32 keepaliveMethod; /* seconds */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_get_keepalive_event_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 keepaliveInterval; /* seconds */ + A_UINT32 keepaliveMethod; /* seconds */ } wmi_vdev_get_keepalive_event_fixed_param; +typedef struct { + A_UINT32 tlv_header; + A_UINT32 vdev_id; #define IPSEC_NATKEEPALIVE_FILTER_DISABLE 0 -#define IPSEC_NATKEEPALIVE_FILTER_ENABLE 1 - -typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 action; +#define IPSEC_NATKEEPALIVE_FILTER_ENABLE 1 + A_UINT32 action; } WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMD_fixed_param; - -typedef WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMD_fixed_param -WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMD; +typedef WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMD_fixed_param WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMD; typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 mcc_tbttmode; - wmi_mac_addr mcc_bssid; + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 mcc_tbttmode; + wmi_mac_addr mcc_bssid; } wmi_vdev_mcc_set_tbtt_mode_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; /* home vdev id */ - A_UINT32 meas_token; /* from measure request frame */ - A_UINT32 dialog_token; - A_UINT32 number_bursts; /* zero keep sending until cancel, bigger than 0 means times e.g. 1,2 */ - A_UINT32 burst_interval; /* unit in mill seconds, interval between consecutive burst */ - A_UINT32 burst_cycle; /* times cycle through within one burst */ - A_UINT32 tx_power; /* for path frame */ - A_UINT32 off_duration; /* uint in mill seconds, channel off duraiton for path loss frame sending */ - wmi_mac_addr dest_mac; /* multicast DA, for path loss frame */ - A_UINT32 num_chans; + A_UINT32 tlv_header; + A_UINT32 vdev_id; /* home vdev id */ + A_UINT32 meas_token; /* from measure request frame */ + A_UINT32 dialog_token; + A_UINT32 number_bursts; /* zero keep sending until cancel, bigger than 0 means times e.g. 1,2 */ + A_UINT32 burst_interval; /* unit in mill seconds, interval between consecutive burst*/ + A_UINT32 burst_cycle; /* times cycle through within one burst */ + A_UINT32 tx_power; /* for path frame */ + A_UINT32 off_duration; /* uint in mill seconds, channel off duraiton for path loss frame sending */ + wmi_mac_addr dest_mac; /* multicast DA, for path loss frame */ + A_UINT32 num_chans; } wmi_vdev_plmreq_start_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 meas_token; /* same value from req */ + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 meas_token; /* same value from req*/ } wmi_vdev_plmreq_stop_cmd_fixed_param; typedef struct { - /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_p2p_set_noa_cmd_fixed_param */ - A_UINT32 tlv_header; - /* unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /* enable/disable NoA */ - A_UINT32 enable; - /** number of NoA desc. In the TLV noa_descriptor[] */ - A_UINT32 num_noa; - /** - * TLV (tag length value ) paramerters follow the pattern structure. - * TLV contain NoA desc with num of num_noa - */ + /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_p2p_set_noa_cmd_fixed_param */ + A_UINT32 tlv_header; + /* unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /* enable/disable NoA */ + A_UINT32 enable; + /** number of NoA desc. In the TLV noa_descriptor[] */ + A_UINT32 num_noa; + /** + * TLV (tag length value) paramerters follow the pattern structure. + * TLV contain NoA desc with num of num_noa + */ } wmi_p2p_set_noa_cmd_fixed_param; typedef struct { - /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_unit_test_cmd_fixed_param */ - A_UINT32 tlv_header; - /* unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /* Identify the wlan module */ - A_UINT32 module_id; - /* Num of test arguments passed */ - A_UINT32 num_args; + /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_unit_test_cmd_fixed_param */ + A_UINT32 tlv_header; + /* unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /* Identify the wlan module */ + A_UINT32 module_id; + /* Num of test arguments passed */ + A_UINT32 num_args; /** - * TLV (tag length value ) parameters follow the wmi_roam_chan_list + * TLV (tag length value) parameters follow the wmi_roam_chan_list * structure. The TLV's are: - * A_UINT32 args[]; + * A_UINT32 args[]; **/ } wmi_unit_test_cmd_fixed_param; @@ -10788,226 +10329,216 @@ typedef struct { * after it received WMI_ROAM_SYNCH_EVENTID. */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_synch_complete_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_synch_complete_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; } wmi_roam_synch_complete_fixed_param; + typedef enum { - RECOVERY_SIM_ASSERT = 0x01, - RECOVERY_SIM_NO_DETECT = 0x02, - RECOVERY_SIM_CTR_EP_FULL = 0x03, - RECOVERY_SIM_EMPTY_POINT = 0x04, - RECOVERY_SIM_STACK_OV = 0x05, - RECOVERY_SIM_INFINITE_LOOP = 0x06, - RECOVERY_SIM_PCIE_LINKDOWN = 0x07, - RECOVERY_SIM_SELF_RECOVERY = 0x08, + RECOVERY_SIM_ASSERT = 0x01, + RECOVERY_SIM_NO_DETECT = 0x02, + RECOVERY_SIM_CTR_EP_FULL = 0x03, + RECOVERY_SIM_EMPTY_POINT = 0x04, + RECOVERY_SIM_STACK_OV = 0x05, + RECOVERY_SIM_INFINITE_LOOP = 0x06, + RECOVERY_SIM_PCIE_LINKDOWN = 0x07, + RECOVERY_SIM_SELF_RECOVERY = 0x08, } RECOVERY_SIM_TYPE; /* WMI_FORCE_FW_HANG_CMDID */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_FORCE_FW_HANG_CMD_fixed_param */ - A_UINT32 type; /*0:unused 1: ASSERT, 2: not respond detect command,3: simulate ep-full(),4:... */ - A_UINT32 delay_time_ms; /*0xffffffff means the simulate will delay for random time (0 ~0xffffffff ms) */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_FORCE_FW_HANG_CMD_fixed_param */ + A_UINT32 type; /*0:unused 1: ASSERT, 2: not respond detect command,3: simulate ep-full(),4:...*/ + A_UINT32 delay_time_ms; /*0xffffffff means the simulate will delay for random time (0 ~0xffffffff ms)*/ } WMI_FORCE_FW_HANG_CMD_fixed_param; typedef enum { - WMI_MCAST_FILTER_SET = 1, - WMI_MCAST_FILTER_DELETE + WMI_MCAST_FILTER_SET = 1, + WMI_MCAST_FILTER_DELETE } WMI_SET_SINGLE_MCAST_FILTER_OP; typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 index; - A_UINT32 action; - wmi_mac_addr mcastbdcastaddr; + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 index; + A_UINT32 action; + wmi_mac_addr mcastbdcastaddr; } WMI_SET_MCASTBCAST_FILTER_CMD_fixed_param; typedef enum { - WMI_MULTIPLE_MCAST_FILTER_CLEAR = 1, /* clear all previous mc list */ - /* clear all previous mc list, and set new list */ - WMI_MULTIPLE_MCAST_FILTER_SET, - WMI_MULTIPLE_MCAST_FILTER_DELETE, /* delete one/multiple mc list */ - WMI_MULTIPLE_MCAST_FILTER_ADD /* add one/multiple mc list */ + WMI_MULTIPLE_MCAST_FILTER_CLEAR = 1, /* clear all previous mc list */ + WMI_MULTIPLE_MCAST_FILTER_SET, /* clear all previous mc list, and set new list */ + WMI_MULTIPLE_MCAST_FILTER_DELETE, /* delete one/multiple mc list */ + WMI_MULTIPLE_MCAST_FILTER_ADD /* add one/multiple mc list */ } WMI_MULTIPLE_MCAST_FILTER_OP; typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 operation; /* refer WMI_MULTIPLE_MCAST_FILTER_OP */ - /* number of elements in the subsequent mcast addr list */ - A_UINT32 num_mcastaddrs; - /** - * TLV (tag length value) parameters follow the - * structure. The TLV's are: - * wmi_mac_addr mcastaddr_list[num_mcastaddrs]; - */ + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 operation; /* refer WMI_MULTIPLE_MCAST_FILTER_OP */ + A_UINT32 num_mcastaddrs; /* number of elements in the subsequent mcast addr list */ +/** + * TLV (tag length value) parameters follow the + * structure. The TLV's are: + * wmi_mac_addr mcastaddr_list[num_mcastaddrs]; + */ } WMI_SET_MULTIPLE_MCAST_FILTER_CMD_fixed_param; /* WMI_DBGLOG_TIME_STAMP_SYNC_CMDID */ typedef enum { - WMI_TIME_STAMP_SYNC_MODE_MS, /* millisecond units */ - WMI_TIME_STAMP_SYNC_MODE_US, /* microsecond units */ + WMI_TIME_STAMP_SYNC_MODE_MS, /* millisecond units */ + WMI_TIME_STAMP_SYNC_MODE_US, /* microsecond units */ } WMI_TIME_STAMP_SYNC_MODE; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_dbglog_time_stamp_sync_cmd_fixed_param - */ - A_UINT32 tlv_header; - /* 0: millisec, 1: microsec (see WMI_TIME_STAMP_SYNC_MODE) */ - A_UINT32 mode; - A_UINT32 time_stamp_low; /* lower 32 bits of remote time stamp */ - A_UINT32 time_stamp_high; /* higher 32 bits of remote time stamp */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_dbglog_time_stamp_sync_cmd_fixed_param */ + A_UINT32 mode; /* 0: millisec, 1: microsec (see WMI_TIME_STAMP_SYNC_MODE) */ + A_UINT32 time_stamp_low; /* lower 32 bits of remote time stamp */ + A_UINT32 time_stamp_high; /* higher 32 bits of remote time stamp */ } WMI_DBGLOG_TIME_STAMP_SYNC_CMD_fixed_param; - /* GPIO Command and Event data structures */ /* WMI_GPIO_CONFIG_CMDID */ enum { - WMI_GPIO_PULL_NONE, - WMI_GPIO_PULL_UP, - WMI_GPIO_PULL_DOWN, + WMI_GPIO_PULL_NONE, + WMI_GPIO_PULL_UP, + WMI_GPIO_PULL_DOWN, }; enum { - WMI_GPIO_INTTYPE_DISABLE, - WMI_GPIO_INTTYPE_RISING_EDGE, - WMI_GPIO_INTTYPE_FALLING_EDGE, - WMI_GPIO_INTTYPE_BOTH_EDGE, - WMI_GPIO_INTTYPE_LEVEL_LOW, - WMI_GPIO_INTTYPE_LEVEL_HIGH + WMI_GPIO_INTTYPE_DISABLE, + WMI_GPIO_INTTYPE_RISING_EDGE, + WMI_GPIO_INTTYPE_FALLING_EDGE, + WMI_GPIO_INTTYPE_BOTH_EDGE, + WMI_GPIO_INTTYPE_LEVEL_LOW, + WMI_GPIO_INTTYPE_LEVEL_HIGH }; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_gpio_config_cmd_fixed_param */ - A_UINT32 gpio_num; /* GPIO number to be setup */ - A_UINT32 input; /* 0 - Output/ 1 - Input */ - A_UINT32 pull_type; /* Pull type defined above */ - A_UINT32 intr_mode; /* Interrupt mode defined above (Input) */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_gpio_config_cmd_fixed_param */ + A_UINT32 gpio_num; /* GPIO number to be setup */ + A_UINT32 input; /* 0 - Output/ 1 - Input */ + A_UINT32 pull_type; /* Pull type defined above */ + A_UINT32 intr_mode; /* Interrupt mode defined above (Input) */ } wmi_gpio_config_cmd_fixed_param; /* WMI_GPIO_OUTPUT_CMDID */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_gpio_output_cmd_fixed_param */ - A_UINT32 gpio_num; /* GPIO number to be setup */ - A_UINT32 set; /* Set the GPIO pin */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_gpio_output_cmd_fixed_param */ + A_UINT32 gpio_num; /* GPIO number to be setup */ + A_UINT32 set; /* Set the GPIO pin*/ } wmi_gpio_output_cmd_fixed_param; /* WMI_GPIO_INPUT_EVENTID */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_gpio_input_event_fixed_param */ - A_UINT32 gpio_num; /* GPIO number which changed state */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_gpio_input_event_fixed_param */ + A_UINT32 gpio_num; /* GPIO number which changed state */ } wmi_gpio_input_event_fixed_param; /* WMI_P2P_DISC_EVENTID */ enum { - P2P_DISC_SEARCH_PROB_REQ_HIT = 0, /* prob req hit the p2p find pattern */ - P2P_DISC_SEARCH_PROB_RESP_HIT, /* prob resp hit the p2p find pattern */ + P2P_DISC_SEARCH_PROB_REQ_HIT = 0, /* prob req hit the p2p find pattern */ + P2P_DISC_SEARCH_PROB_RESP_HIT, /* prob resp hit the p2p find pattern */ }; enum { - P2P_DISC_MODE_SEARCH = 0, /* do search when p2p find offload */ - P2P_DISC_MODE_LISTEN, /* do listen when p2p find offload */ - P2P_DISC_MODE_AUTO, /* do listen and search when p2p find offload */ + P2P_DISC_MODE_SEARCH = 0, /* do search when p2p find offload*/ + P2P_DISC_MODE_LISTEN, /* do listen when p2p find offload*/ + P2P_DISC_MODE_AUTO, /* do listen and search when p2p find offload*/ }; enum { - P2P_DISC_PATTERN_TYPE_BSSID = 0, /* BSSID pattern */ - P2P_DISC_PATTERN_TYPE_DEV_NAME, /* device name pattern */ + P2P_DISC_PATTERN_TYPE_BSSID = 0, /* BSSID pattern */ + P2P_DISC_PATTERN_TYPE_DEV_NAME, /* device name pattern */ }; typedef struct { - A_UINT32 vdev_id; - A_UINT32 reason; /* P2P DISC wake up reason */ + A_UINT32 vdev_id; + A_UINT32 reason; /* P2P DISC wake up reason*/ } wmi_p2p_disc_event; -typedef WMI_GTK_OFFLOAD_STATUS_EVENT_fixed_param -WOW_EVENT_INFO_SECTION_GTKIGTK; +typedef WMI_GTK_OFFLOAD_STATUS_EVENT_fixed_param WOW_EVENT_INFO_SECTION_GTKIGTK; typedef enum { - WMI_FAKE_TXBFER_SEND_NDPA, - WMI_FAKE_TXBFER_SEND_MU, - WMI_FAKE_TXBFER_NDPA_FBTYPE, - WMI_FAKE_TXBFER_NDPA_NCIDX, - WMI_FAKE_TXBFER_NDPA_POLL, - WMI_FAKE_TXBFER_NDPA_BW, - WMI_FAKE_TXBFER_NDPA_PREAMBLE, - WMI_FAKE_TXBFER_NDPA_RATE, - WMI_FAKE_TXBFER_NDP_BW, - WMI_FAKE_TXBFER_NDP_NSS, - WMI_TXBFEE_ENABLE_UPLOAD_H, - WMI_TXBFEE_ENABLE_CAPTURE_H, - WMI_TXBFEE_SET_CBF_TBL, - WMI_TXBFEE_CBF_TBL_LSIG, - WMI_TXBFEE_CBF_TBL_SIGA1, - WMI_TXBFEE_CBF_TBL_SIGA2, - WMI_TXBFEE_CBF_TBL_SIGB, - WMI_TXBFEE_CBF_TBL_PAD, - WMI_TXBFEE_CBF_TBL_DUR, - WMI_TXBFEE_SU_NCIDX, - WMI_TXBFEE_CBIDX, - WMI_TXBFEE_NGIDX, + WMI_FAKE_TXBFER_SEND_NDPA, + WMI_FAKE_TXBFER_SEND_MU, + WMI_FAKE_TXBFER_NDPA_FBTYPE, + WMI_FAKE_TXBFER_NDPA_NCIDX, + WMI_FAKE_TXBFER_NDPA_POLL, + WMI_FAKE_TXBFER_NDPA_BW, + WMI_FAKE_TXBFER_NDPA_PREAMBLE, + WMI_FAKE_TXBFER_NDPA_RATE, + WMI_FAKE_TXBFER_NDP_BW, + WMI_FAKE_TXBFER_NDP_NSS, + WMI_TXBFEE_ENABLE_UPLOAD_H, + WMI_TXBFEE_ENABLE_CAPTURE_H, + WMI_TXBFEE_SET_CBF_TBL, + WMI_TXBFEE_CBF_TBL_LSIG, + WMI_TXBFEE_CBF_TBL_SIGA1, + WMI_TXBFEE_CBF_TBL_SIGA2, + WMI_TXBFEE_CBF_TBL_SIGB, + WMI_TXBFEE_CBF_TBL_PAD, + WMI_TXBFEE_CBF_TBL_DUR, + WMI_TXBFEE_SU_NCIDX, + WMI_TXBFEE_CBIDX, + WMI_TXBFEE_NGIDX, } WMI_TXBF_PARAM_ID; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_txbf_cmd_fixed_param */ - /** parameter id */ - A_UINT32 param_id; - /** parameter value */ - A_UINT32 param_value; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_txbf_cmd_fixed_param */ + /** parameter id */ + A_UINT32 param_id; + /** parameter value */ + A_UINT32 param_value; } wmi_txbf_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_upload_h_hdr */ - A_UINT32 h_length; - A_UINT32 cv_length; - /* This TLV is followed by array of bytes: - * // h_cv info buffer - * A_UINT8 bufp[]; - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_upload_h_hdr */ + A_UINT32 h_length; + A_UINT32 cv_length; +/* This TLV is followed by array of bytes: + * A_UINT8 bufp[]; <-- h_cv info buffer + */ } wmi_upload_h_hdr; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_capture_h_event_hdr */ - A_UINT32 svd_num; - A_UINT32 tone_num; - A_UINT32 reserved; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_capture_h_event_hdr */ + A_UINT32 svd_num; + A_UINT32 tone_num; + A_UINT32 reserved; } wmi_capture_h_event_hdr; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_avoid_freq_range_desc */ - A_UINT32 start_freq; /* start frequency, not channel center freq */ - A_UINT32 end_freq; /* end frequency */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_avoid_freq_range_desc */ + A_UINT32 start_freq; /* start frequency, not channel center freq */ + A_UINT32 end_freq; /* end frequency */ } wmi_avoid_freq_range_desc; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_avoid_freq_ranges_event_fixed_param */ - /* bad channel range count, multi range is allowed, 0 means all channel clear */ - A_UINT32 num_freq_ranges; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_avoid_freq_ranges_event_fixed_param */ + /* bad channel range count, multi range is allowed, 0 means all channel clear */ + A_UINT32 num_freq_ranges; - /* The TLVs will follow. - * multi range with num_freq_ranges, LTE advance multi carrier, CDMA,etc - * wmi_avoid_freq_range_desc avd_freq_range[]; // message buffer, NULL terminated - */ +/* The TLVs will follow. + * multi range with num_freq_ranges, LTE advance multi carrier, CDMA,etc + * wmi_avoid_freq_range_desc avd_freq_range[]; <-- message buffer, NULL terminated + */ } wmi_avoid_freq_ranges_event_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_gtk_rekey_fail_event_fixed_param */ - /** Reserved for future use */ - A_UINT32 reserved0; - A_UINT32 vdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_gtk_rekey_fail_event_fixed_param */ + /** Reserved for future use */ + A_UINT32 reserved0; + A_UINT32 vdev_id; } wmi_gtk_rekey_fail_event_fixed_param; enum wmm_ac_downgrade_policy { - WMM_AC_DOWNGRADE_DEPRIO, - WMM_AC_DOWNGRADE_DROP, - WMM_AC_DOWNGRADE_INVALID, + WMM_AC_DOWNGRADE_DEPRIO, + WMM_AC_DOWNGRADE_DROP, + WMM_AC_DOWNGRADE_INVALID, }; /* WMM EDCA Params type */ @@ -11016,169 +10547,173 @@ enum wmm_ac_downgrade_policy { #define WMM_PARAM_TYPE_11AX_EDCA 1 typedef struct { - A_UINT32 tlv_header; - A_UINT32 cwmin; - A_UINT32 cwmax; - A_UINT32 aifs; - A_UINT32 txoplimit; - A_UINT32 acm; - A_UINT32 no_ack; + A_UINT32 tlv_header; + A_UINT32 cwmin; + A_UINT32 cwmax; + A_UINT32 aifs; + A_UINT32 txoplimit; + A_UINT32 acm; + A_UINT32 no_ack; } wmi_wmm_vparams; typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; - wmi_wmm_vparams wmm_params[4]; /* 0 be, 1 bk, 2 vi, 3 vo */ - A_UINT32 wmm_param_type; /* see WMM_PARAM_TYPE_xxx defs */ + A_UINT32 tlv_header; + A_UINT32 vdev_id; + wmi_wmm_vparams wmm_params[4]; /* 0 be, 1 bk, 2 vi, 3 vo */ + A_UINT32 wmm_param_type; /* see WMM_PARAM_TYPE_xxx defs */ } wmi_vdev_set_wmm_params_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 gtxRTMask[2]; /* for HT and VHT rate masks */ - A_UINT32 userGtxMask; /* host request for GTX mask */ - A_UINT32 gtxPERThreshold; /* default: 10% */ - A_UINT32 gtxPERMargin; /* default: 2% */ - A_UINT32 gtxTPCstep; /* default: 1 */ - A_UINT32 gtxTPCMin; /* default: 5 */ - A_UINT32 gtxBWMask; /* 20/40/80/160 Mhz */ + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 gtxRTMask[2]; /* for HT and VHT rate masks */ + A_UINT32 userGtxMask; /* host request for GTX mask */ + A_UINT32 gtxPERThreshold; /* default: 10% */ + A_UINT32 gtxPERMargin; /* default: 2% */ + A_UINT32 gtxTPCstep; /* default: 1 */ + A_UINT32 gtxTPCMin; /* default: 5 */ + A_UINT32 gtxBWMask; /* 20/40/80/160 Mhz */ } wmi_vdev_set_gtx_params_cmd_fixed_param; -typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 ac; - A_UINT32 medium_time_us; /* per second unit, the Admitted time granted, unit in micro seconds */ - A_UINT32 downgrade_type; +typedef struct +{ + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 ac; + A_UINT32 medium_time_us; /* per second unit, the Admitted time granted, unit in micro seconds */ + A_UINT32 downgrade_type; } wmi_vdev_wmm_addts_cmd_fixed_param; -typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 ac; +typedef struct +{ + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 ac; } wmi_vdev_wmm_delts_cmd_fixed_param; /* DEPRECATED */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_dfs_enable_cmd_fixed_param */ - /** Reserved for future use */ - A_UINT32 reserved0; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_dfs_enable_cmd_fixed_param */ + /** Reserved for future use */ + A_UINT32 reserved0; } wmi_pdev_dfs_enable_cmd_fixed_param; /* DEPRECATED */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_dfs_disable_cmd_fixed_param */ - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_dfs_disable_cmd_fixed_param */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; } wmi_pdev_dfs_disable_cmd_fixed_param; typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_dfs_phyerr_filter_ena_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_dfs_phyerr_filter_ena_cmd_fixed_param + */ + A_UINT32 tlv_header; + + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; } wmi_dfs_phyerr_filter_ena_cmd_fixed_param; typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_dfs_phyerr_filter_dis_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_dfs_phyerr_filter_dis_cmd_fixed_param + */ + A_UINT32 tlv_header; + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; } wmi_dfs_phyerr_filter_dis_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; - A_UINT32 pdev_id; + A_UINT32 tlv_header; + A_UINT32 pdev_id; } wmi_pdev_dfs_phyerr_offload_enable_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; - A_UINT32 pdev_id; + A_UINT32 tlv_header; + A_UINT32 pdev_id; } wmi_pdev_dfs_phyerr_offload_disable_cmd_fixed_param; typedef enum { - QUICK_OCAC = 0, - EXTENSIVE_OCAC, + QUICK_OCAC = 0, + EXTENSIVE_OCAC, } WMI_ADFS_OCAC_MODE; typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 ocac_mode; /* WMI_ADFS_OCAC_MODE */ - A_UINT32 min_duration_ms; /* in milliseconds */ - A_UINT32 max_duration_ms; /* in milliseconds */ - A_UINT32 chan_freq; /* in MHz */ - A_UINT32 chan_width; /* in MHz */ - A_UINT32 center_freq; /* in MHz */ + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 ocac_mode; /* WMI_ADFS_OCAC_MODE */ + A_UINT32 min_duration_ms; /* in milliseconds */ + A_UINT32 max_duration_ms; /* in milliseconds */ + A_UINT32 chan_freq; /* in MHz */ + A_UINT32 chan_width; /* in MHz */ + A_UINT32 center_freq; /* in MHz */ } wmi_vdev_adfs_ch_cfg_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; + A_UINT32 tlv_header; + A_UINT32 vdev_id; } wmi_vdev_adfs_ocac_abort_cmd_fixed_param; typedef enum { - IN_SERVICE_MODE = 0, - OCAC_MODE, + IN_SERVICE_MODE = 0, + OCAC_MODE, } WMI_DFS_RADAR_DETECTION_MODE; typedef struct { - A_UINT32 tlv_header; - A_UINT32 pdev_id; - /* In-service mode or O-CAC mode */ - A_UINT32 detection_mode; /* WMI_DFS_RADAR_DETECTION_MODE */ - A_UINT32 chan_freq; /* in MHz */ - A_UINT32 chan_width; /* in MHz */ - A_UINT32 detector_id; - A_UINT32 segment_id; - A_UINT32 timestamp; - A_UINT32 is_chirp; + A_UINT32 tlv_header; + A_UINT32 pdev_id; + /* In-service mode or O-CAC mode */ + A_UINT32 detection_mode; /* WMI_DFS_RADAR_DETECTION_MODE */ + A_UINT32 chan_freq; /* in MHz */ + A_UINT32 chan_width; /* in MHz */ + A_UINT32 detector_id; + A_UINT32 segment_id; + A_UINT32 timestamp; + A_UINT32 is_chirp; } wmi_pdev_dfs_radar_detection_event_fixed_param; typedef enum { - OCAC_COMPLETE = 0, - OCAC_ABORT, + OCAC_COMPLETE = 0, + OCAC_ABORT, } WMI_VDEV_OCAC_COMPLETE_STATUS; typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 chan_freq; /* in MHz */ - A_UINT32 chan_width; /* in MHz */ - A_UINT32 center_freq; /* in MHz */ - A_UINT32 status; /* WMI_VDEV_OCAC_COMPLETE_STATUS */ + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 chan_freq; /* in MHz */ + A_UINT32 chan_width; /* in MHz */ + A_UINT32 center_freq; /* in MHz */ + A_UINT32 status; /* WMI_VDEV_OCAC_COMPLETE_STATUS */ } wmi_vdev_adfs_ocac_complete_event_fixed_param; typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; + A_UINT32 tlv_header; + A_UINT32 vdev_id; } wmi_vdev_dfs_cac_complete_event_fixed_param; + /** TDLS COMMANDS */ /* WMI_TDLS_SET_STATE_CMDID */ /* TDLS State */ enum wmi_tdls_state { - /** TDLS disable */ - WMI_TDLS_DISABLE, - /** TDLS enabled - no firmware connection tracking/notifications */ - WMI_TDLS_ENABLE_PASSIVE, - /** TDLS enabled - with firmware connection tracking/notifications */ - WMI_TDLS_ENABLE_ACTIVE, - /* TDLS enabled - firmware waits for peer mac for connection tracking */ - WMI_TDLS_ENABLE_ACTIVE_EXTERNAL_CONTROL, - /** TDLS enabled - TDLS connection tracking is done in host */ - WMI_TDLS_ENABLE_CONNECTION_TRACKER_IN_HOST, + /** TDLS disable */ + WMI_TDLS_DISABLE, + /** TDLS enabled - no firmware connection tracking/notifications */ + WMI_TDLS_ENABLE_PASSIVE, + /** TDLS enabled - with firmware connection tracking/notifications */ + WMI_TDLS_ENABLE_ACTIVE, + /** TDLS enabled - firmware waits for peer mac for connection tracking */ + WMI_TDLS_ENABLE_ACTIVE_EXTERNAL_CONTROL, + /** TDLS enabled - TDLS connection tracking is done in host */ + WMI_TDLS_ENABLE_CONNECTION_TRACKER_IN_HOST, }; /* TDLS Options */ @@ -11187,102 +10722,99 @@ enum wmi_tdls_state { #define WMI_TDLS_SLEEP_STA_EN (1 << 2) /** TDLS Sleep STA support (not currently supported) */ typedef struct { - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tdls_set_state_cmd_fixed_param */ - A_UINT32 tlv_header; - /** unique id identifying the VDEV */ - A_UINT32 vdev_id; - /** Enable/Disable TDLS (wmi_tdls_state) */ - A_UINT32 state; - /* Duration (in ms) over which to calculate tx/rx threshold - * to trigger TDLS Discovery - */ - A_UINT32 notification_interval_ms; - /** number of packets OVER which notify/suggest TDLS Discovery: - * if current tx pps counter / notification interval >= threshold - * then a notification will be sent to host to advise TDLS Discovery */ - A_UINT32 tx_discovery_threshold; - /** number of packets UNDER which notify/suggest TDLS Teardown: - * if current tx pps counter / notification interval < threshold - * then a notification will be sent to host to advise TDLS Tear down */ - A_UINT32 tx_teardown_threshold; - /** Absolute RSSI value under which notify/suggest TDLS Teardown */ - A_INT32 rssi_teardown_threshold; - /** Peer RSSI < (AP RSSI + delta) will trigger a teardown */ - A_INT32 rssi_delta; - /** TDLS Option Control - * Off-Channel, Buffer STA, (later)Sleep STA support */ - A_UINT32 tdls_options; - /* Buffering time in number of beacon intervals */ - A_UINT32 tdls_peer_traffic_ind_window; - /* Wait time for PTR frame */ - A_UINT32 tdls_peer_traffic_response_timeout_ms; - /* Self PUAPSD mask */ - A_UINT32 tdls_puapsd_mask; - /* Inactivity timeout */ - A_UINT32 tdls_puapsd_inactivity_time_ms; - /* Max of rx frame during SP */ - A_UINT32 tdls_puapsd_rx_frame_threshold; - /* Duration (in ms) over which to check whether TDLS link - * needs to be torn down - */ - A_UINT32 teardown_notification_ms; - /* STA kickout threshold for TDLS peer */ - A_UINT32 tdls_peer_kickout_threshold; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tdls_set_state_cmd_fixed_param */ + A_UINT32 tlv_header; + /** unique id identifying the VDEV */ + A_UINT32 vdev_id; + /** Enable/Disable TDLS (wmi_tdls_state) */ + A_UINT32 state; + /** Duration (in ms) over which to calculate tx/rx threshold to trigger TDLS Discovery */ + A_UINT32 notification_interval_ms; + /** number of packets OVER which notify/suggest TDLS Discovery: + * if current tx pps counter / notification interval >= threshold + * then a notification will be sent to host to advise TDLS Discovery */ + A_UINT32 tx_discovery_threshold; + /** number of packets UNDER which notify/suggest TDLS Teardown: + * if current tx pps counter / notification interval < threshold + * then a notification will be sent to host to advise TDLS Tear down */ + A_UINT32 tx_teardown_threshold; + /** Absolute RSSI value under which notify/suggest TDLS Teardown */ + A_INT32 rssi_teardown_threshold; + /** Peer RSSI < (AP RSSI + delta) will trigger a teardown */ + A_INT32 rssi_delta; + /** TDLS Option Control + * Off-Channel, Buffer STA, (later)Sleep STA support */ + A_UINT32 tdls_options; + /* Buffering time in number of beacon intervals */ + A_UINT32 tdls_peer_traffic_ind_window; + /* Wait time for PTR frame */ + A_UINT32 tdls_peer_traffic_response_timeout_ms; + /* Self PUAPSD mask */ + A_UINT32 tdls_puapsd_mask; + /* Inactivity timeout */ + A_UINT32 tdls_puapsd_inactivity_time_ms; + /* Max of rx frame during SP */ + A_UINT32 tdls_puapsd_rx_frame_threshold; + /**Duration (in ms) over which to check whether TDLS link needs to be torn down */ + A_UINT32 teardown_notification_ms; + /**STA kickout threshold for TDLS peer */ + A_UINT32 tdls_peer_kickout_threshold; } wmi_tdls_set_state_cmd_fixed_param; /* WMI_TDLS_PEER_UPDATE_CMDID */ enum wmi_tdls_peer_state { - /** tx peer TDLS link setup now starting, traffic to DA should be - * paused (except TDLS frames) until state is moved to CONNECTED (or - * TEARDOWN on setup failure) */ - WMI_TDLS_PEER_STATE_PEERING, - /** tx peer TDLS link established, running (all traffic to DA unpaused) */ - WMI_TDLS_PEER_STATE_CONNECTED, - /** tx peer TDLS link tear down started (link paused, any frames - * queued for DA will be requeued back through the AP)*/ - WMI_TDLS_PEER_STATE_TEARDOWN, - /* Add peer mac into connection table */ - WMI_TDLS_PEER_ADD_MAC_ADDR, - /* Remove peer mac from connection table */ - WMI_TDLS_PEER_REMOVE_MAC_ADDR, + /** tx peer TDLS link setup now starting, traffic to DA should be + * paused (except TDLS frames) until state is moved to CONNECTED (or + * TEARDOWN on setup failure) */ + WMI_TDLS_PEER_STATE_PEERING, + /** tx peer TDLS link established, running (all traffic to DA unpaused) */ + WMI_TDLS_PEER_STATE_CONNECTED, + /** tx peer TDLS link tear down started (link paused, any frames + * queued for DA will be requeued back through the AP)*/ + WMI_TDLS_PEER_STATE_TEARDOWN, + /** Add peer mac into connection table */ + WMI_TDLS_PEER_ADD_MAC_ADDR, + /** Remove peer mac from connection table */ + WMI_TDLS_PEER_REMOVE_MAC_ADDR, }; /* NB: These defines are fixed, and cannot be changed without breaking WMI compatibility */ +#define WMI_TDLS_MAX_SUPP_CHANNELS 128 #define WMI_TDLS_MAX_SUPP_OPER_CLASSES 32 typedef struct { - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tdls_peer_capabilities */ - A_UINT32 tlv_header; - /* Peer's QoS Info - for U-APSD */ - /* AC FLAGS - accessed through macros below */ - /* Ack, SP, More Data Ack - accessed through macros below */ - A_UINT32 peer_qos; - /*TDLS Peer's U-APSD Buffer STA Support */ - A_UINT32 buff_sta_support; - /*TDLS off channel related params */ - A_UINT32 off_chan_support; - A_UINT32 peer_curr_operclass; - A_UINT32 self_curr_operclass; - /* Number of channels available for off channel operation */ - A_UINT32 peer_chan_len; - A_UINT32 peer_operclass_len; - A_UINT8 peer_operclass[WMI_TDLS_MAX_SUPP_OPER_CLASSES]; - /* Is peer initiator or responder of TDLS setup request */ - A_UINT32 is_peer_responder; - /* Preferred off channel number as configured by user */ - A_UINT32 pref_offchan_num; - /* Preferred off channel bandwidth as configured by user */ - A_UINT32 pref_offchan_bw; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tdls_peer_capabilities */ + A_UINT32 tlv_header; + /* Peer's QoS Info - for U-APSD */ + /* AC FLAGS - accessed through macros below */ + /* Ack, SP, More Data Ack - accessed through macros below */ + A_UINT32 peer_qos; + /*TDLS Peer's U-APSD Buffer STA Support*/ + A_UINT32 buff_sta_support; + /*TDLS off channel related params */ + A_UINT32 off_chan_support; + A_UINT32 peer_curr_operclass; + A_UINT32 self_curr_operclass; + /* Number of channels available for off channel operation */ + A_UINT32 peer_chan_len; + A_UINT32 peer_operclass_len; + A_UINT8 peer_operclass[WMI_TDLS_MAX_SUPP_OPER_CLASSES]; + /* Is peer initiator or responder of TDLS setup request */ + A_UINT32 is_peer_responder; + /* Preferred off channel number as configured by user */ + A_UINT32 pref_offchan_num; + /* Preferred off channel bandwidth as configured by user */ + A_UINT32 pref_offchan_bw; - /** Followed by the variable length TLV peer_chan_list: - * wmi_channel peer_chan_list[]. - * Array size would be peer_chan_len. - * This array is intersected channels which is supported by both peer - * and DUT. freq1 in chan_info shall be same as mhz, freq2 shall be 0. - * FW shall compute BW for an offchan based on peer's ht/vht cap - * received in peer_assoc cmd during change STA operation - */ -} wmi_tdls_peer_capabilities; + /** Followed by the variable length TLV peer_chan_list: + * wmi_channel peer_chan_list[]. + * Array size would be peer_chan_len. + * This array is intersected channels which is supported by both peer + * and DUT. freq1 in chan_info shall be same as mhz, freq2 shall be 0. + * FW shall compute BW for an offchan based on peer's ht/vht cap + * received in peer_assoc cmd during change STA operation + */ + } wmi_tdls_peer_capabilities; #define WMI_TDLS_QOS_VO_FLAG 0 #define WMI_TDLS_QOS_VI_FLAG 1 @@ -11292,244 +10824,236 @@ typedef struct { #define WMI_TDLS_QOS_SP_FLAG 5 #define WMI_TDLS_QOS_MOREDATA_FLAG 7 -#define WMI_TDLS_PEER_SET_QOS_FLAG(ppeer_caps, flag) do { \ - (ppeer_caps)->peer_qos |= (1 << flag); \ -} while (0) -#define WMI_TDLS_PEER_GET_QOS_FLAG(ppeer_caps, flag) \ - (((ppeer_caps)->peer_qos & (1 << flag)) >> flag) +#define WMI_TDLS_PEER_SET_QOS_FLAG(ppeer_caps,flag) do { \ + (ppeer_caps)->peer_qos |= (1 << flag); \ + } while (0) +#define WMI_TDLS_PEER_GET_QOS_FLAG(ppeer_caps,flag) \ + (((ppeer_caps)->peer_qos & (1 << flag)) >> flag) #define WMI_SET_TDLS_PEER_VO_UAPSD(ppeer_caps) \ - WMI_TDLS_PEER_SET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_VO_FLAG) + WMI_TDLS_PEER_SET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_VO_FLAG) #define WMI_GET_TDLS_PEER_VO_UAPSD(ppeer_caps) \ - WMI_TDLS_PEER_GET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_VO_FLAG) + WMI_TDLS_PEER_GET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_VO_FLAG) #define WMI_SET_TDLS_PEER_VI_UAPSD(ppeer_caps) \ - WMI_TDLS_PEER_SET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_VI_FLAG) + WMI_TDLS_PEER_SET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_VI_FLAG) #define WMI_GET_TDLS_PEER_VI_UAPSD(ppeer_caps) \ - WMI_TDLS_PEER_GET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_VI_FLAG) + WMI_TDLS_PEER_GET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_VI_FLAG) #define WMI_SET_TDLS_PEER_BK_UAPSD(ppeer_caps) \ - WMI_TDLS_PEER_SET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_BK_FLAG) + WMI_TDLS_PEER_SET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_BK_FLAG) #define WMI_GET_TDLS_PEER_BK_UAPSD(ppeer_caps) \ - WMI_TDLS_PEER_GET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_BK_FLAG) + WMI_TDLS_PEER_GET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_BK_FLAG) #define WMI_SET_TDLS_PEER_BE_UAPSD(ppeer_caps) \ - WMI_TDLS_PEER_SET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_BE_FLAG) + WMI_TDLS_PEER_SET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_BE_FLAG) #define WMI_GET_TDLS_PEER_BE_UAPSD(ppeer_caps) \ - WMI_TDLS_PEER_GET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_BE_FLAG) -#define WMI_SET_TDLS_PEER_ACK_UAPSD(ppeer_caps) \ - WMI_TDLS_PEER_SET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_ACK_FLAG) -#define WMI_GET_TDLS_PEER_ACK_UAPSD(ppeer_caps) \ - WMI_TDLS_PEER_GET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_ACK_FLAG) + WMI_TDLS_PEER_GET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_BE_FLAG) +#define WMI_SET_TDLS_PEER_ACK_UAPSD(ppeer_caps) \ + WMI_TDLS_PEER_SET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_ACK_FLAG) +#define WMI_GET_TDLS_PEER_ACK_UAPSD(ppeer_caps) \ + WMI_TDLS_PEER_GET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_ACK_FLAG) /* SP has 2 bits */ -#define WMI_SET_TDLS_PEER_SP_UAPSD(ppeer_caps, val) do { \ - (ppeer_caps)->peer_qos |= (((val)&0x3) << WMI_TDLS_QOS_SP_FLAG); \ -} while (0) +#define WMI_SET_TDLS_PEER_SP_UAPSD(ppeer_caps,val) do { \ + (ppeer_caps)->peer_qos |= (((val) & 0x3) << WMI_TDLS_QOS_SP_FLAG); \ + } while (0) #define WMI_GET_TDLS_PEER_SP_UAPSD(ppeer_caps) \ - (((ppeer_caps)->peer_qos & (0x3 << WMI_TDLS_QOS_SP_FLAG)) >> WMI_TDLS_QOS_SP_FLAG) + (((ppeer_caps)->peer_qos & (0x3 << WMI_TDLS_QOS_SP_FLAG)) >> WMI_TDLS_QOS_SP_FLAG) #define WMI_SET_TDLS_PEER_MORE_DATA_ACK_UAPSD(ppeer_caps) \ - WMI_TDLS_PEER_SET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_MOREDATA_FLAG) + WMI_TDLS_PEER_SET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_MOREDATA_FLAG) #define WMI_GET_TDLS_PEER_MORE_DATA_ACK_UAPSD(ppeer_caps) \ - WMI_TDLS_PEER_GET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_MOREDATA_FLAG) + WMI_TDLS_PEER_GET_QOS_FLAG(ppeer_caps, WMI_TDLS_QOS_MOREDATA_FLAG) -#define WMI_TDLS_SELF_SET_QOS_FLAG(pset_cmd, flag) do { \ - (pset_cmd)->tdls_puapsd_mask |= (1 << flag); \ -} while (0) -#define WMI_TDLS_SELF_GET_QOS_FLAG(pset_cmd, flag) \ - (((pset_cmd)->tdls_puapsd_mask & (1 << flag)) >> flag) + +#define WMI_TDLS_SELF_SET_QOS_FLAG(pset_cmd,flag) do { \ + (pset_cmd)->tdls_puapsd_mask |= (1 << flag); \ + } while (0) +#define WMI_TDLS_SELF_GET_QOS_FLAG(pset_cmd,flag) \ + (((pset_cmd)->tdls_puapsd_mask & (1 << flag)) >> flag) #define WMI_SET_TDLS_SELF_VO_UAPSD(pset_cmd) \ - WMI_TDLS_SELF_SET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_VO_FLAG) + WMI_TDLS_SELF_SET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_VO_FLAG) #define WMI_GET_TDLS_SELF_VO_UAPSD(pset_cmd) \ - WMI_TDLS_SELF_GET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_VO_FLAG) + WMI_TDLS_SELF_GET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_VO_FLAG) #define WMI_SET_TDLS_SELF_VI_UAPSD(pset_cmd) \ - WMI_TDLS_SELF_SET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_VI_FLAG) + WMI_TDLS_SELF_SET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_VI_FLAG) #define WMI_GET_TDLS_SELF_VI_UAPSD(pset_cmd) \ - WMI_TDLS_SELF_GET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_VI_FLAG) + WMI_TDLS_SELF_GET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_VI_FLAG) #define WMI_SET_TDLS_SELF_BK_UAPSD(pset_cmd) \ - WMI_TDLS_SELF_SET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_BK_FLAG) + WMI_TDLS_SELF_SET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_BK_FLAG) #define WMI_GET_TDLS_SELF__BK_UAPSD(pset_cmd) \ - WMI_TDLS_SELF_GET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_BK_FLAG) + WMI_TDLS_SELF_GET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_BK_FLAG) #define WMI_SET_TDLS_SELF_BE_UAPSD(pset_cmd) \ - WMI_TDLS_SELF_SET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_BE_FLAG) + WMI_TDLS_SELF_SET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_BE_FLAG) #define WMI_GET_TDLS_SELF_BE_UAPSD(pset_cmd) \ - WMI_TDLS_SELF_GET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_BE_FLAG) + WMI_TDLS_SELF_GET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_BE_FLAG) #define WMI_SET_TDLS_SELF_ACK_UAPSD(pset_cmd) \ - WMI_TDLS_SELF_SET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_ACK_FLAG) + WMI_TDLS_SELF_SET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_ACK_FLAG) #define WMI_GET_TDLS_SELF_ACK_UAPSD(pset_cmd) \ - WMI_TDLS_SELF_GET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_ACK_FLAG) + WMI_TDLS_SELF_GET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_ACK_FLAG) /* SP has 2 bits */ -#define WMI_SET_TDLS_SELF_SP_UAPSD(pset_cmd, val) do { \ - (pset_cmd)->tdls_puapsd_mask |= (((val)&0x3) << WMI_TDLS_QOS_SP_FLAG); \ -} while (0) +#define WMI_SET_TDLS_SELF_SP_UAPSD(pset_cmd,val) do { \ + (pset_cmd)->tdls_puapsd_mask |= (((val) & 0x3) << WMI_TDLS_QOS_SP_FLAG); \ + } while (0) #define WMI_GET_TDLS_SELF_SP_UAPSD(pset_cmd) \ - (((pset_cmd)->tdls_puapsd_mask & (0x3 << WMI_TDLS_QOS_SP_FLAG)) >> WMI_TDLS_QOS_SP_FLAG) + (((pset_cmd)->tdls_puapsd_mask & (0x3 << WMI_TDLS_QOS_SP_FLAG)) >> WMI_TDLS_QOS_SP_FLAG) + +#define WMI_SET_TDLS_SELF_MORE_DATA_ACK_UAPSD(pset_cmd) \ + WMI_TDLS_SELF_SET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_MOREDATA_FLAG) +#define WMI_GET_TDLS_SELF_MORE_DATA_ACK_UAPSD(pset_cmd) \ + WMI_TDLS_SELF_GET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_MOREDATA_FLAG) -#define WMI_SET_TDLS_SELF_MORE_DATA_ACK_UAPSD(pset_cmd) \ - WMI_TDLS_SELF_SET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_MOREDATA_FLAG) -#define WMI_GET_TDLS_SELF_MORE_DATA_ACK_UAPSD(pset_cmd) \ - WMI_TDLS_SELF_GET_QOS_FLAG(pset_cmd, WMI_TDLS_QOS_MOREDATA_FLAG) typedef struct { - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tdls_peer_update_cmd_fixed_param */ - A_UINT32 tlv_header; - /** unique id identifying the VDEV */ - A_UINT32 vdev_id; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /** new TDLS state for peer (wmi_tdls_peer_state) */ - A_UINT32 peer_state; - /* The TLV for wmi_tdls_peer_capabilities will follow. - * wmi_tdls_peer_capabilities peer_caps; - */ - /** Followed by the variable length TLV chan_info: - * wmi_channel chan_info[] */ + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tdls_peer_update_cmd_fixed_param */ + A_UINT32 tlv_header; + /** unique id identifying the VDEV */ + A_UINT32 vdev_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** new TDLS state for peer (wmi_tdls_peer_state) */ + A_UINT32 peer_state; + /* The TLV for wmi_tdls_peer_capabilities will follow. + * wmi_tdls_peer_capabilities peer_caps; + */ + /** Followed by the variable length TLV chan_info: + * wmi_channel chan_info[] */ } wmi_tdls_peer_update_cmd_fixed_param; /* WMI_TDLS_SET_OFFCHAN_MODE_CMDID */ + /* bitmap 20, 40, 80 or 160 MHz wide channel */ -#define WMI_TDLS_OFFCHAN_20MHZ 0x1 /* 20 MHz wide channel */ -#define WMI_TDLS_OFFCHAN_40MHZ 0x2 /* 40 MHz wide channel */ -#define WMI_TDLS_OFFCHAN_80MHZ 0x4 /* 80 MHz wide channel */ -#define WMI_TDLS_OFFCHAN_160MHZ 0x8 /* 160 MHz wide channel */ +#define WMI_TDLS_OFFCHAN_20MHZ 0x1 /* 20 MHz wide channel */ +#define WMI_TDLS_OFFCHAN_40MHZ 0x2 /* 40 MHz wide channel */ +#define WMI_TDLS_OFFCHAN_80MHZ 0x4 /* 80 MHz wide channel */ +#define WMI_TDLS_OFFCHAN_160MHZ 0x8 /* 160 MHz wide channel */ + enum wmi_tdls_offchan_mode { - WMI_TDLS_ENABLE_OFFCHANNEL, - WMI_TDLS_DISABLE_OFFCHANNEL + WMI_TDLS_ENABLE_OFFCHANNEL, + WMI_TDLS_DISABLE_OFFCHANNEL }; typedef struct { - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tdls_set_offchan_mode_cmd_fixed_param */ - A_UINT32 tlv_header; - /** unique id identifying the VDEV */ - A_UINT32 vdev_id; - /** Enable/Disable TDLS offchannel */ - A_UINT32 offchan_mode; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /* Is peer initiator or responder of TDLS setup request */ - A_UINT32 is_peer_responder; - /* off channel number */ - A_UINT32 offchan_num; - /* off channel bandwidth bitmap, e.g. WMI_OFFCHAN_20MHZ */ - A_UINT32 offchan_bw_bitmap; - /* operating class for offchan */ - A_UINT32 offchan_oper_class; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tdls_set_offchan_mode_cmd_fixed_param */ + A_UINT32 tlv_header; + /** unique id identifying the VDEV */ + A_UINT32 vdev_id; + /** Enable/Disable TDLS offchannel */ + A_UINT32 offchan_mode; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /* Is peer initiator or responder of TDLS setup request */ + A_UINT32 is_peer_responder; + /* off channel number*/ + A_UINT32 offchan_num; + /* off channel bandwidth bitmap, e.g. WMI_OFFCHAN_20MHZ */ + A_UINT32 offchan_bw_bitmap; + /* operating class for offchan */ + A_UINT32 offchan_oper_class; } wmi_tdls_set_offchan_mode_cmd_fixed_param; + /** TDLS EVENTS */ enum wmi_tdls_peer_notification { - /** tdls discovery recommended for peer (based - * on tx bytes per second > tx_discover threshold) */ - WMI_TDLS_SHOULD_DISCOVER, - /** tdls link tear down recommended for peer - * due to tx bytes per second below tx_teardown_threshold - * NB: this notification sent once */ - WMI_TDLS_SHOULD_TEARDOWN, - /** tx peer TDLS link tear down complete */ - WMI_TDLS_PEER_DISCONNECTED, - /** TDLS/BT role change notification for connection tracker */ - WMI_TDLS_CONNECTION_TRACKER_NOTIFICATION, + /** tdls discovery recommended for peer (based + * on tx bytes per second > tx_discover threshold) */ + WMI_TDLS_SHOULD_DISCOVER, + /** tdls link tear down recommended for peer + * due to tx bytes per second below tx_teardown_threshold + * NB: this notification sent once */ + WMI_TDLS_SHOULD_TEARDOWN, + /** tx peer TDLS link tear down complete */ + WMI_TDLS_PEER_DISCONNECTED, + /** TDLS/BT role change notification for connection tracker */ + WMI_TDLS_CONNECTION_TRACKER_NOTIFICATION, }; enum wmi_tdls_peer_reason { - /** tdls teardown recommended due to low transmits */ - WMI_TDLS_TEARDOWN_REASON_TX, - /** tdls link tear down recommended due to poor RSSI */ - WMI_TDLS_TEARDOWN_REASON_RSSI, - /** tdls link tear down recommended due to offchannel scan */ - WMI_TDLS_TEARDOWN_REASON_SCAN, - /** tdls peer disconnected due to peer deletion */ - WMI_TDLS_DISCONNECTED_REASON_PEER_DELETE, - /** tdls peer disconnected due to PTR timeout */ - WMI_TDLS_TEARDOWN_REASON_PTR_TIMEOUT, - /** tdls peer disconnected due wrong PTR format */ - WMI_TDLS_TEARDOWN_REASON_BAD_PTR, - /** tdls peer not responding */ - WMI_TDLS_TEARDOWN_REASON_NO_RESPONSE, - /* - * tdls entered buffer STA role, TDLS connection tracker - * needs to handle this - */ - WMI_TDLS_ENTER_BUF_STA, - /* - * tdls exited buffer STA role, TDLS connection tracker - * needs to handle this - */ - WMI_TDLS_EXIT_BUF_STA, - /* BT entered busy mode, TDLS connection tracker needs to handle this */ - WMI_TDLS_ENTER_BT_BUSY_MODE, - /** BT exited busy mode, TDLS connection tracker needs to handle this */ - WMI_TDLS_EXIT_BT_BUSY_MODE, - /* - * TDLS module received a scan start event, TDLS connection tracker - * needs to handle this - */ - WMI_TDLS_SCAN_STARTED_EVENT, - /* - * TDLS module received a scan complete event, TDLS connection tracker - * needs to handle this - */ - WMI_TDLS_SCAN_COMPLETED_EVENT, + /** tdls teardown recommended due to low transmits */ + WMI_TDLS_TEARDOWN_REASON_TX, + /** tdls link tear down recommended due to poor RSSI */ + WMI_TDLS_TEARDOWN_REASON_RSSI, + /** tdls link tear down recommended due to offchannel scan */ + WMI_TDLS_TEARDOWN_REASON_SCAN, + /** tdls peer disconnected due to peer deletion */ + WMI_TDLS_DISCONNECTED_REASON_PEER_DELETE, + /** tdls peer disconnected due to PTR timeout */ + WMI_TDLS_TEARDOWN_REASON_PTR_TIMEOUT, + /** tdls peer disconnected due wrong PTR format */ + WMI_TDLS_TEARDOWN_REASON_BAD_PTR, + /** tdls peer not responding */ + WMI_TDLS_TEARDOWN_REASON_NO_RESPONSE, + /** tdls entered buffer STA role, TDLS connection tracker needs to handle this */ + WMI_TDLS_ENTER_BUF_STA, + /** tdls exited buffer STA role, TDLS connection tracker needs to handle this */ + WMI_TDLS_EXIT_BUF_STA, + /** BT entered busy mode, TDLS connection tracker needs to handle this */ + WMI_TDLS_ENTER_BT_BUSY_MODE, + /** BT exited busy mode, TDLS connection tracker needs to handle this */ + WMI_TDLS_EXIT_BT_BUSY_MODE, + /** TDLS module received a scan start event, TDLS connection tracker needs to handle this */ + WMI_TDLS_SCAN_STARTED_EVENT, + /** TDLS module received a scan complete event, TDLS connection tracker needs to handle this */ + WMI_TDLS_SCAN_COMPLETED_EVENT, }; /* WMI_TDLS_PEER_EVENTID */ typedef struct { - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tdls_peer_event_fixed_param */ - A_UINT32 tlv_header; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /** TDLS peer status (wmi_tdls_peer_notification)*/ - A_UINT32 peer_status; - /** TDLS peer reason (wmi_tdls_peer_reason) */ - A_UINT32 peer_reason; - /** unique id identifying the VDEV */ - A_UINT32 vdev_id; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tdls_peer_event_fixed_param */ + A_UINT32 tlv_header; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /** TDLS peer status (wmi_tdls_peer_notification)*/ + A_UINT32 peer_status; + /** TDLS peer reason (wmi_tdls_peer_reason) */ + A_UINT32 peer_reason; + /** unique id identifying the VDEV */ + A_UINT32 vdev_id; } wmi_tdls_peer_event_fixed_param; /* NOTE: wmi_vdev_mcc_bcn_intvl_change_event_fixed_param would be deprecated. Please - don't use this for any new implementations */ + don't use this for any new implementations */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_mcc_bcn_intvl_change_event_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /* New beacon interval to be used for the specified VDEV suggested by firmware */ - A_UINT32 new_bcn_intvl; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_mcc_bcn_intvl_change_event_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /* New beacon interval to be used for the specified VDEV suggested by firmware */ + A_UINT32 new_bcn_intvl; } wmi_vdev_mcc_bcn_intvl_change_event_fixed_param; /* WMI_RESMGR_ADAPTIVE_OCS_ENABLE_DISABLE_CMDID */ typedef struct { - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_resmgr_adaptive_ocs_enable_disable_cmd_fixed_param */ - A_UINT32 tlv_header; - /** 1: enable fw based adaptive ocs, - * 0: disable fw based adaptive ocs - */ - A_UINT32 enable; - /** This field contains the MAC identifier in order to lookup the appropriate OCS instance. */ - union { - /* OBSOLETE - will be removed once all refs are gone */ - A_UINT32 mac_id; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - }; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_resmgr_adaptive_ocs_enable_disable_cmd_fixed_param */ + A_UINT32 tlv_header; + /** 1: enable fw based adaptive ocs, + * 0: disable fw based adaptive ocs + */ + A_UINT32 enable; + /** This field contains the MAC identifier in order to lookup the appropriate OCS instance. */ + union { + A_UINT32 mac_id; /* OBSOLETE - will be removed once all refs are gone */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + }; } wmi_resmgr_adaptive_ocs_enable_disable_cmd_fixed_param; /* WMI_RESMGR_SET_CHAN_TIME_QUOTA_CMDID */ typedef struct { - /* Frequency of the channel for which the quota is set */ - A_UINT32 chan_mhz; - /* Requested channel time quota expressed as percentage */ - A_UINT32 channel_time_quota; + /* Frequency of the channel for which the quota is set */ + A_UINT32 chan_mhz; + /* Requested channel time quota expressed as percentage */ + A_UINT32 channel_time_quota; } wmi_resmgr_chan_time_quota; typedef struct { - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_resmgr_set_chan_time_quota_cmd_fixed_param */ - A_UINT32 tlv_header; - /** number of channel time quota command structures - * (wmi_resmgr_chan_time_quota) 1 or 2 - */ - A_UINT32 num_chans; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_resmgr_set_chan_time_quota_cmd_fixed_param */ + A_UINT32 tlv_header; + /** number of channel time quota command structures + * (wmi_resmgr_chan_time_quota) 1 or 2 + */ + A_UINT32 num_chans; /* This TLV is followed by another TLV of array of bytes * A_UINT8 data[]; * This data array contains @@ -11539,19 +11063,19 @@ typedef struct { /* WMI_RESMGR_SET_CHAN_LATENCY_CMDID */ typedef struct { - /* Frequency of the channel for which the latency is set */ - A_UINT32 chan_mhz; - /* Requested channel latency in milliseconds */ - A_UINT32 latency; + /* Frequency of the channel for which the latency is set */ + A_UINT32 chan_mhz; + /* Requested channel latency in milliseconds */ + A_UINT32 latency; } wmi_resmgr_chan_latency; typedef struct { - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_resmgr_set_chan_latency_cmd_fixed_param */ - A_UINT32 tlv_header; - /** number of channel latency command structures - * (wmi_resmgr_chan_latency) 1 or 2 - */ - A_UINT32 num_chans; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_resmgr_set_chan_latency_cmd_fixed_param */ + A_UINT32 tlv_header; + /** number of channel latency command structures + * (wmi_resmgr_chan_latency) 1 or 2 + */ + A_UINT32 num_chans; /* This TLV is followed by another TLV of array of bytes * A_UINT8 data[]; * This data array contains @@ -11563,310 +11087,313 @@ typedef struct { /** STA SMPS Forced Mode */ typedef enum { - WMI_SMPS_FORCED_MODE_NONE = 0, - WMI_SMPS_FORCED_MODE_DISABLED, - WMI_SMPS_FORCED_MODE_STATIC, - WMI_SMPS_FORCED_MODE_DYNAMIC + WMI_SMPS_FORCED_MODE_NONE = 0, + WMI_SMPS_FORCED_MODE_DISABLED, + WMI_SMPS_FORCED_MODE_STATIC, + WMI_SMPS_FORCED_MODE_DYNAMIC } wmi_sta_smps_forced_mode; typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_sta_smps_force_mode_cmd_fixed_param */ - A_UINT32 tlv_header; - /** Unique id identifying the VDEV */ - A_UINT32 vdev_id; - /** The mode of SMPS that is to be forced in the FW. */ - A_UINT32 forced_mode; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_sta_smps_force_mode_cmd_fixed_param */ + A_UINT32 tlv_header; + /** Unique id identifying the VDEV */ + A_UINT32 vdev_id; + /** The mode of SMPS that is to be forced in the FW. */ + A_UINT32 forced_mode; } wmi_sta_smps_force_mode_cmd_fixed_param; /** wlan HB commands */ #define WMI_WLAN_HB_ITEM_UDP 0x1 #define WMI_WLAN_HB_ITEM_TCP 0x2 -#define WMI_WLAN_HB_MAX_FILTER_SIZE 32 /* should be equal to WLAN_HB_MAX_FILTER_SIZE, must be a multiple of 4 bytes */ +#define WMI_WLAN_HB_MAX_FILTER_SIZE 32 /* should be equal to WLAN_HB_MAX_FILTER_SIZE, + must be a multiple of 4 bytes */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_hb_set_enable_cmd_fixed_param */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 enable; - A_UINT32 item; - A_UINT32 session; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_hb_set_enable_cmd_fixed_param */ + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 enable; + A_UINT32 item; + A_UINT32 session; } wmi_hb_set_enable_cmd_fixed_param; typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_hb_set_tcp_params_cmd_fixed_param */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 srv_ip; - A_UINT32 dev_ip; - A_UINT32 seq; - A_UINT32 src_port; - A_UINT32 dst_port; - A_UINT32 interval; - A_UINT32 timeout; - A_UINT32 session; - wmi_mac_addr gateway_mac; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_hb_set_tcp_params_cmd_fixed_param */ + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 srv_ip; + A_UINT32 dev_ip; + A_UINT32 seq; + A_UINT32 src_port; + A_UINT32 dst_port; + A_UINT32 interval; + A_UINT32 timeout; + A_UINT32 session; + wmi_mac_addr gateway_mac; } wmi_hb_set_tcp_params_cmd_fixed_param; typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_hb_set_tcp_pkt_filter_cmd_fixed_param */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 length; - A_UINT32 offset; - A_UINT32 session; - A_UINT8 filter[WMI_WLAN_HB_MAX_FILTER_SIZE]; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_hb_set_tcp_pkt_filter_cmd_fixed_param */ + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 length; + A_UINT32 offset; + A_UINT32 session; + A_UINT8 filter[WMI_WLAN_HB_MAX_FILTER_SIZE]; } wmi_hb_set_tcp_pkt_filter_cmd_fixed_param; typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_hb_set_udp_params_cmd_fixed_param */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 srv_ip; - A_UINT32 dev_ip; - A_UINT32 src_port; - A_UINT32 dst_port; - A_UINT32 interval; - A_UINT32 timeout; - A_UINT32 session; - wmi_mac_addr gateway_mac; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_hb_set_udp_params_cmd_fixed_param */ + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 srv_ip; + A_UINT32 dev_ip; + A_UINT32 src_port; + A_UINT32 dst_port; + A_UINT32 interval; + A_UINT32 timeout; + A_UINT32 session; + wmi_mac_addr gateway_mac; } wmi_hb_set_udp_params_cmd_fixed_param; typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_hb_set_udp_pkt_filter_cmd_fixed_param */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 length; - A_UINT32 offset; - A_UINT32 session; - A_UINT8 filter[WMI_WLAN_HB_MAX_FILTER_SIZE]; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_hb_set_udp_pkt_filter_cmd_fixed_param */ + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 length; + A_UINT32 offset; + A_UINT32 session; + A_UINT8 filter[WMI_WLAN_HB_MAX_FILTER_SIZE]; } wmi_hb_set_udp_pkt_filter_cmd_fixed_param; /** wlan HB events */ typedef enum { - WMI_WLAN_HB_REASON_UNKNOWN = 0, - WMI_WLAN_HB_REASON_TCP_TIMEOUT = 1, - WMI_WLAN_HB_REASON_UDP_TIMEOUT = 2, + WMI_WLAN_HB_REASON_UNKNOWN = 0, + WMI_WLAN_HB_REASON_TCP_TIMEOUT = 1, + WMI_WLAN_HB_REASON_UDP_TIMEOUT = 2, } WMI_HB_WAKEUP_REASON; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_hb_ind_event_fixed_param */ - A_UINT32 vdev_id; /* unique id identifying the VDEV */ - A_UINT32 session; /* Session ID from driver */ - A_UINT32 reason; /* wakeup reason */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_hb_ind_event_fixed_param */ + A_UINT32 vdev_id; /* unique id identifying the VDEV */ + A_UINT32 session; /* Session ID from driver */ + A_UINT32 reason; /* wakeup reason */ } wmi_hb_ind_event_fixed_param; /** WMI_STA_SMPS_PARAM_CMDID */ typedef enum { - /** RSSI threshold to enter Dynamic SMPS mode from inactive mode */ - WMI_STA_SMPS_PARAM_UPPER_RSSI_THRESH = 0, - /** RSSI threshold to enter Stalled-D-SMPS mode from D-SMPS mode or - * to enter D-SMPS mode from Stalled-D-SMPS mode */ - WMI_STA_SMPS_PARAM_STALL_RSSI_THRESH = 1, - /** RSSI threshold to disable SMPS modes */ - WMI_STA_SMPS_PARAM_LOWER_RSSI_THRESH = 2, - /** Upper threshold for beacon-RSSI. Used to reduce RX chainmask. */ - WMI_STA_SMPS_PARAM_UPPER_BRSSI_THRESH = 3, - /** Lower threshold for beacon-RSSI. Used to increase RX chainmask. */ - WMI_STA_SMPS_PARAM_LOWER_BRSSI_THRESH = 4, - /** Enable/Disable DTIM 1chRx feature */ - WMI_STA_SMPS_PARAM_DTIM_1CHRX_ENABLE = 5 + /** RSSI threshold to enter Dynamic SMPS mode from inactive mode */ + WMI_STA_SMPS_PARAM_UPPER_RSSI_THRESH = 0, + /** RSSI threshold to enter Stalled-D-SMPS mode from D-SMPS mode or + * to enter D-SMPS mode from Stalled-D-SMPS mode */ + WMI_STA_SMPS_PARAM_STALL_RSSI_THRESH = 1, + /** RSSI threshold to disable SMPS modes */ + WMI_STA_SMPS_PARAM_LOWER_RSSI_THRESH = 2, + /** Upper threshold for beacon-RSSI. Used to reduce RX chainmask. */ + WMI_STA_SMPS_PARAM_UPPER_BRSSI_THRESH = 3, + /** Lower threshold for beacon-RSSI. Used to increase RX chainmask. */ + WMI_STA_SMPS_PARAM_LOWER_BRSSI_THRESH = 4, + /** Enable/Disable DTIM 1chRx feature */ + WMI_STA_SMPS_PARAM_DTIM_1CHRX_ENABLE = 5 } wmi_sta_smps_param; typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_sta_smps_param_cmd_fixed_param */ - A_UINT32 tlv_header; - /** Unique id identifying the VDEV */ - A_UINT32 vdev_id; - /** SMPS parameter (see wmi_sta_smps_param) */ - A_UINT32 param; - /** Value of SMPS parameter */ - A_UINT32 value; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_sta_smps_param_cmd_fixed_param */ + A_UINT32 tlv_header; + /** Unique id identifying the VDEV */ + A_UINT32 vdev_id; + /** SMPS parameter (see wmi_sta_smps_param) */ + A_UINT32 param; + /** Value of SMPS parameter */ + A_UINT32 value; } wmi_sta_smps_param_cmd_fixed_param; typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_mcc_sched_sta_traffic_stats */ - A_UINT32 tlv_header; - /* TX stats */ - A_UINT32 txBytesPushed; - A_UINT32 txPacketsPushed; - /* RX stats */ - A_UINT32 rxBytesRcvd; - A_UINT32 rxPacketsRcvd; - A_UINT32 rxTimeTotal; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_mcc_sched_sta_traffic_stats */ + A_UINT32 tlv_header; + /* TX stats */ + A_UINT32 txBytesPushed; + A_UINT32 txPacketsPushed; + /* RX stats */ + A_UINT32 rxBytesRcvd; + A_UINT32 rxPacketsRcvd; + A_UINT32 rxTimeTotal; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; } wmi_mcc_sched_sta_traffic_stats; typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_mcc_sched_traffic_stats_cmd_fixed_param */ - A_UINT32 tlv_header; - /** Duration over which the host stats were collected */ - A_UINT32 duration; - /** Number of stations filled in following stats array */ - A_UINT32 num_sta; - /* Following this struct are the TLVs: - * wmi_mcc_sched_sta_traffic_stats mcc_sched_sta_traffic_stats_list; - */ + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_mcc_sched_traffic_stats_cmd_fixed_param */ + A_UINT32 tlv_header; + /** Duration over which the host stats were collected */ + A_UINT32 duration; + /** Number of stations filled in following stats array */ + A_UINT32 num_sta; + /* Following this struct are the TLVs: + * wmi_mcc_sched_sta_traffic_stats mcc_sched_sta_traffic_stats_list; + */ } wmi_mcc_sched_traffic_stats_cmd_fixed_param; -typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_batch_scan_enable_cmd_fixed_param */ - /* unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /*Batch scan enable command parameters */ - A_UINT32 scanInterval; - A_UINT32 numScan2Batch; - A_UINT32 bestNetworks; - A_UINT32 rfBand; - A_UINT32 rtt; +typedef struct +{ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_batch_scan_enable_cmd_fixed_param */ + /* unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /*Batch scan enable command parameters*/ + A_UINT32 scanInterval; + A_UINT32 numScan2Batch; + A_UINT32 bestNetworks; + A_UINT32 rfBand; + A_UINT32 rtt; } wmi_batch_scan_enable_cmd_fixed_param; -typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_batch_scan_enabled_event_fixed_param */ - A_UINT32 supportedMscan; -} wmi_batch_scan_enabled_event_fixed_param; +typedef struct +{ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_batch_scan_enabled_event_fixed_param */ + A_UINT32 supportedMscan; +} wmi_batch_scan_enabled_event_fixed_param; -typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_batch_scan_disable_cmd_fixed_param */ -/* unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - A_UINT32 param; +typedef struct +{ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_batch_scan_disable_cmd_fixed_param */ + /* unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + A_UINT32 param; } wmi_batch_scan_disable_cmd_fixed_param; -typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_batch_scan_trigger_result_cmd_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - A_UINT32 param; +typedef struct +{ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_batch_scan_trigger_result_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + A_UINT32 param; } wmi_batch_scan_trigger_result_cmd_fixed_param; -typedef struct { - A_UINT32 tlv_header; - wmi_mac_addr bssid; /* BSSID */ - wmi_ssid ssid; /* SSID */ - A_UINT32 ch; /* Channel */ - A_UINT32 rssi; /* RSSI or Level */ - /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */ - A_UINT32 timestamp; +typedef struct +{ + A_UINT32 tlv_header; + wmi_mac_addr bssid; /* BSSID */ + wmi_ssid ssid; /* SSID */ + A_UINT32 ch; /* Channel */ + A_UINT32 rssi; /* RSSI or Level */ + /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */ + A_UINT32 timestamp; } wmi_batch_scan_result_network_info; -typedef struct { - A_UINT32 tlv_header; - A_UINT32 scanId; /* Scan List ID. */ - /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */ - A_UINT32 numNetworksInScanList; - A_UINT32 netWorkStartIndex; /* indicate the start index of network info */ +typedef struct +{ + A_UINT32 tlv_header; + A_UINT32 scanId; /* Scan List ID. */ + /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */ + A_UINT32 numNetworksInScanList; + A_UINT32 netWorkStartIndex; /* indicate the start index of network info*/ } wmi_batch_scan_result_scan_list; -#define LPI_IE_BITMAP_BSSID 0x00000001 /* if this bit is set, bssid of the scan response frame is sent as the first IE in the data buffer sent to LOWI LP.*/ -#define LPI_IE_BITMAP_IS_PROBE 0x00000002 /*send true or false based on scan response frame being a Probe Rsp or not*/ -#define LPI_IE_BITMAP_SSID 0x00000004 /*send ssid from received scan response frame*/ -#define LPI_IE_BITMAP_RSSI 0x00000008 /* end RSSI value reported by HW for the received scan response after adjusting with noise floor*/ -#define LPI_IE_BITMAP_CHAN 0x00000010 /*send channel number from the received scan response*/ -#define LPI_IE_BITMAP_AP_TX_PWR 0x00000020 /* sen Tx power from TPC IE of scan rsp*/ -#define LPI_IE_BITMAP_TX_RATE 0x00000040 /*send rate of the received frame as reported by HW.*/ -#define LPI_IE_BITMAP_80211_MC_SUPPORT 0x00000080 /*send true or false based on the received scan rsp was from a 11mc supported AP or not.*/ -#define LPI_IE_BITMAP_TSF_TIMER_VALUE 0x00000100 /*send timestamp reported in the received scan rsp frame.*/ -#define LPI_IE_BITMAP_AGE_OF_MEASUREMENT 0x00000200 /* current system time - received time) = duration of time scan rsp frame data is kept in the buffer before sending to LOWI LP.*/ +#define LPI_IE_BITMAP_BSSID 0x00000001 /* if this bit is set, bssid of the scan response frame is sent as the first IE in the data buffer sent to LOWI LP. */ +#define LPI_IE_BITMAP_IS_PROBE 0x00000002 /* send true or false based on scan response frame being a Probe Rsp or not */ +#define LPI_IE_BITMAP_SSID 0x00000004 /* send ssid from received scan response frame */ +#define LPI_IE_BITMAP_RSSI 0x00000008 /* send RSSI value reported by HW for the received scan response after adjusting with noise floor */ +#define LPI_IE_BITMAP_CHAN 0x00000010 /* send channel number from the received scan response */ +#define LPI_IE_BITMAP_AP_TX_PWR 0x00000020 /* send Tx power from TPC IE of scan rsp */ +#define LPI_IE_BITMAP_TX_RATE 0x00000040 /* send rate of the received frame as reported by HW. */ +#define LPI_IE_BITMAP_80211_MC_SUPPORT 0x00000080 /* send true or false based on the received scan rsp was from a 11mc supported AP or not. */ +#define LPI_IE_BITMAP_TSF_TIMER_VALUE 0x00000100 /* send timestamp reported in the received scan rsp frame. */ +#define LPI_IE_BITMAP_AGE_OF_MEASUREMENT 0x00000200 /* (current system time - received time) = duration of time scan rsp frame data is kept in the buffer before sending to LOWI LP. */ /* * TEMPORARY alias of incorrect old name the correct name. * This alias will be removed once all references to the old name have been fixed. */ #define LPI_IE_BITMAP_AGE_OF_MESAUREMENT LPI_IE_BITMAP_AGE_OF_MEASUREMENT -#define LPI_IE_BITMAP_CONN_STATUS 0x00000400 /* If an infra STA is active and connected to an AP, true value is sent else false.*/ -#define LPI_IE_BITMAP_MSAP_IE 0x00000800 /* info on the vendor specific proprietary IE MSAP*/ -#define LPI_IE_BITMAP_SEC_STATUS 0x00001000 /* we indicate true or false based on if the AP has WPA or RSN security enabled*/ -#define LPI_IE_BITMAP_DEVICE_TYPE 0x00002000 /* info about the beacons coming from an AP or P2P or NAN device.*/ -#define LPI_IE_BITMAP_CHAN_IS_PASSIVE 0x00004000 /* info on whether the scan rsp was received from a passive channel*/ -#define LPI_IE_BITMAP_DWELL_TIME 0x00008000 /* send the scan dwell time of the channel on which the current scan rsp frame was received.*/ -#define LPI_IE_BITMAP_BAND_CENTER_FREQ1 0x00010000 /* the center frequencies in case AP is supporting wider channels than 20 MHz*/ -#define LPI_IE_BITMAP_BAND_CENTER_FREQ2 0x00020000 /* same as above*/ -#define LPI_IE_BITMAP_PHY_MODE 0x00040000 /* PHY mode indicates a, b, ,g, ac and other combinations*/ -#define LPI_IE_BITMAP_SCAN_MODULE_ID 0x00080000 /* scan module id indicates the scan client who originated the scan*/ -#define LPI_IE_BITMAP_SCAN_ID 0x00100000 /*extscan inserts the scan cycle count for this value; other scan clients can insert the scan id of the scan, if needed.*/ -#define LPI_IE_BITMAP_FLAGS 0x00200000 /* reserved as a bitmap to indicate more scan information; one such use being to indicate if the on-going scan is interrupted or not*/ -#define LPI_IE_BITMAP_CACHING_REQD 0x00400000 /*extscan will use this field to indicate if this frame info needs to be cached in LOWI LP or not*/ -/* - * extscan will use this field to indicate to - * LOWI LP whether to report result to context hub or not - */ -#define LPI_IE_BITMAP_REPORT_CONTEXT_HUB 0x00800000 +#define LPI_IE_BITMAP_CONN_STATUS 0x00000400 /* If an infra STA is active and connected to an AP, true value is sent else false. */ +#define LPI_IE_BITMAP_MSAP_IE 0x00000800 /* info on the vendor specific proprietary IE MSAP */ +#define LPI_IE_BITMAP_SEC_STATUS 0x00001000 /* we indicate true or false based on if the AP has WPA or RSN security enabled */ +#define LPI_IE_BITMAP_DEVICE_TYPE 0x00002000 /* info about the beacons coming from an AP or P2P or NAN device. */ +#define LPI_IE_BITMAP_CHAN_IS_PASSIVE 0x00004000 /* info on whether the scan rsp was received from a passive channel */ +#define LPI_IE_BITMAP_DWELL_TIME 0x00008000 /* send the scan dwell time of the channel on which the current scan rsp frame was received. */ +#define LPI_IE_BITMAP_BAND_CENTER_FREQ1 0x00010000 /* the center frequencies in case AP is supporting wider channels than 20 MHz */ +#define LPI_IE_BITMAP_BAND_CENTER_FREQ2 0x00020000 /* same as above */ +#define LPI_IE_BITMAP_PHY_MODE 0x00040000 /* PHY mode indicates a, b, ,g, ac and other combinations */ +#define LPI_IE_BITMAP_SCAN_MODULE_ID 0x00080000 /* scan module id indicates the scan client who originated the scan */ +#define LPI_IE_BITMAP_SCAN_ID 0x00100000 /* extscan inserts the scan cycle count for this value; other scan clients can insert the scan id of the scan, if needed. */ +#define LPI_IE_BITMAP_FLAGS 0x00200000 /* reserved as a bitmap to indicate more scan information; one such use being to indicate if the on-going scan is interrupted or not */ +#define LPI_IE_BITMAP_CACHING_REQD 0x00400000 /* extscan will use this field to indicate if this frame info needs to be cached in LOWI LP or not */ +#define LPI_IE_BITMAP_REPORT_CONTEXT_HUB 0x00800000 /* extscan will use this field to indicate to LOWI LP whether to report result to context hub or not. */ #define LPI_IE_BITMAP_ALL 0xFFFFFFFF typedef struct { - A_UINT32 tlv_header; - /**A_BOOL indicates LPI mgmt snooping enable/disable*/ - A_UINT32 enable; - /**LPI snooping mode*/ - A_UINT32 snooping_mode; - /** LPI interested IEs in snooping context */ - A_UINT32 ie_bitmap; + A_UINT32 tlv_header; + /**A_BOOL indicates LPI mgmt snooping enable/disable*/ + A_UINT32 enable; + /**LPI snooping mode*/ + A_UINT32 snooping_mode; + /** LPI interested IEs in snooping context */ + A_UINT32 ie_bitmap; } wmi_lpi_mgmt_snooping_config_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_start_scan_cmd_fixed_param */ - /** Scan ID */ - A_UINT32 scan_id; - /** Scan requestor ID */ - A_UINT32 scan_req_id; - /** VDEV id(interface) that is requesting scan */ - A_UINT32 vdev_id; - /** LPI interested IEs in scan context */ - A_UINT32 ie_bitmap; - /** Scan Priority, input to scan scheduler */ - A_UINT32 scan_priority; - /** dwell time in msec on active channels */ - A_UINT32 dwell_time_active; - /** dwell time in msec on passive channels */ - A_UINT32 dwell_time_passive; - /** min time in msec on the BSS channel,only valid if atleast one VDEV is active*/ - A_UINT32 min_rest_time; - /** max rest time in msec on the BSS channel,only valid if at least one VDEV is active*/ - /** the scanner will rest on the bss channel at least min_rest_time. after min_rest_time the scanner - * will start checking for tx/rx activity on all VDEVs. if there is no activity the scanner will - * switch to off channel. if there is activity the scanner will let the radio on the bss channel - * until max_rest_time expires.at max_rest_time scanner will switch to off channel - * irrespective of activity. activity is determined by the idle_time parameter. - */ - A_UINT32 max_rest_time; - /** time before sending next set of probe requests. - * The scanner keeps repeating probe requests transmission with period specified by repeat_probe_time. - * The number of probe requests specified depends on the ssid_list and bssid_list - */ - A_UINT32 repeat_probe_time; - /** time in msec between 2 consequetive probe requests with in a set. */ - A_UINT32 probe_spacing_time; - /** data inactivity time in msec on bss channel that will be used by scanner for measuring the inactivity */ - A_UINT32 idle_time; - /** maximum time in msec allowed for scan */ - A_UINT32 max_scan_time; - /** delay in msec before sending first probe request after switching to a channel */ - A_UINT32 probe_delay; - /** Scan control flags */ - A_UINT32 scan_ctrl_flags; - /** Burst duration time in msec*/ - A_UINT32 burst_duration; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_start_scan_cmd_fixed_param */ + /** Scan ID */ + A_UINT32 scan_id; + /** Scan requestor ID */ + A_UINT32 scan_req_id; + /** VDEV id(interface) that is requesting scan */ + A_UINT32 vdev_id; + /** LPI interested IEs in scan context */ + A_UINT32 ie_bitmap; + /** Scan Priority, input to scan scheduler */ + A_UINT32 scan_priority; + /** dwell time in msec on active channels */ + A_UINT32 dwell_time_active; + /** dwell time in msec on passive channels */ + A_UINT32 dwell_time_passive; + /** min time in msec on the BSS channel,only valid if atleast one VDEV is active*/ + A_UINT32 min_rest_time; + /** max rest time in msec on the BSS channel,only valid if at least one VDEV is active*/ + /** the scanner will rest on the bss channel at least min_rest_time. after min_rest_time the scanner + * will start checking for tx/rx activity on all VDEVs. if there is no activity the scanner will + * switch to off channel. if there is activity the scanner will let the radio on the bss channel + * until max_rest_time expires.at max_rest_time scanner will switch to off channel + * irrespective of activity. activity is determined by the idle_time parameter. + */ + A_UINT32 max_rest_time; + /** time before sending next set of probe requests. + * The scanner keeps repeating probe requests transmission with period specified by repeat_probe_time. + * The number of probe requests specified depends on the ssid_list and bssid_list + */ + A_UINT32 repeat_probe_time; + /** time in msec between 2 consequetive probe requests with in a set. */ + A_UINT32 probe_spacing_time; + /** data inactivity time in msec on bss channel that will be used by scanner for measuring the inactivity */ + A_UINT32 idle_time; + /** maximum time in msec allowed for scan */ + A_UINT32 max_scan_time; + /** delay in msec before sending first probe request after switching to a channel */ + A_UINT32 probe_delay; + /** Scan control flags */ + A_UINT32 scan_ctrl_flags; + /** Burst duration time in msec*/ + A_UINT32 burst_duration; - /** # if channels to scan. In the TLV channel_list[] */ - A_UINT32 num_chan; - /** number of bssids. In the TLV bssid_list[] */ - A_UINT32 num_bssid; - /** number of ssid. In the TLV ssid_list[] */ - A_UINT32 num_ssids; - /** number of bytes in ie data. In the TLV ie_data[] */ - A_UINT32 ie_len; + /** # if channels to scan. In the TLV channel_list[] */ + A_UINT32 num_chan; + /** number of bssids. In the TLV bssid_list[] */ + A_UINT32 num_bssid; + /** number of ssid. In the TLV ssid_list[] */ + A_UINT32 num_ssids; + /** number of bytes in ie data. In the TLV ie_data[] */ + A_UINT32 ie_len; /** - * TLV (tag length value ) parameters follow the scan_cmd + * TLV (tag length value) parameters follow the scan_cmd * structure. The TLV's are: * A_UINT32 channel_list[]; * wmi_ssid ssid_list[]; @@ -11876,89 +11403,93 @@ typedef struct { } wmi_lpi_start_scan_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_stop_scan_cmd_fixed_param */ - /** Scan requestor ID */ - A_UINT32 scan_req_id; - /** Scan ID */ - A_UINT32 scan_id; - /** - * Req Type - * req_type should be WMI_SCAN_STOP_ONE, WMI_SCN_STOP_VAP_ALL or WMI_SCAN_STOP_ALL - * WMI_SCAN_STOP_ONE indicates to stop a specific scan with scan_id - * WMI_SCN_STOP_VAP_ALL indicates to stop all scan requests on a specific vDev with vdev_id - * WMI_SCAN_STOP_ALL indicates to stop all scan requests in both Scheduler's queue and Scan Engine - */ - A_UINT32 req_type; - /** - * vDev ID - * used when req_type equals to WMI_SCN_STOP_VAP_ALL, it indexed the vDev on which to stop the scan - */ - A_UINT32 vdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_stop_scan_cmd_fixed_param */ + /** Scan requestor ID */ + A_UINT32 scan_req_id; + /** Scan ID */ + A_UINT32 scan_id; + /** + * Req Type + * req_type should be WMI_SCAN_STOP_ONE, WMI_SCN_STOP_VAP_ALL or WMI_SCAN_STOP_ALL + * WMI_SCAN_STOP_ONE indicates to stop a specific scan with scan_id + * WMI_SCN_STOP_VAP_ALL indicates to stop all scan requests on a specific vDev with vdev_id + * WMI_SCAN_STOP_ALL indicates to stop all scan requests in both Scheduler's queue and Scan Engine + */ + A_UINT32 req_type; + /** + * vDev ID + * used when req_type equals to WMI_SCN_STOP_VAP_ALL, it indexed the vDev on which to stop the scan + */ + A_UINT32 vdev_id; } wmi_lpi_stop_scan_cmd_fixed_param; typedef enum { - WMI_LPI_DEVICE_TYPE_AP = 1, - WMI_LPI_DEVICE_TYPE_P2P = 2, - WMI_LPI_DEVICE_TYPE_NAN = 3, + WMI_LPI_DEVICE_TYPE_AP = 1, + WMI_LPI_DEVICE_TYPE_P2P = 2, + WMI_LPI_DEVICE_TYPE_NAN = 3, } wmi_lpi_device_type; -typedef struct { - A_UINT32 tlv_header; - /** Scan requestor ID */ - A_UINT32 scan_req_id; - A_UINT32 ie_bitmap; - A_UINT32 data_len; -} wmi_lpi_result_event_fixed_param; +typedef struct +{ + A_UINT32 tlv_header; + /** Scan requestor ID */ + A_UINT32 scan_req_id; + A_UINT32 ie_bitmap; + A_UINT32 data_len; +} wmi_lpi_result_event_fixed_param; typedef enum { - /** User scan Request completed */ - WMI_LPI_STATUS_SCAN_REQ_COMPLED = 0, - /** User Request was never serviced */ - WMI_LPI_STATUS_DROPPED_REQ = 1, - /** Illegal channel Req */ - WMI_LPI_STATUS_ILLEGAL_CHAN_REQ = 2, - /** Illegal Operation Req */ - WMI_LPI_STATUS_ILLEGAL_OPER_REQ = 3, - /** Request Aborted */ - WMI_LPI_STATUS_REQ_ABORTED = 4, - /** Request Timed Out */ - WMI_LPI_STATUS_REQ_TIME_OUT = 5, - /** Medium Busy, already there - * is a scan is going on */ - WMI_LPI_STATUS_MEDIUM_BUSY = 6, - /* Extscan is the scan client whose scan complete event is triggered */ - WMI_LPI_STATUS_EXTSCAN_CYCLE_AND_SCAN_REQ_COMPLETED = 7, + /** User scan Request completed */ + WMI_LPI_STATUS_SCAN_REQ_COMPLED = 0, + /** User Request was never serviced */ + WMI_LPI_STATUS_DROPPED_REQ = 1, + /** Illegal channel Req */ + WMI_LPI_STATUS_ILLEGAL_CHAN_REQ = 2, + /** Illegal Operation Req */ + WMI_LPI_STATUS_ILLEGAL_OPER_REQ = 3, + /** Request Aborted */ + WMI_LPI_STATUS_REQ_ABORTED = 4, + /** Request Timed Out */ + WMI_LPI_STATUS_REQ_TIME_OUT = 5, + /** Medium Busy, already there + * is a scan is going on */ + WMI_LPI_STATUS_MEDIUM_BUSY = 6, + /** Extscan is the scan client whose scan complete event is triggered */ + WMI_LPI_STATUS_EXTSCAN_CYCLE_AND_SCAN_REQ_COMPLETED = 7, } wmi_lpi_staus; -typedef struct { - A_UINT32 tlv_header; - wmi_lpi_staus status; - /** Scan requestor ID */ - A_UINT32 scan_req_id; -} wmi_lpi_status_event_fixed_param; +typedef struct +{ + A_UINT32 tlv_header; + wmi_lpi_staus status; + /** Scan requestor ID */ + A_UINT32 scan_req_id; +} wmi_lpi_status_event_fixed_param; + + +typedef struct +{ + A_UINT32 tlv_header; + wmi_mac_addr bssid; + wmi_ssid ssid; + A_UINT32 freq; + A_UINT32 rssi; + A_UINT32 vdev_id; +} wmi_lpi_handoff_event_fixed_param; +typedef struct +{ + A_UINT32 tlv_header; + A_UINT32 timestamp; /*timestamp of batch scan event*/ + A_UINT32 numScanLists; /*number of scan in this event*/ + A_UINT32 isLastResult; /*is this event a last event of the whole batch scan*/ +} wmi_batch_scan_result_event_fixed_param; typedef struct { - A_UINT32 tlv_header; - wmi_mac_addr bssid; - wmi_ssid ssid; - A_UINT32 freq; - A_UINT32 rssi; - A_UINT32 vdev_id; -} wmi_lpi_handoff_event_fixed_param; - -typedef struct { - A_UINT32 tlv_header; - A_UINT32 timestamp; /*timestamp of batch scan event */ - A_UINT32 numScanLists; /*number of scan in this event */ - A_UINT32 isLastResult; /*is this event a last event of the whole batch scan */ -} wmi_batch_scan_result_event_fixed_param; - -typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_p2p_noa_event_fixed_param */ - A_UINT32 vdev_id; - /* This TLV is followed by p2p_noa_info for vdev : - * wmi_p2p_noa_info p2p_noa_info; - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_p2p_noa_event_fixed_param */ + A_UINT32 vdev_id; +/* This TLV is followed by p2p_noa_info for vdev : + * wmi_p2p_noa_info p2p_noa_info; + */ } wmi_p2p_noa_event_fixed_param; #define WMI_RFKILL_CFG_RADIO_LEVEL_OFFSET 6 @@ -11971,215 +11502,203 @@ typedef struct { #define WMI_RFKILL_CFG_PIN_AS_GPIO_MASK 0xf typedef struct { - /** TLV tag and len; tag equals - * */ - A_UINT32 tlv_header; - /** gpip pin number */ - A_UINT32 gpio_pin_num; - /** gpio interupt type */ - A_UINT32 int_type; - /** RF radio status */ - A_UINT32 radio_state; + /** TLV tag and len; tag equals + * */ + A_UINT32 tlv_header; + /** gpip pin number */ + A_UINT32 gpio_pin_num; + /** gpio interupt type */ + A_UINT32 int_type; + /** RF radio status */ + A_UINT32 radio_state; } wmi_rfkill_mode_param; typedef enum { - WMI_SET_LED_SYS_POWEROFF, - WMI_SET_LED_SYS_S3_SUSPEND, - WMI_SET_LED_SYS_S4_S5, - WMI_SET_LED_SYS_DRIVER_DISABLE, - WMI_SET_LED_SYS_WAKEUP, - WMI_SET_LED_SYS_ALWAYS_ON, /* just for test! */ - WMI_SET_LED_SYS_POWERON, + WMI_SET_LED_SYS_POWEROFF, + WMI_SET_LED_SYS_S3_SUSPEND, + WMI_SET_LED_SYS_S4_S5, + WMI_SET_LED_SYS_DRIVER_DISABLE, + WMI_SET_LED_SYS_WAKEUP, + WMI_SET_LED_SYS_ALWAYS_ON, /* just for test! */ + WMI_SET_LED_SYS_POWERON, } wmi_led_sys_state_param; typedef enum { - WMI_CONFIG_LED_TO_VDD = 0, - WMI_CONFIG_LED_TO_GND = 1, + WMI_CONFIG_LED_TO_VDD = 0, + WMI_CONFIG_LED_TO_GND = 1, } wmi_config_led_connect_type; typedef enum { - WMI_CONFIG_LED_NOT_WITH_BT = 0, - WMI_CONFIG_LED_WITH_BT = 1, + WMI_CONFIG_LED_NOT_WITH_BT = 0, + WMI_CONFIG_LED_WITH_BT = 1, } wmi_config_led_with_bt_flag; typedef enum { - WMI_CONFIG_LED_DISABLE = 0, - WMI_CONFIG_LED_ENABLE = 1, + WMI_CONFIG_LED_DISABLE = 0, + WMI_CONFIG_LED_ENABLE = 1, } wmi_config_led_enable_flag; typedef enum { - WMI_CONFIG_LED_HIGH_UNSPECIFIED = 0, - WMI_CONFIG_LED_HIGH_OFF = 1, - WMI_CONFIG_LED_HIGH_ON = 2, + WMI_CONFIG_LED_HIGH_UNSPECIFIED = 0, + WMI_CONFIG_LED_HIGH_OFF = 1, + WMI_CONFIG_LED_HIGH_ON = 2, } wmi_config_led_on_flag; typedef enum { - WMI_CONFIG_LED_UNSPECIFIED = 0, - WMI_CONFIG_LED_ON = 1, - WMI_CONFIG_LED_OFF = 2, - WMI_CONFIG_LED_DIM = 3, - WMI_CONFIG_LED_BLINK = 4, - WMI_CONFIG_LED_TXRX = 5, + WMI_CONFIG_LED_UNSPECIFIED = 0, + WMI_CONFIG_LED_ON = 1, + WMI_CONFIG_LED_OFF = 2, + WMI_CONFIG_LED_DIM = 3, + WMI_CONFIG_LED_BLINK = 4, + WMI_CONFIG_LED_TXRX = 5, } wmi_config_led_operation_type; typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_set_led_config_cmd_fixed_param */ - A_UINT32 tlv_header; - /* Set GPIO pin */ - A_UINT32 led_gpio_pin; - /* Set connect type defined in wmi_config_led_connect_type */ - A_UINT32 connect_type; - /* Set flag defined in wmi_config_led_with_bt_flag */ - A_UINT32 with_bt; - /* Set LED enablement defined in wmi_config_led_enable_flag */ - A_UINT32 led_enable; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - /* see wmi_config_led_operation_type enum */ - A_UINT32 led_operation_type; - /* see wmi_config_led_on_flag enum */ - A_UINT32 led_on_flag; /* configure high/low on/off sense */ - A_UINT32 led_on_interval; /* for blink function; unit: ms */ - A_UINT32 led_off_interval; /* for blink function; unit: ms */ - A_UINT32 led_repeat_cnt; /* for blink function: how many blinks */ + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_pdev_set_led_config_cmd_fixed_param */ + A_UINT32 tlv_header; + /* Set GPIO pin */ + A_UINT32 led_gpio_pin; + /* Set connect type defined in wmi_config_led_connect_type */ + A_UINT32 connect_type; + /* Set flag defined in wmi_config_led_with_bt_flag*/ + A_UINT32 with_bt; + /* Set LED enablement defined in wmi_config_led_enable_flag */ + A_UINT32 led_enable; + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + /* see wmi_config_led_operation_type enum */ + A_UINT32 led_operation_type; + /* see wmi_config_led_on_flag enum */ + A_UINT32 led_on_flag; /* configure high/low on/off sense */ + A_UINT32 led_on_interval; /* for blink function; unit: ms */ + A_UINT32 led_off_interval; /* for blink function; unit: ms */ + A_UINT32 led_repeat_cnt; /* for blink function: how many blinks */ } wmi_pdev_set_led_config_cmd_fixed_param; #define WMI_WNTS_CFG_GPIO_PIN_NUM_OFFSET 0 -#define WMI_WNTS_CFG_GPIO_PIN_NUM_MASK 0xff +#define WMI_WNTS_CFG_GPIO_PIN_NUM_MASK 0xff /** WMI_PEER_INFO_REQ_CMDID * Request FW to provide peer info */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_info_req_cmd_fixed_param */ - A_UINT32 tlv_header; - /** In order to get the peer info for a single peer, host shall - * issue the peer_mac_address of that peer. For getting the - * info all peers, the host shall issue 0xFFFFFFFF as the mac - * address. The firmware will return the peer info for all the - * peers on the specified vdev_id */ - wmi_mac_addr peer_mac_address; - /** vdev id */ - A_UINT32 vdev_id; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_peer_info_req_cmd_fixed_param */ + A_UINT32 tlv_header; + /** In order to get the peer info for a single peer, host shall + * issue the peer_mac_address of that peer. For getting the + * info all peers, the host shall issue 0xFFFFFFFF as the mac + * address. The firmware will return the peer info for all the + * peers on the specified vdev_id */ + wmi_mac_addr peer_mac_address; + /** vdev id */ + A_UINT32 vdev_id; } wmi_peer_info_req_cmd_fixed_param; typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_info */ - A_UINT32 tlv_header; - /** mac addr of the peer */ - wmi_mac_addr peer_mac_address; - /** data_rate of the peer */ - A_UINT32 data_rate; - /** rssi of the peer */ - A_UINT32 rssi; - /** tx fail count */ - A_UINT32 tx_fail_cnt; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_peer_info */ + A_UINT32 tlv_header; + /** mac addr of the peer */ + wmi_mac_addr peer_mac_address; + /** data_rate of the peer */ + A_UINT32 data_rate; + /** rssi of the peer */ + A_UINT32 rssi; + /** tx fail count */ + A_UINT32 tx_fail_cnt; } wmi_peer_info; /** FW response with the peer info */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_info_event_fixed_param */ - A_UINT32 tlv_header; - /** number of peers in peer_info */ - A_UINT32 num_peers; - /* Set to 1 only if vdev_id field is valid */ - A_UINT32 valid_vdev_id; - /* VDEV to which the peer belongs to */ - A_UINT32 vdev_id; - /* This TLV is followed by another TLV of array of structs - * wmi_peer_info peer_info[]; - */ + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_peer_info_event_fixed_param */ + A_UINT32 tlv_header; + /** number of peers in peer_info */ + A_UINT32 num_peers; + /* Set to 1 only if vdev_id field is valid */ + A_UINT32 valid_vdev_id; + /* VDEV to which the peer belongs to */ + A_UINT32 vdev_id; + /* This TLV is followed by another TLV of array of structs + * wmi_peer_info peer_info[]; + */ } wmi_peer_info_event_fixed_param; -/** - * WMI_PEER_ANTDIV_INFO_REQ_CMDID - * Request FW to provide peer info - */ +/** WMI_PEER_ANTDIV_INFO_REQ_CMDID + * Request FW to provide peer info */ typedef struct { - /** - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_antdiv_info_req_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** - * In order to get the peer antdiv info for a single peer, host shall - * issue the peer_mac_address of that peer. For getting the - * info all peers, the host shall issue 0xFFFFFFFF as the mac - * address. The firmware will return the peer info for all the - * peers on the specified vdev_id - */ - wmi_mac_addr peer_mac_address; - /** vdev id */ - A_UINT32 vdev_id; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_peer_antdiv_info_req_cmd_fixed_param */ + A_UINT32 tlv_header; + /** In order to get the peer antdiv info for a single peer, host shall + * issue the peer_mac_address of that peer. For getting the + * info all peers, the host shall issue 0xFFFFFFFF as the mac + * address. The firmware will return the peer info for all the + * peers on the specified vdev_id */ + wmi_mac_addr peer_mac_address; + /** vdev id */ + A_UINT32 vdev_id; } wmi_peer_antdiv_info_req_cmd_fixed_param; /** FW response with the peer antdiv info */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_antdiv_info_event_fixed_param - */ - A_UINT32 tlv_header; - /** number of peers in peer_info */ - A_UINT32 num_peers; - /** VDEV to which the peer belongs to */ - A_UINT32 vdev_id; - /** - * This TLV is followed by another TLV of array of structs - * wmi_peer_antdiv_info peer_antdiv_info[]; - */ + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_peer_antdiv_info_event_fixed_param */ + A_UINT32 tlv_header; + /** number of peers in peer_info */ + A_UINT32 num_peers; + /* VDEV to which the peer belongs to */ + A_UINT32 vdev_id; + /* This TLV is followed by another TLV of array of structs + * wmi_peer_antdiv_info peer_antdiv_info[]; + */ } wmi_peer_antdiv_info_event_fixed_param; typedef struct { - /** - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_antdiv_info - */ - A_UINT32 tlv_header; - /** mac addr of the peer */ - wmi_mac_addr peer_mac_address; - /** - * per chain rssi of the peer, for up to 8 chains. - * Each chain's entry reports the RSSI for different bandwidths: - * bits 7:0 -> primary 20 MHz - * bits 15:8 -> secondary 20 MHz of 40 MHz channel (if applicable) - * bits 23:16 -> secondary 40 MHz of 80 MHz channel (if applicable) - * bits 31:24 -> secondary 80 MHz of 160 MHz channel (if applicable) - * Each of these 8-bit RSSI reports is in dB units, with respect to - * the noise floor. - * 0x80 means invalid. - * All unused bytes within used chain_rssi indices shall be - * set to 0x80. - * All unused chain_rssi indices shall be set to 0x80808080. - */ - A_INT32 chain_rssi[8]; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_peer_antdiv_info */ + A_UINT32 tlv_header; + /** mac addr of the peer */ + wmi_mac_addr peer_mac_address; + /** per chain rssi of the peer, for up to 8 chains. + * Each chain's entry reports the RSSI for different bandwidths: + * bits 7:0 -> primary 20 MHz + * bits 15:8 -> secondary 20 MHz of 40 MHz channel (if applicable) + * bits 23:16 -> secondary 40 MHz of 80 MHz channel (if applicable) + * bits 31:24 -> secondary 80 MHz of 160 MHz channel (if applicable) + * Each of these 8-bit RSSI reports is in dB units, with respect to + * the noise floor. + * 0x80 means invalid. + * All unused bytes within used chain_rssi indices shall be set to 0x80. + * All unused chain_rssi indices shall be set to 0x80808080. + */ + A_INT32 chain_rssi[8]; } wmi_peer_antdiv_info; /** FW response when tx failure count has reached threshold * for a peer */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_tx_fail_cnt_thr_event_fixed_param */ - A_UINT32 tlv_header; - /** vdev id*/ - A_UINT32 vdev_id; - /** mac address */ - wmi_mac_addr peer_mac_address; - /** tx failure count- will eventually be removed and not used * */ - A_UINT32 tx_fail_cnt; - /** seq number of the nth tx_fail_event */ - A_UINT32 seq_no; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_peer_tx_fail_cnt_thr_event_fixed_param */ + A_UINT32 tlv_header; + /** vdev id*/ + A_UINT32 vdev_id; + /** mac address */ + wmi_mac_addr peer_mac_address; + /** tx failure count - will eventually be removed and not used */ + A_UINT32 tx_fail_cnt; + /** seq number of the nth tx_fail_event */ + A_UINT32 seq_no; } wmi_peer_tx_fail_cnt_thr_event_fixed_param; enum wmi_rmc_mode { - /** Disable RMC */ - WMI_RMC_MODE_DISABLED = 0, - /** Enable RMC */ - WMI_RMC_MODE_ENABLED = 1, + /** Disable RMC */ + WMI_RMC_MODE_DISABLED = 0, + /** Enable RMC */ + WMI_RMC_MODE_ENABLED = 1, }; /** Enable RMC transmitter functionality. Upon @@ -12187,50 +11706,50 @@ enum wmi_rmc_mode { * reliablity. This is a vendor * proprietary feature. */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_rmc_set_mode_cmd_fixed_param */ - A_UINT32 tlv_header; - /** vdev id*/ - A_UINT32 vdev_id; - /** enable_rmc contains values from enum wmi_rmc_mode; - * Default value: 0 (disabled) */ - A_UINT32 enable_rmc; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_rmc_set_mode_cmd_fixed_param */ + A_UINT32 tlv_header; + /** vdev id*/ + A_UINT32 vdev_id; + /** enable_rmc contains values from enum wmi_rmc_mode; + * Default value: 0 (disabled) */ + A_UINT32 enable_rmc; } wmi_rmc_set_mode_cmd_fixed_param; /** Configure transmission periodicity of action frames in a * RMC network for the multicast transmitter */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_rmc_set_action_period_cmd_fixed_param */ - A_UINT32 tlv_header; - /** vdev id */ - A_UINT32 vdev_id; - /** time period in milliseconds. Default: 300 ms. - An action frame indicating the current leader is transmitted by the - RMC transmitter once every 'periodity_msec' */ - A_UINT32 periodicity_msec; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_rmc_set_action_period_cmd_fixed_param */ + A_UINT32 tlv_header; + /** vdev id */ + A_UINT32 vdev_id; + /** time period in milliseconds. Default: 300 ms. + An action frame indicating the current leader is transmitted by the + RMC transmitter once every 'periodity_msec' */ + A_UINT32 periodicity_msec; } wmi_rmc_set_action_period_cmd_fixed_param; /** Optimise Leader selection process in RMC functionality. For * Enhancement/Debug purposes only */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_rmc_config_cmd_fixed_param */ - A_UINT32 tlv_header; - /** vdev id */ - A_UINT32 vdev_id; - /** flags :: - * 0x0001 - Enable beacon averaging - * 0x0002 - Force leader selection - * 0x0004 - Enable Timer based leader switch - * 0x0008 - Use qos/NULL based for multicast reliability */ - A_UINT32 flags; - /** control leader change timeperiod (in seconds) */ - A_UINT32 peridocity_leader_switch; - /** control activity timeout value for data rx (in seconds) */ - A_UINT32 data_activity_timeout; - /** mac address of leader */ - wmi_mac_addr forced_leader_mac_addr; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_rmc_config_cmd_fixed_param */ + A_UINT32 tlv_header; + /** vdev id */ + A_UINT32 vdev_id; + /** flags :: + * 0x0001 - Enable beacon averaging + * 0x0002 - Force leader selection + * 0x0004 - Enable Timer based leader switch + * 0x0008 - Use qos/NULL based for multicast reliability */ + A_UINT32 flags; + /** control leader change timeperiod (in seconds) */ + A_UINT32 peridocity_leader_switch; + /** control activity timeout value for data rx (in seconds) */ + A_UINT32 data_activity_timeout; + /** mac address of leader */ + wmi_mac_addr forced_leader_mac_addr; } wmi_rmc_config_cmd_fixed_param; /** MHF is generally implemented in @@ -12242,160 +11761,155 @@ typedef struct { * the next hop using next hop's mac address. This is a vendor * proprietary feature. */ enum wmi_mhf_ofl_mode { - /** Disable MHF offload */ - WMI_MHF_OFL_MODE_DISABLED = 0, - /** Enable MHF offload */ - WMI_MHF_OFL_MODE_ENABLED = 1, + /** Disable MHF offload */ + WMI_MHF_OFL_MODE_DISABLED = 0, + /** Enable MHF offload */ + WMI_MHF_OFL_MODE_ENABLED = 1, }; typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_mhf_offload_set_mode_cmd_fixed_param */ - A_UINT32 tlv_header; - /** vdev id*/ - A_UINT32 vdev_id; - /** enable_mhf_ofl contains values from enum - * wmi_mhf_ofl_mode; Default value: 0 (disabled) */ - A_UINT32 enable_mhf_ofl; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_mhf_offload_set_mode_cmd_fixed_param */ + A_UINT32 tlv_header; + /** vdev id*/ + A_UINT32 vdev_id; + /** enable_mhf_ofl contains values from enum + * wmi_mhf_ofl_mode; Default value: 0 (disabled) */ + A_UINT32 enable_mhf_ofl; } wmi_mhf_offload_set_mode_cmd_fixed_param; enum wmi_mhf_ofl_table_action { - /** Create forwarding offload table in FW */ - WMI_MHF_OFL_TBL_CREATE = 0, - /** Append to existing MHF offload table */ - WMI_MHF_OFL_TBL_APPEND = 1, - /** Flush entire MHF offload table in FW */ - WMI_MHF_OFL_TBL_FLUSH = 2, + /** Create MHF offload table in FW */ + WMI_MHF_OFL_TBL_CREATE = 0, + /** Append to existing MHF offload table */ + WMI_MHF_OFL_TBL_APPEND = 1, + /** Flush entire MHF offload table in FW */ + WMI_MHF_OFL_TBL_FLUSH = 2, }; typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_mhf_offload_plumb_routing_table_cmd_fixed_param */ - A_UINT32 tlv_header; - /** vdev id*/ - A_UINT32 vdev_id; - /** action corresponds to values from enum - * wmi_mhf_ofl_table_action */ - A_UINT32 action; - /** number of entries in the table */ - A_UINT32 num_entries; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_mhf_offload_plumb_routing_table_cmd_fixed_param */ + A_UINT32 tlv_header; + /** vdev id*/ + A_UINT32 vdev_id; + /** action corresponds to values from enum + * wmi_mhf_ofl_table_action */ + A_UINT32 action; + /** number of entries in the table */ + A_UINT32 num_entries; /** Followed by the variable length TLV * wmi_mhf_offload_routing_table_entry entries[] */ } wmi_mhf_offload_plumb_routing_table_cmd; typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_mhf_offload_routing_table_entry */ - A_UINT32 tlv_header; - /** Destination node's IP address */ - WMI_IPV4_ADDR dest_ipv4_addr; - /** Next hop node's MAC address */ - wmi_mac_addr next_hop_mac_addr; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_mhf_offload_routing_table_entry */ + A_UINT32 tlv_header; + /** Destination node's IP address */ + WMI_IPV4_ADDR dest_ipv4_addr; + /** Next hop node's MAC address */ + wmi_mac_addr next_hop_mac_addr; } wmi_mhf_offload_routing_table_entry; typedef struct { - /** tlv tag and len, tag equals - * WMITLV_TAG_STRUC_wmi_dfs_radar_event */ - A_UINT32 tlv_header; + /** tlv tag and len, tag equals + * WMITLV_TAG_STRUC_wmi_dfs_radar_event */ + A_UINT32 tlv_header; - /** full 64 tsf timestamp get from MAC tsf timer indicates - * the time that the radar event uploading to host, split - * it to high 32 bit and lower 32 bit in fulltsf_high and - * full_tsf_low - */ - A_UINT32 upload_fullts_low; - A_UINT32 upload_fullts_high; + /** full 64 tsf timestamp get from MAC tsf timer indicates + * the time that the radar event uploading to host, split + * it to high 32 bit and lower 32 bit in fulltsf_high and + * full_tsf_low + */ + A_UINT32 upload_fullts_low; + A_UINT32 upload_fullts_high; - /** timestamp indicates the time when DFS pulse is detected - * equal to ppdu_end_ts - radar_pusle_summary_ts_offset - */ - A_UINT32 pulse_detect_ts; + /** timestamp indicates the time when DFS pulse is detected + * equal to ppdu_end_ts - radar_pusle_summary_ts_offset + */ + A_UINT32 pulse_detect_ts; - /** the duaration of the pulse in us */ - A_UINT32 pulse_duration; + /** the duaration of the pulse in us */ + A_UINT32 pulse_duration; - /** the center frequency of the radar pulse detected, KHz */ - A_UINT32 pulse_center_freq; + /** the center frequency of the radar pulse detected, KHz */ + A_UINT32 pulse_center_freq; - /** bandwidth of current DFS channel, MHz */ - A_UINT32 ch_bandwidth; + /** bandwidth of current DFS channel, MHz */ + A_UINT32 ch_bandwidth; - /** center channel frequency1 of current DFS channel, MHz */ - A_UINT16 ch_center_freq1; + /** center channel frequency1 of current DFS channel, MHz */ + A_UINT16 ch_center_freq1; - /** center channel frequency2 of current DFS channel, MHz, - * reserved for 160 BW mode - */ - A_UINT16 ch_center_freq2; + /** center channel frequency2 of current DFS channel, MHz, + * reserved for 160 BW mode + */ + A_UINT16 ch_center_freq2; - /** flag to indicate if this pulse is chirp */ - A_UINT8 pulse_is_chirp; + /** flag to indicate if this pulse is chirp */ + A_UINT8 pulse_is_chirp; - /** RSSI recorded in the ppdu */ - A_UINT8 rssi; + /** RSSI recorded in the ppdu */ + A_UINT8 rssi; - /** extened RSSI info */ - A_UINT8 rssi_ext; + /** extened RSSI info */ + A_UINT8 rssi_ext; - /** For 4-byte aligment padding */ - A_UINT8 reserved; + union { + A_UINT8 pmac_id; /* OBSOLETE - will be removed once all refs are gone */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT8 pdev_id; + }; - union { - /* OBSOLETE - will be removed once all refs are gone */ - A_UINT8 pmac_id; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT8 pdev_id; - }; - - /** index of peak magnitude bin (signed) */ - A_INT32 peak_sidx; + /** index of peak magnitude bin (signed) */ + A_INT32 peak_sidx; } wmi_dfs_radar_event_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_thermal_mgmt_cmd_fixed_param */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_thermal_mgmt_cmd_fixed_param */ - /*Thermal thresholds */ - A_UINT32 lower_thresh_degreeC; /* in degree C */ - A_UINT32 upper_thresh_degreeC; /* in degree C */ + /*Thermal thresholds*/ + A_UINT32 lower_thresh_degreeC; /* in degree C*/ + A_UINT32 upper_thresh_degreeC; /* in degree C*/ - /*Enable/Disable Thermal Monitoring for Mitigation */ - A_UINT32 enable; + /*Enable/Disable Thermal Monitoring for Mitigation*/ + A_UINT32 enable; } wmi_thermal_mgmt_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_thermal_mgmt_event_fixed_param */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_thermal_mgmt_event_fixed_param */ - A_UINT32 temperature_degreeC; /* temperature in degree C */ + A_UINT32 temperature_degreeC;/* temperature in degree C*/ } wmi_thermal_mgmt_event_fixed_param; /** - * This command is sent from WLAN host driver to firmware to +* This command is sent from WLAN host driver to firmware to * request firmware to configure auto shutdown timer in fw * 0 - Disable <1-19600>-Enabled and timer value is seconds (86400 seconds = 1 day maximum> */ typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_host_auto_shutdown_cfg_cmd_param */ - A_UINT32 timer_value; - /** timer value; 0=disable */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_host_auto_shutdown_cfg_cmd_param */ + A_UINT32 timer_value; /** timer value; 0=disable */ } wmi_host_auto_shutdown_cfg_cmd_fixed_param; enum wmi_host_auto_shutdown_reason { - WMI_HOST_AUTO_SHUTDOWN_REASON_UNKNOWN = 0, - WMI_HOST_AUTO_SHUTDOWN_REASON_TIMER_EXPIRY = 1, - WMI_HOST_AUTO_SHUTDOWN_REASON_MAX, + WMI_HOST_AUTO_SHUTDOWN_REASON_UNKNOWN = 0, + WMI_HOST_AUTO_SHUTDOWN_REASON_TIMER_EXPIRY = 1, + WMI_HOST_AUTO_SHUTDOWN_REASON_MAX, }; /* WMI_HOST_AUTO_SHUTDOWN_EVENTID */ -typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_host_auto_shutdown_event_fixed_param */ - A_UINT32 shutdown_reason; /* value: wmi_host_auto_shutdown_reason */ +typedef struct{ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_host_auto_shutdown_event_fixed_param */ + A_UINT32 shutdown_reason; /* value: wmi_host_auto_shutdown_reason */ } wmi_host_auto_shutdown_event_fixed_param; + + /** New WMI command to support TPC CHAINMASK ADJUSTMENT ACCORDING TO a set of conditions specified in the command. * fw will save c tpc offset/chainmask along with conditions and adjust tpc/chainmask when condition meet. * This command is only used by some customer for verification test. It is not for end-user. @@ -12457,43 +11971,43 @@ typedef struct { /** Bit map definition for basic_config_info starts */ #define WMI_TPC_CHAINMASK_CONFIG_TPC_OFFSET_S 0 #define WMI_TPC_CHAINMASK_CONFIG_TPC_OFFSET (0x1f << WMI_TPC_CHAINMASK_CONFIG_TPC_OFFSET_S) -#define WMI_TPC_CHAINMASK_CONFIG_TPC_OFFSET_GET(x) WMI_F_MS(x, WMI_TPC_CHAINMASK_CONFIG_TPC_OFFSET) -#define WMI_TPC_CHAINMASK_CONFIG_TPC_OFFSET_SET(x, z) WMI_F_RMW(x, (z) & 0x1f, WMI_TPC_CHAINMASK_CONFIG_TPC_OFFSET) +#define WMI_TPC_CHAINMASK_CONFIG_TPC_OFFSET_GET(x) WMI_F_MS(x,WMI_TPC_CHAINMASK_CONFIG_TPC_OFFSET) +#define WMI_TPC_CHAINMASK_CONFIG_TPC_OFFSET_SET(x,z) WMI_F_RMW(x,(z) & 0x1f,WMI_TPC_CHAINMASK_CONFIG_TPC_OFFSET) #define WMI_TPC_CHAINMASK_CONFIG_ACK_OFFSET_S 5 #define WMI_TPC_CHAINMASK_CONFIG_ACK_OFFSET (0x1f << WMI_TPC_CHAINMASK_CONFIG_ACK_OFFSET_S) -#define WMI_TPC_CHAINMASK_CONFIG_ACK_OFFSET_GET(x) WMI_F_MS(x, WMI_TPC_CHAINMASK_CONFIG_ACK_OFFSET) -#define WMI_TPC_CHAINMASK_CONFIG_ACK_OFFSET_SET(x, z) WMI_F_RMW(x, (z) & 0x1f, WMI_TPC_CHAINMASK_CONFIG_ACK_OFFSET) +#define WMI_TPC_CHAINMASK_CONFIG_ACK_OFFSET_GET(x) WMI_F_MS(x,WMI_TPC_CHAINMASK_CONFIG_ACK_OFFSET) +#define WMI_TPC_CHAINMASK_CONFIG_ACK_OFFSET_SET(x,z) WMI_F_RMW(x, (z) & 0x1f, WMI_TPC_CHAINMASK_CONFIG_ACK_OFFSET) #define WMI_TPC_CHAINMASK_CONFIG_CHAINMASK_S 10 #define WMI_TPC_CHAINMASK_CONFIG_CHAINMASK (0x3 << WMI_TPC_CHAINMASK_CONFIG_CHAINMASK_S) -#define WMI_TPC_CHAINMASK_CONFIG_CHAINMASK_GET(x) WMI_F_MS(x, WMI_TPC_CHAINMASK_CONFIG_CHAINMASK) -#define WMI_TPC_CHAINMASK_CONFIG_CHAINMASK_SET(x, z) WMI_F_RMW(x, (z)&0x3, WMI_TPC_CHAINMASK_CONFIG_CHAINMASK) +#define WMI_TPC_CHAINMASK_CONFIG_CHAINMASK_GET(x) WMI_F_MS(x,WMI_TPC_CHAINMASK_CONFIG_CHAINMASK) +#define WMI_TPC_CHAINMASK_CONFIG_CHAINMASK_SET(x,z) WMI_F_RMW(x, (z) & 0x3, WMI_TPC_CHAINMASK_CONFIG_CHAINMASK) #define WMI_TPC_CHAINMASK_CONFIG_BT_S 12 #define WMI_TPC_CHAINMASK_CONFIG_BT (0x3 << WMI_TPC_CHAINMASK_CONFIG_BT_S) -#define WMI_TPC_CHAINMASK_CONFIG_BT_GET(x) WMI_F_MS(x, WMI_TPC_CHAINMASK_CONFIG_BT) -#define WMI_TPC_CHAINMASK_CONFIG_BT_SET(x, z) WMI_F_RMW(x, (z)&0x3, WMI_TPC_CHAINMASK_CONFIG_BT) +#define WMI_TPC_CHAINMASK_CONFIG_BT_GET(x) WMI_F_MS(x,WMI_TPC_CHAINMASK_CONFIG_BT) +#define WMI_TPC_CHAINMASK_CONFIG_BT_SET(x,z) WMI_F_RMW(x, (z) & 0x3, WMI_TPC_CHAINMASK_CONFIG_BT) #define WMI_TPC_CHAINMASK_CONFIG_STBC_S 14 #define WMI_TPC_CHAINMASK_CONFIG_STBC (0x3 << WMI_TPC_CHAINMASK_CONFIG_STBC_S) -#define WMI_TPC_CHAINMASK_CONFIG_STBC_GET(x) WMI_F_MS(x, WMI_TPC_CHAINMASK_CONFIG_STBC) -#define WMI_TPC_CHAINMASK_CONFIG_STBC_SET(x, z) WMI_F_RMW(x, (z) & 0x3, WMI_TPC_CHAINMASK_CONFIG_STBC) +#define WMI_TPC_CHAINMASK_CONFIG_STBC_GET(x) WMI_F_MS(x,WMI_TPC_CHAINMASK_CONFIG_STBC) +#define WMI_TPC_CHAINMASK_CONFIG_STBC_SET(x,z) WMI_F_RMW(x, (z) & 0x3, WMI_TPC_CHAINMASK_CONFIG_STBC) #define WMI_TPC_CHAINMASK_CONFIG_BAND_S 16 #define WMI_TPC_CHAINMASK_CONFIG_BAND (0x1 << WMI_TPC_CHAINMASK_CONFIG_BAND_S) -#define WMI_TPC_CHAINMASK_CONFIG_BAND_GET(x) WMI_F_MS(x, WMI_TPC_CHAINMASK_CONFIG_BAND) -#define WMI_TPC_CHAINMASK_CONFIG_BAND_SET(x, z) WMI_F_RMW(x, (z) & 0x1, WMI_TPC_CHAINMASK_CONFIG_BAND) +#define WMI_TPC_CHAINMASK_CONFIG_BAND_GET(x) WMI_F_MS(x,WMI_TPC_CHAINMASK_CONFIG_BAND) +#define WMI_TPC_CHAINMASK_CONFIG_BAND_SET(x,z) WMI_F_RMW(x, (z) & 0x1, WMI_TPC_CHAINMASK_CONFIG_BAND) #define WMI_TPC_CHAINMASK_CONFIG_STREAM_S 17 #define WMI_TPC_CHAINMASK_CONFIG_STREAM (0x1 << WMI_TPC_CHAINMASK_CONFIG_STREAM_S) -#define WMI_TPC_CHAINMASK_CONFIG_STREAM_GET(x) WMI_F_MS(x, WMI_TPC_CHAINMASK_CONFIG_STREAM) -#define WMI_TPC_CHAINMASK_CONFIG_STREAM_SET(x, z) WMI_F_RMW(x, (z)&0x1, WMI_TPC_CHAINMASK_CONFIG_STREAM) +#define WMI_TPC_CHAINMASK_CONFIG_STREAM_GET(x) WMI_F_MS(x,WMI_TPC_CHAINMASK_CONFIG_STREAM) +#define WMI_TPC_CHAINMASK_CONFIG_STREAM_SET(x,z) WMI_F_RMW(x, (z) & 0x1, WMI_TPC_CHAINMASK_CONFIG_STREAM) #define WMI_TPC_CHAINMASK_CONFIG_PHY_MODE_S 18 #define WMI_TPC_CHAINMASK_CONFIG_PHY_MODE (0x7 << WMI_TPC_CHAINMASK_CONFIG_PHY_MODE_S) -#define WMI_TPC_CHAINMASK_CONFIG_PHY_MODE_GET(x) WMI_F_MS(x, WMI_TPC_CHAINMASK_CONFIG_PHY_MODE) -#define WMI_TPC_CHAINAMSK_CONFIG_PHY_MODE_SET(x, z) WMI_F_RMW(x, (z)&0x7, WMI_TPC_CHAINMASK_CONFIG_PHY_MODE) +#define WMI_TPC_CHAINMASK_CONFIG_PHY_MODE_GET(x) WMI_F_MS(x,WMI_TPC_CHAINMASK_CONFIG_PHY_MODE) +#define WMI_TPC_CHAINAMSK_CONFIG_PHY_MODE_SET(x,z) WMI_F_RMW(x, (z) & 0x7, WMI_TPC_CHAINMASK_CONFIG_PHY_MODE) #define WMI_TPC_CHAINMASK_CONFIG_CHANNEL_S 21 /* @@ -12503,8 +12017,8 @@ typedef struct { */ #define WMI_TPC_CHAINMASK_CONFIG_CHANNEL_EXIST WMI_TPC_CHAINMASK_CONFIG_CHANNEL #define WMI_TPC_CHAINMASK_CONFIG_CHANNEL (0x1 << WMI_TPC_CHAINMASK_CONFIG_CHANNEL_S) -#define WMI_TPC_CHAINMASK_CONFIG_CHANNEL_GET(x) WMI_F_MS(x, WMI_TPC_CHAINMASK_CONFIG_CHANNEL) -#define WMI_TPC_CHAINMASK_CONFIG_CHANNEL_SET(x, z) WMI_F_RMW(x, (z)&0x1, WMI_TPC_CHAINMASK_CONFIG_CHANNEL) +#define WMI_TPC_CHAINMASK_CONFIG_CHANNEL_GET(x) WMI_F_MS(x,WMI_TPC_CHAINMASK_CONFIG_CHANNEL) +#define WMI_TPC_CHAINMASK_CONFIG_CHANNEL_SET(x,z) WMI_F_RMW(x, (z) & 0x1, WMI_TPC_CHAINMASK_CONFIG_CHANNEL) #define WMI_TPC_CHAINMASK_CONFIG_RATE_S 22 /* @@ -12515,102 +12029,94 @@ typedef struct { #define WMI_TPC_CHAINMASK_CONFIG_RATE_EXIST WMI_TPC_CHAINMASK_CONFIG_RATE #define WMI_TPC_CHAINMASK_CONFIG_RATE (0x1 << WMI_TPC_CHAINMASK_CONFIG_RATE_S) #define WMI_TPC_CHAINMASK_CONFIG_RATE_GET(x) WMI_F_MS(x, WMI_TPC_CHAINMASK_CONFIG_RATE) -#define WMI_TPC_CHAINMASK_CONFIG_RATE_SET(x, z) WMI_F_RMW(x, (z)&0x1, WMI_TPC_CHAINMASK_CONFIG_RATE) +#define WMI_TPC_CHAINMASK_CONFIG_RATE_SET(x,z) WMI_F_RMW(x, (z) & 0x1, WMI_TPC_CHAINMASK_CONFIG_RATE) /** Bit map definition for basic_config_info ends */ -typedef struct { - A_UINT32 tlv_header; - /** Basic condition defined as bit map above, bitmap is chosen to save memory. - * Bit0 ~ Bit4: tpc offset which will be adjusted if condtion matches, the unit is 0.5dB. bit4 indicates signed - * Bit5 ~ Bit9: ack offset which will be adjusted if condtion matches, the unit is 0.5dB. bit9 indicates signed - * Bit10 ~ Bit11: chainmask b'00: don't care, b'01: force to use chain0, b'10: force to use chain1, b'11: force to use chain0&chain1 - * Bit12 ~ Bit13: bt condition b'00: don't care, b'01: apply only when bt on, b'10: apply only when bt off, b'11: reserved - * Bit14 ~ Bit15: stbc condition b'00: don't care, b'01: apply only when stbc on, b'10: apply only when stbc off, b'11: reserved - * Bit16 : band condition b'0: 2G, b'1: 5G - * Bit17 : stream condition: b'0: 1 stream, b'1: 2 streams - * Bit18 ~ Bit20: phy mode condition: b'000: 11b 2g, b'001: 11g 2g, b'010: 11n 2g, b'011: 11n+11ac 2g, b'100: 11a, b'101: 11n 5g, b'110: 11ac 5g, b'111: 11n+11ac 5g - * Bit21 : channel bit, if this bit is 0, then the following channel field is ignored - * Bit22 : rate bit, if this bit is 0, then the following rate0&rate1 is ignored. - * Bit23 ~ Bit31: reserved - */ - A_UINT32 basic_config_info; +typedef struct{ + A_UINT32 tlv_header; + /** Basic condition defined as bit map above, bitmap is chosen to save memory. + * Bit0 ~ Bit4: tpc offset which will be adjusted if condtion matches, the unit is 0.5dB. bit4 indicates signed + * Bit5 ~ Bit9: ack offset which will be adjusted if condtion matches, the unit is 0.5dB. bit9 indicates signed + * Bit10 ~ Bit11: chainmask b'00: don't care, b'01: force to use chain0, b'10: force to use chain1, b'11: force to use chain0&chain1 + * Bit12 ~ Bit13: bt condition b'00: don't care, b'01: apply only when bt on, b'10: apply only when bt off, b'11: reserved + * Bit14 ~ Bit15: stbc condition b'00: don't care, b'01: apply only when stbc on, b'10: apply only when stbc off, b'11: reserved + * Bit16 : band condition b'0: 2G, b'1: 5G + * Bit17 : stream condition: b'0: 1 stream, b'1: 2 streams + * Bit18 ~ Bit20: phy mode condition: b'000: 11b 2g, b'001: 11g 2g, b'010: 11n 2g, b'011: 11n+11ac 2g, b'100: 11a, b'101: 11n 5g, b'110: 11ac 5g, b'111: 11n+11ac 5g + * Bit21 : channel bit, if this bit is 0, then the following channel field is ignored + * Bit22 : rate bit, if this bit is 0, then the following rate0&rate1 is ignored. + * Bit23 ~ Bit31: reserved + */ + A_UINT32 basic_config_info; - /** channel mapping bit rule: The lower bit corresponds with smaller channel. - * it depends on Bit14 of basic_config_info - * Total 24 channels for 5G - * 36 40 44 48 52 56 60 64 100 104 108 112 116 120 124 128 132 136 140 149 153 157 161 165 - * Total 14 channels for 2G - * 1 ~ 14 - */ - A_UINT32 channel; + /** channel mapping bit rule: The lower bit corresponds with smaller channel. + * it depends on Bit14 of basic_config_info + * Total 24 channels for 5G + * 36 40 44 48 52 56 60 64 100 104 108 112 116 120 124 128 132 136 140 149 153 157 161 165 + * Total 14 channels for 2G + * 1 ~ 14 + */ + A_UINT32 channel; - /** rate mapping bit rule: The lower bit corresponds with lower rate. - * it depends on Bit16 ~ Bit18 of basic_config_info, "phy mode condition" - * Legacy rates , 11b, 11g, 11A - * 11n one stream ( ht20, ht40 ) 8+8 - * 11n two streams ( ht20, ht40 ) 8+8 - * 11ac one stream ( vht20, vht40, vht80 ) 10+10+10 - * 11ac two streams (vht20, vht40, vht80 ) 10+10+10 - */ - A_UINT32 rate0; - /** For example, for 11b, when rate0 equals 0x3, it means if actual_rate in [ "1Mbps", "2Mbps"] connection, the rate condition is true. - * For example, for 11g/11a, when rate0 equals 0xf0,it means "54Mbps", "48Mbps", "36Mbps", "24Mb's" is selected, while "18Mbps", "12Mbps", "9Mbps", "6Mbps" is not selected - */ + /** rate mapping bit rule: The lower bit corresponds with lower rate. + * it depends on Bit16 ~ Bit18 of basic_config_info, "phy mode condition" + * Legacy rates , 11b, 11g, 11A + * 11n one stream (ht20, ht40) 8+8 + * 11n two streams (ht20, ht40) 8+8 + * 11ac one stream (vht20, vht40, vht80) 10+10+10 + * 11ac two streams (vht20, vht40, vht80) 10+10+10 + */ + A_UINT32 rate0; + /** For example, for 11b, when rate0 equals 0x3, it means if actual_rate in [ "1Mbps", "2Mbps"] connection, the rate condition is true. + * For example, for 11g/11a, when rate0 equals 0xf0,it means "54Mbps", "48Mbps", "36Mbps", "24Mb's" is selected, while "18Mbps", "12Mbps", "9Mbps", "6Mbps" is not selected + */ - /** only used for "11n+11ac" combined phy_mode, (WMI_TPC_CHAINMASK_CONFIG_PHY_MODE_11N_11AC_2G , WMI_TPC_CHAINMASK_CONFIG_PHY_MODE_11N_11AC_5G) in this case, 11n rates begins on rate0, while 11ac rates begins on rate1 - */ - A_UINT32 rate1; + /** only used for "11n+11ac" combined phy_mode, (WMI_TPC_CHAINMASK_CONFIG_PHY_MODE_11N_11AC_2G , WMI_TPC_CHAINMASK_CONFIG_PHY_MODE_11N_11AC_5G) in this case, 11n rates begins on rate0, while 11ac rates begins on rate1 + */ + A_UINT32 rate1; } wmi_tpc_chainmask_config; #define WMI_TPC_CHAINMASK_CONFIG_DISABLE 0 /** control the off for the tpc & chainmask*/ #define WMI_TPC_CHAINMASK_CONFIG_ENABLE 1 /** control the on for the tpc & chainmask*/ -typedef struct { - A_UINT32 tlv_header; - A_UINT32 enable; - /** enable to set tpc & chainmask when condtions meet, 0: disabled, 1: enabled. */ - A_UINT32 num_tpc_chainmask_configs; - /** following this structure is num_tpc_chainmask_configs number of wmi_tpc_chainmask_config */ +typedef struct{ + A_UINT32 tlv_header; + A_UINT32 enable; /** enable to set tpc & chainmask when condtions meet, 0: disabled, 1: enabled. */ + A_UINT32 num_tpc_chainmask_configs; + /** following this structure is num_tpc_chainmask_configs number of wmi_tpc_chainmask_config */ } wmi_tpc_chainmask_config_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_nan_cmd_param */ - A_UINT32 data_len; - /** length in byte of data[]. */ - /* This structure is used to send REQ binary blobs - * from application/service to firmware where Host drv is pass through . - * Following this structure is the TLV: - * A_UINT8 data[]; // length in byte given by field data_len. - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_nan_cmd_param */ + A_UINT32 data_len; /** length in byte of data[]. */ +/* This structure is used to send REQ binary blobs +* from application/service to firmware where Host drv is pass through . +* Following this structure is the TLV: +* A_UINT8 data[]; <-- length in byte given by field data_len. +*/ } wmi_nan_cmd_param; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_nan_event_hdr */ - A_UINT32 data_len; - /** length in byte of data[]. */ - /* This structure is used to send REQ binary blobs - * from firmware to application/service where Host drv is pass through . - * Following this structure is the TLV: - * A_UINT8 data[]; // length in byte given by field data_len. - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_nan_event_hdr */ + A_UINT32 data_len; /** length in byte of data[]. */ +/* This structure is used to send REQ binary blobs +* from firmware to application/service where Host drv is pass through . +* Following this structure is the TLV: +* A_UINT8 data[]; <-- length in byte given by field data_len. +*/ } wmi_nan_event_hdr; /** * Event to indicate NAN discovery interface created */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_nan_disc_iface_created_event_fixed_param - */ - A_UINT32 tlv_header; - /** Unique id identifying the VDEV */ - A_UINT32 vdev_id; - /** NAN interface MAC address */ - wmi_mac_addr nan_interface_macaddr; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_nan_disc_iface_created_event_fixed_param */ + A_UINT32 tlv_header; + /** Unique id identifying the VDEV */ + A_UINT32 vdev_id; + /** NAN interface MAC address */ + wmi_mac_addr nan_interface_macaddr; } wmi_nan_disc_iface_created_event_fixed_param_PROTOTYPE; #define wmi_nan_disc_iface_created_event_fixed_param wmi_nan_disc_iface_created_event_fixed_param_PROTOTYPE @@ -12619,13 +12125,10 @@ typedef struct { * Event to indicate NAN discovery interface deleted */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_nan_disc_iface_deleted_event_fixed_param - */ - A_UINT32 tlv_header; - /** Unique id identifying the VDEV */ - A_UINT32 vdev_id; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_nan_disc_iface_deleted_event_fixed_param */ + A_UINT32 tlv_header; + /** Unique id identifying the VDEV */ + A_UINT32 vdev_id; } wmi_nan_disc_iface_deleted_event_fixed_param_PROTOTYPE; #define wmi_nan_disc_iface_deleted_event_fixed_param wmi_nan_disc_iface_deleted_event_fixed_param_PROTOTYPE @@ -12634,15 +12137,12 @@ typedef struct { * Event to indicate NAN device started new cluster */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_nan_started_cluster_event_fixed_param - */ - A_UINT32 tlv_header; - /** Unique id identifying the VDEV */ - A_UINT32 vdev_id; - /** NAN Cluster ID */ - A_UINT32 nan_cluster_id; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_nan_started_cluster_event_fixed_param */ + A_UINT32 tlv_header; + /** Unique id identifying the VDEV */ + A_UINT32 vdev_id; + /** NAN Cluster ID */ + A_UINT32 nan_cluster_id; } wmi_nan_started_cluster_event_fixed_param_PROTOTYPE; #define wmi_nan_started_cluster_event_fixed_param wmi_nan_started_cluster_event_fixed_param_PROTOTYPE @@ -12651,15 +12151,12 @@ typedef struct { * Event to indicate NAN device joined to cluster */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_nan_joined_cluster_event_fixed_param - */ - A_UINT32 tlv_header; - /** Unique id identifying the VDEV */ - A_UINT32 vdev_id; - /** NAN Cluster ID */ - A_UINT32 nan_cluster_id; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_nan_joined_cluster_event_fixed_param */ + A_UINT32 tlv_header; + /** Unique id identifying the VDEV */ + A_UINT32 vdev_id; + /** NAN Cluster ID */ + A_UINT32 nan_cluster_id; } wmi_nan_joined_cluster_event_fixed_param_PROTOTYPE; #define wmi_nan_joined_cluster_event_fixed_param wmi_nan_joined_cluster_event_fixed_param_PROTOTYPE @@ -12670,13 +12167,10 @@ typedef struct { * NAN Data get capabilities req */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ndi_get_cap_req_fixed_param - */ - A_UINT32 tlv_header; - /** unique id generated in upper layer for the transaction */ - A_UINT32 transaction_id; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ndi_get_cap_req_fixed_param */ + A_UINT32 tlv_header; + /** unique id generated in upper layer for the transaction */ + A_UINT32 transaction_id; } wmi_ndi_get_cap_req_fixed_param_PROTOTYPE; #define wmi_ndi_get_cap_req_fixed_param wmi_ndi_get_cap_req_fixed_param_PROTOTYPE @@ -12685,58 +12179,56 @@ typedef struct { * NDP Response code */ typedef enum { - NDP_RSP_CODE_REQUEST_ACCEPT = 0x00, - NDP_RSP_CODE_REQUEST_REJECT = 0x01, - NDP_RSP_CODE_REQUEST_DEFER = 0x02, + NDP_RSP_CODE_REQUEST_ACCEPT = 0x00, + NDP_RSP_CODE_REQUEST_REJECT = 0x01, + NDP_RSP_CODE_REQUEST_DEFER = 0x02, } wmi_ndp_rsp_code_PROTOTYPE; #define wmi_ndp_rsp_code wmi_ndp_rsp_code_PROTOTYPE /** -* NDP Channel configuration type -*/ + * NDP Channel configuration type + */ typedef enum { - WMI_NDP_CHANNEL_NOT_REQUESTED = 0, /* Channel will not configured */ - WMI_NDP_REQUEST_CHANNEL_SETUP = 1, /* Channel will be provided and is optional/hint */ - WMI_NDP_FORCE_CHANNEL_SETUP = 2/* NDP must start on the provided channel */ + WMI_NDP_CHANNEL_NOT_REQUESTED = 0, /* Channel will not configured */ + WMI_NDP_REQUEST_CHANNEL_SETUP = 1, /* Channel will be provided and is optional/hint */ + WMI_NDP_FORCE_CHANNEL_SETUP = 2/* NDP must start on the provided channel */ } wmi_ndp_channel_cfg_PROTOTYPE; #define wmi_ndp_channel_cfg wmi_ndp_channel_cfg_PROTOTYPE + /** * NDP Initiator requesting a data session */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ndp_initiator_req_fixed_param - */ - A_UINT32 tlv_header; - /** Unique id identifying the VDEV */ - A_UINT32 vdev_id; - /** unique id generated in upper layer for the transaction */ - A_UINT32 transaction_id; - /** Unique Instance Id identifying the Responder's service */ - A_UINT32 service_instance_id; - /** Discovery MAC addr of the publisher/peer */ - wmi_mac_addr peer_discovery_mac_addr; - /* Actual number of bytes in TLV ndp_cfg */ - A_UINT32 ndp_cfg_len; - /* Actual number of bytes in TLV ndp_app_info */ - A_UINT32 ndp_app_info_len; - /** NDP channel configuration type defined in wmi_ndp_channel_cfg */ - A_UINT32 ndp_channel_cfg; - /** NAN Cipher Suite Shared Key */ - A_UINT32 nan_csid; - /** Actual number of bytes in TLV nan_pmk */ - A_UINT32 nan_pmk_len; - /** - * TLV (tag length value ) parameters follow the ndp_initiator_req - * structure. The TLV's are: - * wmi_channel channel; - * A_UINT8 ndp_cfg[]; - * A_UINT8 ndp_app_info[]; - * A_UINT8 nan_pmk[]; - */ + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ndp_initiator_req_fixed_param */ + A_UINT32 tlv_header; + /** Unique id identifying the VDEV */ + A_UINT32 vdev_id; + /** unique id generated in upper layer for the transaction */ + A_UINT32 transaction_id; + /** Unique Instance Id identifying the Responder's service */ + A_UINT32 service_instance_id; + /** Discovery MAC addr of the publisher/peer */ + wmi_mac_addr peer_discovery_mac_addr; + /** Actual number of bytes in TLV ndp_cfg */ + A_UINT32 ndp_cfg_len; + /** Actual number of bytes in TLV ndp_app_info */ + A_UINT32 ndp_app_info_len; + /** NDP channel configuration type defined in wmi_ndp_channel_cfg */ + A_UINT32 ndp_channel_cfg; + /** NAN Cipher Suite Shared Key */ + A_UINT32 nan_csid; + /** Actual number of bytes in TLV nan_pmk */ + A_UINT32 nan_pmk_len; + /** + * TLV (tag length value) parameters follow the ndp_initiator_req + * structure. The TLV's are: + * wmi_channel channel; + * A_UINT8 ndp_cfg[]; + * A_UINT8 ndp_app_info[]; + * A_UINT8 nan_pmk[]; + */ } wmi_ndp_initiator_req_fixed_param_PROTOTYPE; #define wmi_ndp_initiator_req_fixed_param wmi_ndp_initiator_req_fixed_param_PROTOTYPE @@ -12746,37 +12238,34 @@ typedef struct { * for data request indication from the peer */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ndp_responder_req_fixed_param - */ - A_UINT32 tlv_header; - /** Unique id identifying the VDEV */ - A_UINT32 vdev_id; - /** unique id generated in upper layer for the transaction */ - A_UINT32 transaction_id; - /** - * Unique token Id generated on the initiator/responder - * side used for a NDP session between two NAN devices - */ - A_UINT32 ndp_instance_id; - /** Response Code defined in wmi_ndp_rsp_code */ - A_UINT32 rsp_code; - /** Number of bytes in TLV ndp_cfg */ - A_UINT32 ndp_cfg_len; - /** Number of bytes in TLV ndp_app_info */ - A_UINT32 ndp_app_info_len; - /** NAN Cipher Suite Shared Key */ - A_UINT32 nan_csid; - /** Actual number of bytes in TLV nan_pmk */ - A_UINT32 nan_pmk_len; - /** - * TLV (tag length value ) parameters follow the ndp_responder_req - * structure. The TLV's are: - * A_UINT8 ndp_cfg[]; - * A_UINT8 ndp_app_info[]; - * A_UINT8 nan_pmk[]; - */ + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ndp_responder_req_fixed_param */ + A_UINT32 tlv_header; + /** Unique id identifying the VDEV */ + A_UINT32 vdev_id; + /** unique id generated in upper layer for the transaction */ + A_UINT32 transaction_id; + /** + * Unique token Id generated on the initiator/responder + * side used for a NDP session between two NAN devices + */ + A_UINT32 ndp_instance_id; + /** Response Code defined in wmi_ndp_rsp_code */ + A_UINT32 rsp_code; + /** Number of bytes in TLV ndp_cfg */ + A_UINT32 ndp_cfg_len; + /** Number of bytes in TLV ndp_app_info */ + A_UINT32 ndp_app_info_len; + /** NAN Cipher Suite Shared Key */ + A_UINT32 nan_csid; + /** Actual number of bytes in TLV nan_pmk */ + A_UINT32 nan_pmk_len; + /** + * TLV (tag length value) parameters follow the ndp_responder_req + * structure. The TLV's are: + * A_UINT8 ndp_cfg[]; + * A_UINT8 ndp_app_info[]; + * A_UINT8 nan_pmk[]; + */ } wmi_ndp_responder_req_fixed_param_PROTOTYPE; #define wmi_ndp_responder_req_fixed_param wmi_ndp_responder_req_fixed_param_PROTOTYPE @@ -12785,9 +12274,9 @@ typedef struct { * NDP end type */ typedef enum { - WMI_NDP_END_TYPE_UNSPECIFIED = 0x00, - WMI_NDP_END_TYPE_PEER_UNAVAILABLE = 0x01, - WMI_NDP_END_TYPE_OTA_FRAME = 0x02, + WMI_NDP_END_TYPE_UNSPECIFIED = 0x00, + WMI_NDP_END_TYPE_PEER_UNAVAILABLE = 0x01, + WMI_NDP_END_TYPE_OTA_FRAME = 0x02, } wmi_ndp_end_type_PROTOTYPE; #define wmi_ndp_end_type wmi_ndp_end_type_PROTOTYPE @@ -12796,9 +12285,9 @@ typedef enum { * NDP end reason code */ typedef enum { - WMI_NDP_END_REASON_UNSPECIFIED = 0x00, - WMI_NDP_END_REASON_INACTIVITY = 0x01, - WMI_NDP_END_REASON_PEER_DATA_END = 0x02, + WMI_NDP_END_REASON_UNSPECIFIED = 0x00, + WMI_NDP_END_REASON_INACTIVITY = 0x01, + WMI_NDP_END_REASON_PEER_DATA_END = 0x02, } wmi_ndp_end_reason_code_PROTOTYPE; #define wmi_ndp_end_reason_code wmi_ndp_end_reason_code_PROTOTYPE @@ -12807,10 +12296,10 @@ typedef enum { * NDP end request */ typedef struct { - /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ndp_end_req */ - A_UINT32 tlv_header; - /** NDP instance id */ - A_UINT32 ndp_instance_id; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ndp_end_req */ + A_UINT32 tlv_header; + /** NDP instance id */ + A_UINT32 ndp_instance_id; } wmi_ndp_end_req_PROTOTYPE; #define wmi_ndp_end_req wmi_ndp_end_req_PROTOTYPE @@ -12819,18 +12308,15 @@ typedef struct { * NDP End request */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ndp_end_req_fixed_param - */ - A_UINT32 tlv_header; - /** unique id generated in upper layer for the transaction */ - A_UINT32 transaction_id; - /** - * TLV (tag length value ) parameters follow the ndp_end_req - * structure. The TLV's are: - * wmi_ndp_end_req ndp_end_req_list[]; - */ + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ndp_end_req_fixed_param */ + A_UINT32 tlv_header; + /** unique id generated in upper layer for the transaction */ + A_UINT32 transaction_id; + /** + * TLV (tag length value) parameters follow the ndp_end_req + * structure. The TLV's are: + * wmi_ndp_end_req ndp_end_req_list[]; + */ } wmi_ndp_end_req_fixed_param_PROTOTYPE; #define wmi_ndp_end_req_fixed_param wmi_ndp_end_req_fixed_param_PROTOTYPE @@ -12841,21 +12327,18 @@ typedef struct { * Event to indicate NAN Data Interface capabilities cmd */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ndi_cap_rsp_event_fixed_param - */ - A_UINT32 tlv_header; - /** Copy of transaction_id received in wmi_ndi_get_cap_req */ - A_UINT32 transaction_id; - /** Max ndi interface support */ - A_UINT32 max_ndi_interfaces; - /** Max ndp sessions can support */ - A_UINT32 max_ndp_sessions; - /** Max number of peer's per ndi */ - A_UINT32 max_peers_per_ndi; - /** which combination of bands is supported - see NAN_DATA_SUPPORTED_BAND enums */ - A_UINT32 nan_data_supported_bands; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ndi_cap_rsp_event_fixed_param */ + A_UINT32 tlv_header; + /** Copy of transaction_id received in wmi_ndi_get_cap_req */ + A_UINT32 transaction_id; + /** Max ndi interface support */ + A_UINT32 max_ndi_interfaces; + /** Max ndp sessions can support */ + A_UINT32 max_ndp_sessions; + /** Max number of peer's per ndi */ + A_UINT32 max_peers_per_ndi; + /** which combination of bands is supported - see NAN_DATA_SUPPORTED_BAND enums */ + A_UINT32 nan_data_supported_bands; } wmi_ndi_cap_rsp_event_fixed_param_PROTOTYPE; #define wmi_ndi_cap_rsp_event_fixed_param wmi_ndi_cap_rsp_event_fixed_param_PROTOTYPE @@ -12864,8 +12347,8 @@ typedef struct { * NDP command response code */ typedef enum { - NDP_CMD_RSP_STATUS_SUCCESS = 0x00, - NDP_CMD_RSP_STATUS_ERROR = 0x01, + NDP_CMD_RSP_STATUS_SUCCESS = 0x00, + NDP_CMD_RSP_STATUS_ERROR = 0x01, } wmi_ndp_cmd_rsp_status_PROTOTYPE; #define wmi_ndp_cmd_rsp_status wmi_ndp_cmd_rsp_status_PROTOTYPE @@ -12874,23 +12357,20 @@ typedef enum { * Event response for wmi_ndp_initiator_req */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ndp_initiator_rsp_event_fixed_param - */ - A_UINT32 tlv_header; - /** Unique id identifying the VDEV */ - A_UINT32 vdev_id; - /** Copy of transaction_id received in wmi_ndp_initiator_req */ - A_UINT32 transaction_id; - /** Response status defined in wmi_ndp_cmd_rsp_status*/ - A_UINT32 rsp_status; - A_UINT32 reason_code; - /* - * Unique token Id generated on the initiator/responder - * side used for a NDP session between two NAN devices - */ - A_UINT32 ndp_instance_id; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ndp_initiator_rsp_event_fixed_param */ + A_UINT32 tlv_header; + /** Unique id identifying the VDEV */ + A_UINT32 vdev_id; + /** Copy of transaction_id received in wmi_ndp_initiator_req */ + A_UINT32 transaction_id; + /** Response status defined in wmi_ndp_cmd_rsp_status*/ + A_UINT32 rsp_status; + A_UINT32 reason_code; + /** + * Unique token Id generated on the initiator/responder + * side used for a NDP session between two NAN devices + */ + A_UINT32 ndp_instance_id; } wmi_ndp_initiator_rsp_event_fixed_param_PROTOTYPE; #define wmi_ndp_initiator_rsp_event_fixed_param wmi_ndp_initiator_rsp_event_fixed_param_PROTOTYPE @@ -12899,27 +12379,24 @@ typedef struct { * Event response for wmi_ndp_responder_req cmd */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ndp_responder_rsp_event_fixed_param - */ - A_UINT32 tlv_header; - /** Unique id identifying the VDEV */ - A_UINT32 vdev_id; - /** Copy of transaction_id received in wmi_ndp_responder_req */ - A_UINT32 transaction_id; - /** Response status defined in wmi_ndp_cmd_rsp_status*/ - A_UINT32 rsp_status; - A_UINT32 reason_code; - /* - * Unique token Id generated on the initiator/responder - * side used for a NDP session between two NAN devices - */ - A_UINT32 ndp_instance_id; - /* NDI mac address of the peer */ - wmi_mac_addr peer_ndi_mac_addr; - /** Host can create peer if this entry is TRUE */ - A_UINT32 create_peer; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ndp_responder_rsp_event_fixed_param */ + A_UINT32 tlv_header; + /** Unique id identifying the VDEV */ + A_UINT32 vdev_id; + /** Copy of transaction_id received in wmi_ndp_responder_req */ + A_UINT32 transaction_id; + /** Response status defined in wmi_ndp_cmd_rsp_status*/ + A_UINT32 rsp_status; + A_UINT32 reason_code; + /** + * Unique token Id generated on the initiator/responder + * side used for a NDP session between two NAN devices + */ + A_UINT32 ndp_instance_id; + /** NDI mac address of the peer */ + wmi_mac_addr peer_ndi_mac_addr; + /** Host can create peer if this entry is TRUE */ + A_UINT32 create_peer; } wmi_ndp_responder_rsp_event_fixed_param_PROTOTYPE; #define wmi_ndp_responder_rsp_event_fixed_param wmi_ndp_responder_rsp_event_fixed_param_PROTOTYPE @@ -12927,13 +12404,10 @@ typedef struct { * Active ndp instance id */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_active_ndp_instance_id - */ - A_UINT32 tlv_header; - /* NDP instance id */ - A_UINT32 ndp_instance_id; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_active_ndp_instance_id */ + A_UINT32 tlv_header; + /** NDP instance id */ + A_UINT32 ndp_instance_id; } wmi_active_ndp_instance_id_PROTOTYPE; #define wmi_active_ndp_instance_id wmi_active_ndp_instance_id_PROTOTYPE @@ -12942,17 +12416,14 @@ typedef struct { * NDP end response per ndi */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ndp_end_rsp_per_ndi - */ - A_UINT32 tlv_header; - /** Unique id identifying the VDEV */ - A_UINT32 vdev_id; - /** Peer MAC addr */ - wmi_mac_addr peer_mac_addr; - /** Number of active ndps on this ndi */ - A_UINT32 num_active_ndps_on_ndi; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ndp_end_rsp_per_ndi */ + A_UINT32 tlv_header; + /** Unique id identifying the VDEV */ + A_UINT32 vdev_id; + /** Peer MAC addr */ + wmi_mac_addr peer_mac_addr; + /** Number of active ndps on this ndi */ + A_UINT32 num_active_ndps_on_ndi; } wmi_ndp_end_rsp_per_ndi_PROTOTYPE; #define wmi_ndp_end_rsp_per_ndi wmi_ndp_end_rsp_per_ndi_PROTOTYPE @@ -12961,22 +12432,19 @@ typedef struct { * Event response for wmi_ndp_end_req cmd */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ndp_end_rsp_event_fixed_param - */ - A_UINT32 tlv_header; - /** Copy of transaction_id received in wmi_ndp_end_req */ - A_UINT32 transaction_id; - /** Response status defined in wmi_ndp_cmd_rsp_status*/ - A_UINT32 rsp_status; - A_UINT32 reason_code; - /** - * TLV (tag length value ) parameters follow the ndp_end_rsp - * structure. The TLV's are: - * wmi_ndp_end_rsp_per_ndi ndp_end_rsp_per_ndis[]; - * wmi_active_ndp_instance_id active_ndp_instances_id[]; - */ + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ndp_end_rsp_event_fixed_param */ + A_UINT32 tlv_header; + /** Copy of transaction_id received in wmi_ndp_end_req */ + A_UINT32 transaction_id; + /** Response status defined in wmi_ndp_cmd_rsp_status*/ + A_UINT32 rsp_status; + A_UINT32 reason_code; + /** + * TLV (tag length value) parameters follow the ndp_end_rsp + * structure. The TLV's are: + * wmi_ndp_end_rsp_per_ndi ndp_end_rsp_per_ndis[]; + * wmi_active_ndp_instance_id active_ndp_instances_id[]; + */ } wmi_ndp_end_rsp_event_fixed_param_PROTOTYPE; #define wmi_ndp_end_rsp_event_fixed_param wmi_ndp_end_rsp_event_fixed_param_PROTOTYPE @@ -12987,8 +12455,8 @@ typedef struct { * NDP self role */ typedef enum { - WMI_NDP_INITIATOR_ROLE, - WMI_NDP_RESPONDER_ROLE, + WMI_NDP_INITIATOR_ROLE, + WMI_NDP_RESPONDER_ROLE, } wmi_ndp_self_role_PROTOTYPE; #define wmi_ndp_self_role wmi_ndp_self_role_PROTOTYPE @@ -12997,59 +12465,54 @@ typedef enum { * NDP accept policy */ typedef enum { - WMI_NDP_ACCEPT_POLICY_NONE, - WMI_NDP_ACCEPT_POLICY_ALL, + WMI_NDP_ACCEPT_POLICY_NONE, + WMI_NDP_ACCEPT_POLICY_ALL, } wmi_ndp_accept_policy_PROTOTYPE; #define wmi_ndp_accept_policy wmi_ndp_accept_policy_PROTOTYPE /** * Event indication received on the responder side when a NDP Initiator request/ - * NDP session is initiated on the Initiator side - * (self role will be NDP_RESPONDER_ROLE) + * NDP session is initiated on the Initiator side (self role will be NDP_RESPONDER_ROLE) * * Event indication received on the initiator side when a - * NDP responder request on the Initiator side - * (self role will be NDP_INITIATOR_ROLE) + * NDP responder request on the Initiator side (self role will be NDP_INITIATOR_ROLE) */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ndp_indication_event_fixed_param - */ - A_UINT32 tlv_header; - /** Unique id identifying the VDEV */ - A_UINT32 vdev_id; - /** Self NDP Role defined in wmi_ndp_self_role */ - A_UINT32 self_ndp_role; - /** Accept policy defined in wmi_ndp_accept_policy */ - A_UINT32 accept_policy; - /** Unique Instance Id corresponding to a service/session. */ - A_UINT32 service_instance_id; - /** Discovery MAC addr of the peer/initiator */ - wmi_mac_addr peer_discovery_mac_addr; - /* NDI mac address of the peer */ - wmi_mac_addr peer_ndi_mac_addr; - /** - * Unique token Id generated on the initiator/responder - * side used for a NDP session between two NAN devices - */ - A_UINT32 ndp_instance_id; - /** Number of bytes in TLV wmi_ndp_cfg */ - A_UINT32 ndp_cfg_len; - /** Number of bytes in TLV wmi_ndp_app_info */ - A_UINT32 ndp_app_info_len; - /** Peer NAN Cipher Suite Shared Key */ - A_UINT32 nan_csid; - /** Actual number of bytes in TLV nan_scid */ - A_UINT32 nan_scid_len; - /** - * TLV (tag length value ) parameters follow the ndp_indication - * structure. The TLV's are: - * A_UINT8 ndp_cfg[]; - * A_UINT8 ndp_app_info[]; - * A_UINT8 nan_scid[]; - */ + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ndp_indication_event_fixed_param */ + A_UINT32 tlv_header; + /** Unique id identifying the VDEV */ + A_UINT32 vdev_id; + /** Self NDP Role defined in wmi_ndp_self_role */ + A_UINT32 self_ndp_role; + /** Accept policy defined in wmi_ndp_accept_policy */ + A_UINT32 accept_policy; + /** Unique Instance Id corresponding to a service/session. */ + A_UINT32 service_instance_id; + /** Discovery MAC addr of the peer/initiator */ + wmi_mac_addr peer_discovery_mac_addr; + /** NDI mac address of the peer */ + wmi_mac_addr peer_ndi_mac_addr; + /** + * Unique token Id generated on the initiator/responder + * side used for a NDP session between two NAN devices + */ + A_UINT32 ndp_instance_id; + /** Number of bytes in TLV wmi_ndp_cfg */ + A_UINT32 ndp_cfg_len; + /** Number of bytes in TLV wmi_ndp_app_info */ + A_UINT32 ndp_app_info_len; + /** Peer NAN Cipher Suite Shared Key */ + A_UINT32 nan_csid; + /** Actual number of bytes in TLV nan_scid */ + A_UINT32 nan_scid_len; + /** + * TLV (tag length value) parameters follow the ndp_indication + * structure. The TLV's are: + * A_UINT8 ndp_cfg[]; + * A_UINT8 ndp_app_info[]; + * A_UINT8 nan_scid[]; + */ } wmi_ndp_indication_event_fixed_param_PROTOTYPE; #define wmi_ndp_indication_event_fixed_param wmi_ndp_indication_event_fixed_param_PROTOTYPE @@ -13059,39 +12522,33 @@ typedef struct { * initiator and responder side confirming a NDP session */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ndp_confirm_event_fixed_param - */ - A_UINT32 tlv_header; - /** Unique id identifying the VDEV */ - A_UINT32 vdev_id; - /** - * Unique token Id generated on the initiator/responder - * side used for a NDP session between two NAN devices - */ - A_UINT32 ndp_instance_id; - /* - * NDI mac address of the peer - * (required to derive target ipv6 address) - */ - wmi_mac_addr peer_ndi_mac_addr; - /** Response Code defined in wmi_ndp_rsp_code */ - A_UINT32 rsp_code; - /** Number of bytes in TLV wmi_ndp_cfg */ - A_UINT32 ndp_cfg_len; - /** Number of bytes in TLV wmi_ndp_app_info */ - A_UINT32 ndp_app_info_len; - /** Reason Code */ - A_UINT32 reason_code; - /** Number of active ndps on this peer */ - A_UINT32 num_active_ndps_on_peer; - /** - * TLV (tag length value ) parameters follow the ndp_confirm - * structure. The TLV's are: - * A_UINT8 ndp_cfg[]; - * A_UINT8 ndp_app_info[]; - */ + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ndp_confirm_event_fixed_param */ + A_UINT32 tlv_header; + /** Unique id identifying the VDEV */ + A_UINT32 vdev_id; + /** + * Unique token Id generated on the initiator/responder + * side used for a NDP session between two NAN devices + */ + A_UINT32 ndp_instance_id; + /** NDI mac address of the peer (required to derive target ipv6 address) */ + wmi_mac_addr peer_ndi_mac_addr; + /** Response Code defined in wmi_ndp_rsp_code */ + A_UINT32 rsp_code; + /** Number of bytes in TLV wmi_ndp_cfg */ + A_UINT32 ndp_cfg_len; + /** Number of bytes in TLV wmi_ndp_app_info */ + A_UINT32 ndp_app_info_len; + /** Reason Code */ + A_UINT32 reason_code; + /** Number of active ndps on this peer */ + A_UINT32 num_active_ndps_on_peer; + /** + * TLV (tag length value) parameters follow the ndp_confirm + * structure. The TLV's are: + * A_UINT8 ndp_cfg[]; + * A_UINT8 ndp_app_info[]; + */ } wmi_ndp_confirm_event_fixed_param_PROTOTYPE; #define wmi_ndp_confirm_event_fixed_param wmi_ndp_confirm_event_fixed_param_PROTOTYPE @@ -13100,37 +12557,34 @@ typedef struct { * Event indication received on the initiator/responder side terminating a NDP session */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ndp_end_indication - */ - A_UINT32 tlv_header; - /** type defined in wmi_ndp_end_type */ - A_UINT32 type; - /* Unique id identifying the VDEV */ - A_UINT32 vdev_id; - /** reason_code defined in wmi_ndp_end_reason_code */ - A_UINT32 reason_code; - /** NDP instance id */ - A_UINT32 ndp_instance_id; - /* NDI MAC addr of the peer */ - wmi_mac_addr peer_ndi_mac_addr; - /* Number of active ndps on this peer */ - A_UINT32 num_active_ndps_on_peer; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ndp_end_indication */ + A_UINT32 tlv_header; + /** type defined in wmi_ndp_end_type */ + A_UINT32 type; + /** Unique id identifying the VDEV */ + A_UINT32 vdev_id; + /** reason_code defined in wmi_ndp_end_reason_code */ + A_UINT32 reason_code; + /** NDP instance id */ + A_UINT32 ndp_instance_id; + /** NDI MAC addr of the peer */ + wmi_mac_addr peer_ndi_mac_addr; + /** Number of active ndps on this peer */ + A_UINT32 num_active_ndps_on_peer; } wmi_ndp_end_indication_PROTOTYPE; #define wmi_ndp_end_indication wmi_ndp_end_indication_PROTOTYPE typedef struct { - A_UINT32 tlv_header; - A_UINT32 num_data; - /* followed by WMITLV_TAG_ARRAY_BYTE */ + A_UINT32 tlv_header; + A_UINT32 num_data; + /* followed by WMITLV_TAG_ARRAY_BYTE */ } wmi_diag_data_container_event_fixed_param; enum { - WMI_PDEV_PARAM_TXPOWER_REASON_NONE = 0, - WMI_PDEV_PARAM_TXPOWER_REASON_SAR, - WMI_PDEV_PARAM_TXPOWER_REASON_MAX + WMI_PDEV_PARAM_TXPOWER_REASON_NONE = 0, + WMI_PDEV_PARAM_TXPOWER_REASON_SAR, + WMI_PDEV_PARAM_TXPOWER_REASON_MAX }; #define PDEV_PARAM_TXPOWER_VALUE_MASK 0x000000FF @@ -13140,16 +12594,16 @@ enum { #define PDEV_PARAM_TXPOWER_REASON_SHIFT 8 #define SET_PDEV_PARAM_TXPOWER_VALUE(txpower_param, value) \ - ((txpower_param) &= ~PDEV_PARAM_TXPOWER_VALUE_MASK, (txpower_param) |= ((value) << PDEV_PARAM_TXPOWER_VALUE_SHIFT)) + ((txpower_param) &= ~PDEV_PARAM_TXPOWER_VALUE_MASK, (txpower_param) |= ((value) << PDEV_PARAM_TXPOWER_VALUE_SHIFT)) -#define SET_PDEV_PARAM_TXPOWER_REASON(txpower_param, value) \ - ((txpower_param) &= ~PDEV_PARAM_TXPOWER_REASON_MASK, (txpower_param) |= ((value) << PDEV_PARAM_TXPOWER_REASON_SHIFT)) +#define SET_PDEV_PARAM_TXPOWER_REASON(txpower_param, value) \ + ((txpower_param) &= ~PDEV_PARAM_TXPOWER_REASON_MASK, (txpower_param) |= ((value) << PDEV_PARAM_TXPOWER_REASON_SHIFT)) -#define GET_PDEV_PARAM_TXPOWER_VALUE(txpower_param) \ - (((txpower_param) & PDEV_PARAM_TXPOWER_VALUE_MASK) >> PDEV_PARAM_TXPOWER_VALUE_SHIFT) +#define GET_PDEV_PARAM_TXPOWER_VALUE(txpower_param) \ + (((txpower_param) & PDEV_PARAM_TXPOWER_VALUE_MASK) >> PDEV_PARAM_TXPOWER_VALUE_SHIFT) -#define GET_PDEV_PARAM_TXPOWER_REASON(txpower_param) \ - (((txpower_param) & PDEV_PARAM_TXPOWER_REASON_MASK) >> PDEV_PARAM_TXPOWER_REASON_SHIFT) +#define GET_PDEV_PARAM_TXPOWER_REASON(txpower_param) \ + (((txpower_param) & PDEV_PARAM_TXPOWER_REASON_MASK) >> PDEV_PARAM_TXPOWER_REASON_SHIFT) /** * This command is sent from WLAN host driver to firmware to @@ -13166,17 +12620,17 @@ enum { * UART before modem is powered on. */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_modem_power_state_cmd_param */ - A_UINT32 tlv_header; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_modem_power_state_cmd_param */ + A_UINT32 tlv_header; - /** Modem power state parameter */ - A_UINT32 modem_power_state; + /** Modem power state parameter */ + A_UINT32 modem_power_state; } wmi_modem_power_state_cmd_param; enum { - WMI_MODEM_STATE_OFF = 0, - WMI_MODEM_STATE_ON + WMI_MODEM_STATE_OFF = 0, + WMI_MODEM_STATE_ON }; /** @@ -13192,88 +12646,85 @@ enum { * commit_limits = 1, at which point it will apply all the received * specifications. */ - typedef struct { - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sar_limits_cmd_param */ - A_UINT32 tlv_header; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sar_limits_cmd_param */ + A_UINT32 tlv_header; - /** when set to WMI_SAR_FEATURE_ON, enable SAR feature; - * with BDF (SET_0 to 4) or WMI - * if set to WMI_SAR_FEATURE_OFF, disable feature; - * if set to WMI_SAR_FEATURE_NO_CHANGE, do not alter state of feature; - */ + /** when set to WMI_SAR_FEATURE_ON_*, enable SAR feature + * with BDF (SET_0 to 4) or WMI + * if set to WMI_SAR_FEATURE_OFF, disable feature; + * if set to WMI_SAR_FEATURE_NO_CHANGE, do not alter state of feature; + */ + A_UINT32 sar_enable; - A_UINT32 sar_enable; + /** number of items in sar_limits[] */ + A_UINT32 num_limit_rows; - /** number of items in sar_limits[] */ - A_UINT32 num_limit_rows; - /** once received and is set to 1, FW will calculate the power limits - * and send set_power command to apply them. - * Otherwise just update local values stored in FW until a future msg - * with commit_limits=1 arrives. - */ + /** once received and is set to 1, FW will calculate the power limits + * and send set_power command to apply them. + * Otherwise just update local values stored in FW until a future msg + * with commit_limits=1 arrives. + */ + A_UINT32 commit_limits; - A_UINT32 commit_limits; - - /** - * TLV (tag length value) parameters follow the sar_limit_cmd_row - * structure. The TLV's are: - * wmi_sar_limit_cmd_row sar_limits[]; - */ + /** + * TLV (tag length value) parameters follow the sar_limit_cmd_row + * structure. The TLV's are: + * wmi_sar_limit_cmd_row sar_limits[]; + */ } wmi_sar_limits_cmd_fixed_param; enum wmi_sar_feature_state_flags { - WMI_SAR_FEATURE_OFF = 0, - WMI_SAR_FEATURE_ON_SET_0, - WMI_SAR_FEATURE_ON_SET_1, - WMI_SAR_FEATURE_ON_SET_2, - WMI_SAR_FEATURE_ON_SET_3, - WMI_SAR_FEATURE_ON_SET_4, - WMI_SAR_FEATURE_NO_CHANGE, - WMI_SAR_FEATURE_ON_USER_DEFINED, + WMI_SAR_FEATURE_OFF = 0, + WMI_SAR_FEATURE_ON_SET_0, + WMI_SAR_FEATURE_ON_SET_1, + WMI_SAR_FEATURE_ON_SET_2, + WMI_SAR_FEATURE_ON_SET_3, + WMI_SAR_FEATURE_ON_SET_4, + WMI_SAR_FEATURE_NO_CHANGE, + WMI_SAR_FEATURE_ON_USER_DEFINED, }; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sar_limit_cmd_row */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sar_limit_cmd_row */ - /** Current values: WMI_SAR_2G_ID, WMI_SAR_5G_ID. Can be extended by adding - * new band_id values . - */ - A_UINT32 band_id; + /** Current values: WMI_SAR_2G_ID, WMI_SAR_5G_ID. Can be extended by adding + * new band_id values . + */ + A_UINT32 band_id; - A_UINT32 chain_id; + A_UINT32 chain_id; - /** Current values: WMI_SAR_MOD_CCK, WMI_SAR_MOD_OFDM */ - A_UINT32 mod_id; + /** Current values: WMI_SAR_MOD_CCK, WMI_SAR_MOD_OFDM */ + A_UINT32 mod_id; - /** actual power limit value, in steps of 0.5 dBm */ - A_UINT32 limit_value; + /** actual power limit value, in steps of 0.5 dBm */ + A_UINT32 limit_value; - /** in case the OEM doesn't care about one of the qualifiers from above, - * the bit for that qualifier within the validity_bitmap can be set to 0 - * so that limit is applied to all possible cases of this qualifier - * (i.e. if a qualifier's validity_bitmap flag is 0, the qualifier is - * treated as a wildcard). - * Current masks: - * WMI_SAR_BAND_ID_VALID_MASK - * WMI_SAR_CHAIN_ID_VALID_MASK - * WMI_SAR_MOD_ID_VALID_MASK - * Example: if !WMI_IS_SAR_MOD_ID_VALID(bitmap), - * it means apply same limit_value to both WMI_SAR_MOD_CCK and - * WMI_SAR_MOD_OFDM cases. - */ - - A_UINT32 validity_bitmap; + /** in case the OEM doesn't care about one of the qualifiers from above, + * the bit for that qualifier within the validity_bitmap can be set to 0 + * so that limit is applied to all possible cases of this qualifier + * (i.e. if a qualifier's validity_bitmap flag is 0, the qualifier is + * treated as a wildcard). + * Current masks: + * WMI_SAR_BAND_ID_VALID_MASK + * WMI_SAR_CHAIN_ID_VALID_MASK + * WMI_SAR_MOD_ID_VALID_MASK + * Example: if !WMI_IS_SAR_MOD_ID_VALID(bitmap), + * it means apply same limit_value to both WMI_SAR_MOD_CCK and + * WMI_SAR_MOD_OFDM cases. + */ + A_UINT32 validity_bitmap; } wmi_sar_limit_cmd_row; enum wmi_sar_band_id_flags { - WMI_SAR_2G_ID = 0, - WMI_SAR_5G_ID + WMI_SAR_2G_ID = 0, + WMI_SAR_5G_ID }; enum wmi_sar_mod_id_flags { - WMI_SAR_MOD_CCK = 0, - WMI_SAR_MOD_OFDM + WMI_SAR_MOD_CCK = 0, + WMI_SAR_MOD_OFDM }; #define WMI_SAR_BAND_ID_VALID_MASK (0x1) @@ -13295,223 +12746,210 @@ enum wmi_sar_mod_id_flags { generated whenever firmware roamed to new AP silently and (a) If the host is awake, FW sends the event to the host immediately . (b) If host is in sleep then either - (1) FW waits until host sends WMI_PDEV_RESUME_CMDID or WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID + (1) FW waits until host sends WMI_PDEV_RESUME_CMDID or WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID command to FW (part of host wake up sequence from low power mode) before sending the event host. - (2) data/mgmt frame is received from roamed AP, which needs to return to host - */ + (2) data/mgmt frame is received from roamed AP, which needs to return to host +*/ typedef struct { - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_key_material */ - A_UINT32 tlv_header; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_key_material */ + A_UINT32 tlv_header; - A_UINT8 kck[GTK_OFFLOAD_KCK_BYTES]; /* EAPOL-Key Key Confirmation Key (KCK) */ - A_UINT8 kek[GTK_OFFLOAD_KEK_BYTES]; /* EAPOL-Key Key Encryption Key (KEK) */ - A_UINT8 replay_counter[GTK_REPLAY_COUNTER_BYTES]; + A_UINT8 kck[GTK_OFFLOAD_KCK_BYTES]; /* EAPOL-Key Key Confirmation Key (KCK) */ + A_UINT8 kek[GTK_OFFLOAD_KEK_BYTES]; /* EAPOL-Key Key Encryption Key (KEK) */ + A_UINT8 replay_counter[GTK_REPLAY_COUNTER_BYTES]; } wmi_key_material; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_synch_event_fixed_param */ - /** Unique id identifying the VDEV on which roaming is done by firmware */ - A_UINT32 vdev_id; - /** auth_status: connected or authorized */ - A_UINT32 auth_status; - /* - * roam_reason: - * bits 0-3 for roam reason see WMI_ROAM_REASON_XXX - * bits 4-5 for subnet status see WMI_ROAM_SUBNET_CHANGE_STATUS_XXX. - */ - A_UINT32 roam_reason; - /** associated AP's rssi calculated by FW when reason code is WMI_ROAM_REASON_LOW_RSSI. not valid if roam_reason is BMISS */ - A_UINT32 rssi; - /** MAC address of roamed AP */ - wmi_mac_addr bssid; /* BSSID */ - /** whether the frame is beacon or probe rsp */ - A_UINT32 is_beacon; - /** the length of beacon/probe rsp */ - A_UINT32 bcn_probe_rsp_len; - /** the length of reassoc rsp */ - A_UINT32 reassoc_rsp_len; - /** the length of reassoc req */ - A_UINT32 reassoc_req_len; - /** - * TLV (tag length value ) parameters follows roam_synch_event - * The TLV's are: - * A_UINT8 bcn_probe_rsp_frame[]; length identified by bcn_probe_rsp_len - * A_UINT8 reassoc_rsp_frame[]; length identified by reassoc_rsp_len - * wmi_channel chan; - * wmi_key_material key; - * A_UINT32 status; subnet changed status not being used - * currently. will pass the information using roam_status. - * A_UINT8 reassoc_req_frame[]; length identified by reassoc_req_len - **/ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_synch_event_fixed_param */ + /** Unique id identifying the VDEV on which roaming is done by firmware */ + A_UINT32 vdev_id; + /** auth_status: connected or authorized */ + A_UINT32 auth_status; + /** roam_reason: + * bits 0-3 for roam reason see WMI_ROAM_REASON_XXX + * bits 4-5 for subnet status see WMI_ROAM_SUBNET_CHANGE_STATUS_XXX. + */ + A_UINT32 roam_reason; + /** associated AP's rssi calculated by FW when reason code is WMI_ROAM_REASON_LOW_RSSI. not valid if roam_reason is BMISS */ + A_UINT32 rssi; + /** MAC address of roamed AP */ + wmi_mac_addr bssid; /* BSSID */ + /** whether the frame is beacon or probe rsp */ + A_UINT32 is_beacon; + /** the length of beacon/probe rsp */ + A_UINT32 bcn_probe_rsp_len; + /** the length of reassoc rsp */ + A_UINT32 reassoc_rsp_len; + /** the length of reassoc req */ + A_UINT32 reassoc_req_len; + /** + * TLV (tag length value) parameters follows roam_synch_event + * The TLV's are: + * A_UINT8 bcn_probe_rsp_frame[]; length identified by bcn_probe_rsp_len + * A_UINT8 reassoc_rsp_frame[]; length identified by reassoc_rsp_len + * wmi_channel chan; + * wmi_key_material key; + * A_UINT32 status; subnet changed status not being used currently. + * will pass the information using roam_status. + * A_UINT8 reassoc_req_frame[]; length identified by reassoc_req_len + * + **/ } wmi_roam_synch_event_fixed_param; #define WMI_PEER_ESTIMATED_LINKSPEED_INVALID 0xFFFFFFFF typedef struct { - /* TLV tag and len; tag equals WMITLV_TAG_STRUC_ wmi_peer_get_estimated_linkspeed_cmd_fixed_param */ - A_UINT32 tlv_header; - /** MAC address of the peer for which the estimated link speed is required. */ - wmi_mac_addr peer_macaddr; - /* Set to 1 only if vdev_id field is valid */ - A_UINT32 valid_vdev_id; - /* VDEV to which the peer belongs to */ - A_UINT32 vdev_id; + /* TLV tag and len; tag equals WMITLV_TAG_STRUC_ wmi_peer_get_estimated_linkspeed_cmd_fixed_param */ + A_UINT32 tlv_header; + /** MAC address of the peer for which the estimated link speed is required. */ + wmi_mac_addr peer_macaddr; + /* Set to 1 only if vdev_id field is valid */ + A_UINT32 valid_vdev_id; + /* VDEV to which the peer belongs to */ + A_UINT32 vdev_id; } wmi_peer_get_estimated_linkspeed_cmd_fixed_param; typedef struct { - /* TLV tag and len; tag equals WMITLV_TAG_STRUC_ wmi_peer_estimated_linkspeed_event_fixed_param */ - A_UINT32 tlv_header; - /** MAC address of the peer for which the estimated link speed is required. - */ - wmi_mac_addr peer_macaddr; - /* Estimated link speed in kbps. - * When est_linkspeed_kbps is not valid, the value is set to WMI_PEER_ESTIMATED_LINKSPEED_INVALID. - */ - A_UINT32 est_linkspeed_kbps; - /* Set to 1 only if vdev_id field is valid */ - A_UINT32 valid_vdev_id; - /* VDEV to which the peer belongs to */ - A_UINT32 vdev_id; + /* TLV tag and len; tag equals WMITLV_TAG_STRUC_ wmi_peer_estimated_linkspeed_event_fixed_param */ + A_UINT32 tlv_header; + /** MAC address of the peer for which the estimated link speed is required. + */ + wmi_mac_addr peer_macaddr; + /* Estimated link speed in kbps. + * When est_linkspeed_kbps is not valid, the value is set to WMI_PEER_ESTIMATED_LINKSPEED_INVALID. + */ + A_UINT32 est_linkspeed_kbps; + /* Set to 1 only if vdev_id field is valid */ + A_UINT32 valid_vdev_id; + /* VDEV to which the peer belongs to */ + A_UINT32 vdev_id; } wmi_peer_estimated_linkspeed_event_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals */ - /* vdev ID */ - A_UINT32 vdev_id; - A_UINT32 data_len; - /** length in byte of data[]. */ - /* This structure is used to send REQ binary blobs - * from application/service to firmware where Host drv is pass through . - * Following this structure is the TLV: - * A_UINT8 data[]; // length in byte given by field data_len. - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals */ + /* vdev ID */ + A_UINT32 vdev_id; + A_UINT32 data_len; /** length in byte of data[]. */ + /* This structure is used to send REQ binary blobs +* from application/service to firmware where Host drv is pass through . +* Following this structure is the TLV: +* A_UINT8 data[]; <-- length in byte given by field data_len. +*/ } wmi_req_stats_ext_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_stats1_event_fix_param */ - A_UINT32 vdev_id; - /** vdev ID */ - A_UINT32 data_len; - /** length in byte of data[]. */ - /* This structure is used to send REQ binary blobs - * from firmware to application/service where Host drv is pass through . - * Following this structure is the TLV: - * A_UINT8 data[]; // length in byte given by field data_len. - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_stats1_event_fix_param */ + A_UINT32 vdev_id; /** vdev ID */ + A_UINT32 data_len; /** length in byte of data[]. */ + /* This structure is used to send REQ binary blobs + * from firmware to application/service where Host drv is pass through . + * Following this structure is the TLV: + * A_UINT8 data[]; <-- length in byte given by field data_len. + */ } wmi_stats_ext_event_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_delete_resp_event_fixed_param */ - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /** peer MAC address */ - wmi_mac_addr peer_macaddr; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_delete_resp_event_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; } wmi_peer_delete_resp_event_fixed_param; typedef struct { - /* TLV tag and len; tag equals WMITLV_TAG_STRUC_ wmi_peer_state_event_fixed_param */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; /* vdev ID */ - /* MAC address of the peer for which the estimated link speed is required. */ - wmi_mac_addr peer_macaddr; - A_UINT32 state; /* peer state */ + /* TLV tag and len; tag equals WMITLV_TAG_STRUC_ wmi_peer_state_event_fixed_param */ + A_UINT32 tlv_header; + A_UINT32 vdev_id; /* vdev ID */ + /* MAC address of the peer for which the estimated link speed is required.*/ + wmi_mac_addr peer_macaddr; + A_UINT32 state; /* peer state */ } wmi_peer_state_event_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_assoc_conf_event_fixed_param - */ - A_UINT32 tlv_header; - /* unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /* peer MAC address */ - wmi_mac_addr peer_macaddr; + /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_assoc_conf_event_fixed_param */ + A_UINT32 tlv_header; + /* unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /* peer MAC address */ + wmi_mac_addr peer_macaddr; } wmi_peer_assoc_conf_event_fixed_param; enum { - WMI_2G4_HT40_OBSS_SCAN_PASSIVE = 0, - /** scan_type: passive */ - WMI_2G4_HT40_OBSS_SCAN_ACTIVE, - /** scan_type: active */ + WMI_2G4_HT40_OBSS_SCAN_PASSIVE = 0, /** scan_type: passive */ + WMI_2G4_HT40_OBSS_SCAN_ACTIVE, /** scan_type: active */ }; typedef struct { - /** - * TLV tag and len; - * tag equals WMITLV_TAG_STRUC_wmi_obss_scan_enalbe_cmd_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; - /** - * active or passive. if active all the channels are actively scanned. - * if passive then all the channels are passively scanned - */ - A_UINT32 scan_type; - /** - * FW can perform multiple scans with in a OBSS scan interval. - * For each scan, - * if the scan is passive then obss_scan_passive_dwell is minimum dwell to be used for each channel , - * if the scan is active then obss_scan_active_dwell is minimum dwell to be used for each channel . - * The unit for these 2 parameters is TUs. - */ - A_UINT32 obss_scan_passive_dwell; - A_UINT32 obss_scan_active_dwell; - /** - * OBSS scan interval . FW needs to perform one or more OBSS scans within this interval and fulfill the - * both min and total per channel dwell time requirement - */ - A_UINT32 bss_channel_width_trigger_scan_interval; - /** - * FW can perform multiple scans with in a OBSS scan interval. - * For each scan, - * the total per channel dwell time across all scans with in OBSS scan interval should be - * atleast obss_scan_passive_total_per channel for passive scas and obss_scan_active_total_per channel - * for active scans and , - * The unit for these 2 parameters is TUs. - */ - A_UINT32 obss_scan_passive_total_per_channel; - A_UINT32 obss_scan_active_total_per_channel; - A_UINT32 bss_width_channel_transition_delay_factor; - /** parameter to check exemption from scan */ - A_UINT32 obss_scan_activity_threshold; - /** parameter to check exemption from scan */ - /** following two parameters used by FW to fill IEs when sending 20/40 coexistence action frame to AP */ - A_UINT32 forty_mhz_intolerant; - /** STA 40M bandwidth intolerant capability */ - A_UINT32 current_operating_class; - /** STA current operating class */ - /** length of 2.4GHz channel list to scan at, channel list in tlv->channels[] */ - A_UINT32 channel_len; - /** length of optional ie data to append to probe reqest when active scan, ie data in tlv->ie_field[] */ - A_UINT32 ie_len; + /** + * TLV tag and len; + * tag equals WMITLV_TAG_STRUC_wmi_obss_scan_enalbe_cmd_fixed_param + */ + A_UINT32 tlv_header; + A_UINT32 vdev_id; + /** + * active or passive. if active all the channels are actively scanned. + * if passive then all the channels are passively scanned + */ + A_UINT32 scan_type; + /** + * FW can perform multiple scans with in a OBSS scan interval. + * For each scan, + * if the scan is passive then obss_scan_passive_dwell is minimum dwell to be used for each channel , + * if the scan is active then obss_scan_active_dwell is minimum dwell to be used for each channel . + * The unit for these 2 parameters is TUs. + */ + A_UINT32 obss_scan_passive_dwell; + A_UINT32 obss_scan_active_dwell; + /** + * OBSS scan interval . FW needs to perform one or more OBSS scans within this interval and fulfill the + * both min and total per channel dwell time requirement + */ + A_UINT32 bss_channel_width_trigger_scan_interval; + /** + * FW can perform multiple scans with in a OBSS scan interval. + * For each scan, + * the total per channel dwell time across all scans with in OBSS scan interval should be + * atleast obss_scan_passive_total_per channel for passive scas and obss_scan_active_total_per channel + * for active scans and , + * The unit for these 2 parameters is TUs. + */ + A_UINT32 obss_scan_passive_total_per_channel; + A_UINT32 obss_scan_active_total_per_channel; + A_UINT32 bss_width_channel_transition_delay_factor; /** parameter to check exemption from scan */ + A_UINT32 obss_scan_activity_threshold; /** parameter to check exemption from scan */ + /** following two parameters used by FW to fill IEs when sending 20/40 coexistence action frame to AP */ + A_UINT32 forty_mhz_intolerant; /** STA 40M bandwidth intolerant capability */ + A_UINT32 current_operating_class; /** STA current operating class */ + /** length of 2.4GHz channel list to scan at, channel list in tlv->channels[] */ + A_UINT32 channel_len; + /** length of optional ie data to append to probe reqest when active scan, ie data in tlv->ie_field[] */ + A_UINT32 ie_len; } wmi_obss_scan_enable_cmd_fixed_param; typedef struct { - /** - * TLV tag and len; - * tag equals WMITLV_TAG_STRUC_wmi_obss_scan_disalbe_cmd_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; + /** + * TLV tag and len; + * tag equals WMITLV_TAG_STRUC_wmi_obss_scan_disalbe_cmd_fixed_param + */ + A_UINT32 tlv_header; + A_UINT32 vdev_id; } wmi_obss_scan_disable_cmd_fixed_param; typedef struct { - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_offload_prb_rsp_tx_status_event_fixed_param */ - A_UINT32 tlv_header; - /** unique id identifying the VDEV */ - A_UINT32 vdev_id; - /** prb rsp tx status, values defined in enum WMI_FRAME_TX_STATUS */ - A_UINT32 tx_status; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_offload_prb_rsp_tx_status_event_fixed_param */ + A_UINT32 tlv_header; + /** unique id identifying the VDEV */ + A_UINT32 vdev_id; + /** prb rsp tx status, values defined in enum WMI_FRAME_TX_STATUS */ + A_UINT32 tx_status; } wmi_offload_prb_rsp_tx_status_event_fixed_param; typedef enum { - WMI_FRAME_TX_OK, /* frame tx ok */ - WMI_FRAME_TX_XRETRY, /* excessivley retried */ - WMI_FRAME_TX_DROP, /* frame dropped by FW due to resources */ - WMI_FRAME_TX_FILTERED, /* frame filtered by hardware */ + WMI_FRAME_TX_OK, /* frame tx ok */ + WMI_FRAME_TX_XRETRY, /* excessivley retried */ + WMI_FRAME_TX_DROP, /* frame dropped by FW due to resources */ + WMI_FRAME_TX_FILTERED, /* frame filtered by hardware */ } WMI_FRAME_TX_STATUS; /** @@ -13527,221 +12965,211 @@ typedef enum { * avoidance information update. */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_chan_avoid_update_cmd_param */ - A_UINT32 tlv_header; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_chan_avoid_update_cmd_param */ + A_UINT32 tlv_header; } wmi_chan_avoid_update_cmd_param; /* ExtScan operation mode */ typedef enum { - WMI_EXTSCAN_MODE_NONE = 0x0000, - WMI_EXTSCAN_MODE_START = 0x0001, /* ExtScan/TableMonitoring operation started */ - WMI_EXTSCAN_MODE_STOP = 0x0002, /* ExtScan/TableMonitoring operation stopped */ - WMI_EXTSCAN_MODE_IGNORED = 0x0003, /* ExtScan command ignored due to error */ + WMI_EXTSCAN_MODE_NONE = 0x0000, + WMI_EXTSCAN_MODE_START = 0x0001, /* ExtScan/TableMonitoring operation started */ + WMI_EXTSCAN_MODE_STOP = 0x0002, /* ExtScan/TableMonitoring operation stopped */ + WMI_EXTSCAN_MODE_IGNORED = 0x0003, /* ExtScan command ignored due to error */ } wmi_extscan_operation_mode; /* Channel Mask */ typedef enum { - WMI_CHANNEL_BAND_UNSPECIFIED = 0x0000, - WMI_CHANNEL_BAND_24 = 0x0001, /* 2.4 channel */ - WMI_CHANNEL_BAND_5_NON_DFS = 0x0002, /* 5G Channels (No DFS channels) */ - WMI_CHANNEL_BAND_DFS = 0x0004, /* DFS channels */ + WMI_CHANNEL_BAND_UNSPECIFIED = 0x0000, + WMI_CHANNEL_BAND_24 = 0x0001, /* 2.4 channel */ + WMI_CHANNEL_BAND_5_NON_DFS = 0x0002, /* 5G Channels (No DFS channels) */ + WMI_CHANNEL_BAND_DFS = 0x0004, /* DFS channels */ } wmi_channel_band_mask; typedef enum { - WMI_EXTSCAN_CYCLE_STARTED_EVENT = 0x0001, - WMI_EXTSCAN_CYCLE_COMPLETED_EVENT = 0x0002, - WMI_EXTSCAN_BUCKET_STARTED_EVENT = 0x0004, - WMI_EXTSCAN_BUCKET_COMPLETED_EVENT = 0x0008, - WMI_EXTSCAN_BUCKET_FAILED_EVENT = 0x0010, - WMI_EXTSCAN_BUCKET_OVERRUN_EVENT = 0x0020, - WMI_EXTSCAN_THRESHOLD_NUM_SCANS = 0x0040, - WMI_EXTSCAN_THRESHOLD_PERCENT = 0x0080, + WMI_EXTSCAN_CYCLE_STARTED_EVENT = 0x0001, + WMI_EXTSCAN_CYCLE_COMPLETED_EVENT = 0x0002, + WMI_EXTSCAN_BUCKET_STARTED_EVENT = 0x0004, + WMI_EXTSCAN_BUCKET_COMPLETED_EVENT = 0x0008, + WMI_EXTSCAN_BUCKET_FAILED_EVENT = 0x0010, + WMI_EXTSCAN_BUCKET_OVERRUN_EVENT = 0x0020, + WMI_EXTSCAN_THRESHOLD_NUM_SCANS = 0x0040, + WMI_EXTSCAN_THRESHOLD_PERCENT = 0x0080, - WMI_EXTSCAN_EVENT_MAX = 0x8000 + WMI_EXTSCAN_EVENT_MAX = 0x8000 } wmi_extscan_event_type; #define WMI_EXTSCAN_CYCLE_EVENTS_MASK (WMI_EXTSCAN_CYCLE_STARTED_EVENT | \ - WMI_EXTSCAN_CYCLE_COMPLETED_EVENT) + WMI_EXTSCAN_CYCLE_COMPLETED_EVENT) #define WMI_EXTSCAN_BUCKET_EVENTS_MASK (WMI_EXTSCAN_BUCKET_STARTED_EVENT | \ - WMI_EXTSCAN_BUCKET_COMPLETED_EVENT | \ - WMI_EXTSCAN_BUCKET_FAILED_EVENT | \ - WMI_EXTSCAN_BUCKET_OVERRUN_EVENT) + WMI_EXTSCAN_BUCKET_COMPLETED_EVENT | \ + WMI_EXTSCAN_BUCKET_FAILED_EVENT | \ + WMI_EXTSCAN_BUCKET_OVERRUN_EVENT) typedef enum { - WMI_EXTSCAN_NO_FORWARDING = 0x0000, - WMI_EXTSCAN_FORWARD_FRAME_TO_HOST = 0x0001 + WMI_EXTSCAN_NO_FORWARDING = 0x0000, + WMI_EXTSCAN_FORWARD_FRAME_TO_HOST = 0x0001 } wmi_extscan_forwarding_flags; typedef enum { - /* Use Motion Sensor Detection */ - WMI_EXTSCAN_USE_MSD = 0x0001, - /* Extscan LPASS extended batching feature is supported and enabled */ - WMI_EXTSCAN_EXTENDED_BATCHING_EN = 0x0002, + WMI_EXTSCAN_USE_MSD = 0x0001, /* Use Motion Sensor Detection */ + WMI_EXTSCAN_EXTENDED_BATCHING_EN = 0x0002, /* Extscan LPASS extended batching feature is supported and enabled */ } wmi_extscan_configuration_flags; + typedef enum { - /* - * Cache the results of bucket whose - * configuration flags has this bit set - */ - WMI_EXTSCAN_BUCKET_CACHE_RESULTS = 0x0001, - /* Report ext scan results to context hub or not.*/ - WMI_EXTSCAN_REPORT_EVENT_CONTEXT_HUB = 0x0002, + WMI_EXTSCAN_BUCKET_CACHE_RESULTS = 0x0001, /* Cache the results of bucket whose configuration flags has this bit set */ + WMI_EXTSCAN_REPORT_EVENT_CONTEXT_HUB = 0x0002, /* Report ext scan results to context hub or not. */ } wmi_extscan_bucket_configuration_flags; typedef enum { - WMI_EXTSCAN_STATUS_OK = 0, - WMI_EXTSCAN_STATUS_ERROR = 0x80000000, - WMI_EXTSCAN_STATUS_INVALID_PARAMETERS, - WMI_EXTSCAN_STATUS_INTERNAL_ERROR + WMI_EXTSCAN_STATUS_OK = 0, + WMI_EXTSCAN_STATUS_ERROR = 0x80000000, + WMI_EXTSCAN_STATUS_INVALID_PARAMETERS, + WMI_EXTSCAN_STATUS_INTERNAL_ERROR } wmi_extscan_start_stop_status; typedef struct { - /** Request ID - to identify command. Cannot be 0 */ - A_UINT32 request_id; - /** Requestor ID - client requesting ExtScan */ - A_UINT32 requestor_id; - /** VDEV id(interface) that is requesting scan */ - A_UINT32 vdev_id; + /** Request ID - to identify command. Cannot be 0 */ + A_UINT32 request_id; + /** Requestor ID - client requesting ExtScan */ + A_UINT32 requestor_id; + /** VDEV id(interface) that is requesting scan */ + A_UINT32 vdev_id; } wmi_extscan_command_id; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_ARRAY_STRUC */ - /** channel number */ - A_UINT32 channel; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_ARRAY_STRUC */ + /** channel number */ + A_UINT32 channel; - /** dwell time in msec - use defaults if 0 */ - A_UINT32 min_dwell_time; - A_UINT32 max_dwell_time; - /** passive/active channel and other flags */ - A_UINT32 control_flags; /* 0 => active, 1 => passive scan; ignored for DFS */ + /** dwell time in msec - use defaults if 0 */ + A_UINT32 min_dwell_time; + A_UINT32 max_dwell_time; + + /** passive/active channel and other flags */ + A_UINT32 control_flags; /* 0 => active, 1 => passive scan; ignored for DFS */ } wmi_extscan_bucket_channel; /* Scan Bucket specification */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_ARRAY_STRUC */ - /** Bucket ID - 0-based */ - A_UINT32 bucket_id; - /** ExtScan events subscription - events to be reported to client (see wmi_extscan_event_type) */ - A_UINT32 notify_extscan_events; - /** Options to forward scan results - see wmi_extscan_forwarding_flags */ - A_UINT32 forwarding_flags; - /* - * ExtScan configuration flags - - * wmi_extscan__bucket_configuration_flags - */ - A_UINT32 configuration_flags; - /** DEPRECATED member:multiplier to be applied to the periodic scan's base period */ - A_UINT32 base_period_multiplier; - /** dwell time in msec on active channels - use defaults if 0 */ - A_UINT32 min_dwell_time_active; - A_UINT32 max_dwell_time_active; - /** dwell time in msec on passive channels - use defaults if 0 */ - A_UINT32 min_dwell_time_passive; - A_UINT32 max_dwell_time_passive; - /** see wmi_channel_band_mask; when equal to WMI_CHANNEL_UNSPECIFIED, use channel list */ - A_UINT32 channel_band; - /** number of channels (if channel_band is WMI_CHANNEL_UNSPECIFIED) */ - A_UINT32 num_channels; - /** scan period upon start or restart of the bucket - periodicity of the bucket to begin with */ - A_UINT32 min_period; - /** period above which exponent is not applied anymore */ - A_UINT32 max_period; - /** - * back off value to be applied to bucket's periodicity after exp_max_step_count scan cycles - * new_bucket_period = last_bucket_period + last_exponent_period exp_backoff - */ - A_UINT32 exp_backoff; - /** number of scans performed at a given periodicity after which exponential back off value is - * applied to current periodicity to obtain a newer one - */ - A_UINT32 exp_max_step_count; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_ARRAY_STRUC */ + /** Bucket ID - 0-based */ + A_UINT32 bucket_id; + /** ExtScan events subscription - events to be reported to client (see wmi_extscan_event_type) */ + A_UINT32 notify_extscan_events; + /** Options to forward scan results - see wmi_extscan_forwarding_flags */ + A_UINT32 forwarding_flags; + /** ExtScan configuration flags - wmi_extscan_bucket_configuration_flags */ + A_UINT32 configuration_flags; + /** DEPRECATED member: multiplier to be applied to the periodic scan's base period */ + A_UINT32 base_period_multiplier; + /** dwell time in msec on active channels - use defaults if 0 */ + A_UINT32 min_dwell_time_active; + A_UINT32 max_dwell_time_active; + /** dwell time in msec on passive channels - use defaults if 0 */ + A_UINT32 min_dwell_time_passive; + A_UINT32 max_dwell_time_passive; + /** see wmi_channel_band_mask; when equal to WMI_CHANNEL_UNSPECIFIED, use channel list */ + A_UINT32 channel_band; + /** number of channels (if channel_band is WMI_CHANNEL_UNSPECIFIED) */ + A_UINT32 num_channels; + /** scan period upon start or restart of the bucket - periodicity of the bucket to begin with */ + A_UINT32 min_period; + /** period above which exponent is not applied anymore */ + A_UINT32 max_period; + /** back off value to be applied to bucket's periodicity after exp_max_step_count scan cycles + * new_bucket_period = last_bucket_period + last_exponent_period * exp_backoff + */ + A_UINT32 exp_backoff; + /** number of scans performed at a given periodicity after which exponential back off value is + * applied to current periodicity to obtain a newer one + */ + A_UINT32 exp_max_step_count; /** Followed by the variable length TLV chan_list: * wmi_extscan_bucket_channel chan_list[] */ } wmi_extscan_bucket; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_start_cmd_fixed_param */ - /** Request ID - to identify command. Cannot be 0 */ - A_UINT32 request_id; - /** Requestor ID - client requesting ExtScan */ - A_UINT32 requestor_id; - /** VDEV id(interface) that is requesting scan */ - A_UINT32 vdev_id; - /** table ID - to allow support for multiple simultaneous requests */ - A_UINT32 table_id; - /** Base period (milliseconds) used by scan buckets to define periodicity of the scans */ - A_UINT32 base_period; - /** Maximum number of iterations to run - one iteration is the scanning of the least frequent bucket */ - A_UINT32 max_iterations; - /** Options to forward scan results - see wmi_extscan_forwarding_flags */ - A_UINT32 forwarding_flags; - /** ExtScan configuration flags - wmi_extscan_configuration_flags */ - A_UINT32 configuration_flags; - /** ExtScan events subscription - bitmask indicating which events should be send to client (see wmi_extscan_event_type) */ - A_UINT32 notify_extscan_events; - /** Scan Priority, input to scan scheduler */ - A_UINT32 scan_priority; - /** Maximum number of BSSIDs to cache on each scan cycle */ - A_UINT32 max_bssids_per_scan_cycle; - /** Minimum RSSI value to report */ - A_UINT32 min_rssi; - /** Maximum table usage in percentage */ - A_UINT32 max_table_usage; - /** default dwell time in msec on active channels */ - A_UINT32 min_dwell_time_active; - A_UINT32 max_dwell_time_active; - /** default dwell time in msec on passive channels */ - A_UINT32 min_dwell_time_passive; - A_UINT32 max_dwell_time_passive; - /** min time in msec on the BSS channel,only valid if atleast one VDEV is active*/ - A_UINT32 min_rest_time; - /** max rest time in msec on the BSS channel,only valid if at least one VDEV is active*/ - /** the scanner will rest on the bss channel at least min_rest_time. after min_rest_time the scanner - * will start checking for tx/rx activity on all VDEVs. if there is no activity the scanner will - * switch to off channel. if there is activity the scanner will let the radio on the bss channel - * until max_rest_time expires.at max_rest_time scanner will switch to off channel - * irrespective of activity. activity is determined by the idle_time parameter. - */ - A_UINT32 max_rest_time; - /** time before sending next set of probe requests. - * The scanner keeps repeating probe requests transmission with period specified by repeat_probe_time. - * The number of probe requests specified depends on the ssid_list and bssid_list - */ - /** Max number of probes to be sent */ - A_UINT32 n_probes; - /** time in msec between 2 sets of probe requests. */ - A_UINT32 repeat_probe_time; - /** time in msec between 2 consequetive probe requests with in a set. */ - A_UINT32 probe_spacing_time; - /** data inactivity time in msec on bss channel that will be used by scanner for measuring the inactivity */ - A_UINT32 idle_time; - /** maximum time in msec allowed for scan */ - A_UINT32 max_scan_time; - /** delay in msec before sending first probe request after switching to a channel */ - A_UINT32 probe_delay; - /** Scan control flags */ - A_UINT32 scan_ctrl_flags; - /** Burst duration time in msec*/ - A_UINT32 burst_duration; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_start_cmd_fixed_param */ + /** Request ID - to identify command. Cannot be 0 */ + A_UINT32 request_id; + /** Requestor ID - client requesting ExtScan */ + A_UINT32 requestor_id; + /** VDEV id(interface) that is requesting scan */ + A_UINT32 vdev_id; + /** table ID - to allow support for multiple simultaneous requests */ + A_UINT32 table_id; + /** Base period (milliseconds) used by scan buckets to define periodicity of the scans */ + A_UINT32 base_period; + /** Maximum number of iterations to run - one iteration is the scanning of the least frequent bucket */ + A_UINT32 max_iterations; + /** Options to forward scan results - see wmi_extscan_forwarding_flags */ + A_UINT32 forwarding_flags; + /** ExtScan configuration flags - wmi_extscan_configuration_flags */ + A_UINT32 configuration_flags; + /** ExtScan events subscription - bitmask indicating which events should be send to client (see wmi_extscan_event_type) */ + A_UINT32 notify_extscan_events; + /** Scan Priority, input to scan scheduler */ + A_UINT32 scan_priority; + /** Maximum number of BSSIDs to cache on each scan cycle */ + A_UINT32 max_bssids_per_scan_cycle; + /** Minimum RSSI value to report */ + A_UINT32 min_rssi; + /** Maximum table usage in percentage */ + A_UINT32 max_table_usage; + /** default dwell time in msec on active channels */ + A_UINT32 min_dwell_time_active; + A_UINT32 max_dwell_time_active; + /** default dwell time in msec on passive channels */ + A_UINT32 min_dwell_time_passive; + A_UINT32 max_dwell_time_passive; + /** min time in msec on the BSS channel,only valid if atleast one VDEV is active*/ + A_UINT32 min_rest_time; + /** max rest time in msec on the BSS channel,only valid if at least one VDEV is active*/ + /** the scanner will rest on the bss channel at least min_rest_time. after min_rest_time the scanner + * will start checking for tx/rx activity on all VDEVs. if there is no activity the scanner will + * switch to off channel. if there is activity the scanner will let the radio on the bss channel + * until max_rest_time expires.at max_rest_time scanner will switch to off channel + * irrespective of activity. activity is determined by the idle_time parameter. + */ + A_UINT32 max_rest_time; + /** time before sending next set of probe requests. + * The scanner keeps repeating probe requests transmission with period specified by repeat_probe_time. + * The number of probe requests specified depends on the ssid_list and bssid_list + */ + /** Max number of probes to be sent */ + A_UINT32 n_probes; + /** time in msec between 2 sets of probe requests. */ + A_UINT32 repeat_probe_time; + /** time in msec between 2 consequetive probe requests with in a set. */ + A_UINT32 probe_spacing_time; + /** data inactivity time in msec on bss channel that will be used by scanner for measuring the inactivity */ + A_UINT32 idle_time; + /** maximum time in msec allowed for scan */ + A_UINT32 max_scan_time; + /** delay in msec before sending first probe request after switching to a channel */ + A_UINT32 probe_delay; + /** Scan control flags */ + A_UINT32 scan_ctrl_flags; + /** Burst duration time in msec*/ + A_UINT32 burst_duration; - /** number of bssids in the TLV bssid_list[] */ - A_UINT32 num_bssid; - /** number of ssid in the TLV ssid_list[] */ - A_UINT32 num_ssids; - /** number of bytes in TLV ie_data[] */ - A_UINT32 ie_len; - /** number of buckets in the TLV bucket_list[] */ - A_UINT32 num_buckets; - /** in number of scans, send notifications to host after these many scans */ - A_UINT32 report_threshold_num_scans; - - /** number of channels in channel_list[] determined by the - sum of wmi_extscan_bucket.num_channels in array */ + /** number of bssids in the TLV bssid_list[] */ + A_UINT32 num_bssid; + /** number of ssid in the TLV ssid_list[] */ + A_UINT32 num_ssids; + /** number of bytes in TLV ie_data[] */ + A_UINT32 ie_len; + /** number of buckets in the TLV bucket_list[] */ + A_UINT32 num_buckets; + /** in number of scans, send notifications to host after these many scans */ + A_UINT32 report_threshold_num_scans; + /** number of channels in channel_list[] determined by the + sum of wmi_extscan_bucket.num_channels in array */ /** - * TLV (tag length value ) parameters follow the extscan_cmd + * TLV (tag length value) parameters follow the extscan_cmd * structure. The TLV's are: * wmi_ssid ssid_list[]; * wmi_mac_addr bssid_list[]; @@ -13752,728 +13180,697 @@ typedef struct { } wmi_extscan_start_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_stop_cmd_fixed_param */ - /** Request ID - to match running command. 0 matches any request */ - A_UINT32 request_id; - /** Requestor ID - client requesting stop */ - A_UINT32 requestor_id; - /** VDEV id(interface) that is requesting scan */ - A_UINT32 vdev_id; - /** table ID - to allow support for multiple simultaneous requests */ - A_UINT32 table_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_stop_cmd_fixed_param */ + /** Request ID - to match running command. 0 matches any request */ + A_UINT32 request_id; + /** Requestor ID - client requesting stop */ + A_UINT32 requestor_id; + /** VDEV id(interface) that is requesting scan */ + A_UINT32 vdev_id; + /** table ID - to allow support for multiple simultaneous requests */ + A_UINT32 table_id; } wmi_extscan_stop_cmd_fixed_param; enum wmi_extscan_get_cached_results_flags { - WMI_EXTSCAN_GET_CACHED_RESULTS_FLAG_NONE = 0x0000, - WMI_EXTSCAN_GET_CACHED_RESULTS_FLAG_FLUSH_TABLE = 0x0001 + WMI_EXTSCAN_GET_CACHED_RESULTS_FLAG_NONE = 0x0000, + WMI_EXTSCAN_GET_CACHED_RESULTS_FLAG_FLUSH_TABLE = 0x0001 }; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_get_cached_results_cmd_fixed_param */ - /** request ID - used to correlate command with events */ - A_UINT32 request_id; - /** Requestor ID - client that requested results */ - A_UINT32 requestor_id; - /** VDEV id(interface) that is requesting scan */ - A_UINT32 vdev_id; - /** table ID - to allow support for multiple simultaneous requests */ - A_UINT32 table_id; - /** maximum number of results to be returned */ - A_UINT32 max_results; - /** flush BSSID list - wmi_extscan_get_cached_results_flags */ - A_UINT32 control_flags; /* enum wmi_extscan_get_cached_results_flags */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_get_cached_results_cmd_fixed_param */ + /** request ID - used to correlate command with events */ + A_UINT32 request_id; + /** Requestor ID - client that requested results */ + A_UINT32 requestor_id; + /** VDEV id(interface) that is requesting scan */ + A_UINT32 vdev_id; + /** table ID - to allow support for multiple simultaneous requests */ + A_UINT32 table_id; + /** maximum number of results to be returned */ + A_UINT32 max_results; + /** flush BSSID list - wmi_extscan_get_cached_results_flags */ + A_UINT32 control_flags; /* enum wmi_extscan_get_cached_results_flags */ } wmi_extscan_get_cached_results_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_get_wlan_change_results_cmd_fixed_param */ - /** request ID - used to correlate command with events */ - A_UINT32 request_id; - /** Requestor ID - client that requested results */ - A_UINT32 requestor_id; - /** VDEV id(interface) that is requesting scan */ - A_UINT32 vdev_id; - /** table ID - to allow support for multiple simultaneous requests */ - A_UINT32 table_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_get_wlan_change_results_cmd_fixed_param */ + /** request ID - used to correlate command with events */ + A_UINT32 request_id; + /** Requestor ID - client that requested results */ + A_UINT32 requestor_id; + /** VDEV id(interface) that is requesting scan */ + A_UINT32 vdev_id; + /** table ID - to allow support for multiple simultaneous requests */ + A_UINT32 table_id; } wmi_extscan_get_wlan_change_results_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_ARRAY_STRUC */ - /**bssid */ - wmi_mac_addr bssid; - /**channel number */ - A_UINT32 channel; - /**upper RSSI limit */ - A_UINT32 upper_rssi_limit; - /**lower RSSI limit */ - A_UINT32 lower_rssi_limit; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_ARRAY_STRUC */ + /**bssid */ + wmi_mac_addr bssid; + /**channel number */ + A_UINT32 channel; + /**upper RSSI limit */ + A_UINT32 upper_rssi_limit; + /**lower RSSI limit */ + A_UINT32 lower_rssi_limit; } wmi_extscan_wlan_change_bssid_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_configure_wlan_change_monitor_cmd_fixed_param */ - /** Request ID - to identify command. Cannot be 0 */ - A_UINT32 request_id; - /** Requestor ID - client requesting wlan change monitoring */ - A_UINT32 requestor_id; - /** VDEV id(interface) that is requesting scan */ - A_UINT32 vdev_id; - /** table ID - to allow support for multiple simultaneous tables */ - A_UINT32 table_id; - /** operation mode: start/stop */ - A_UINT32 mode; /* wmi_extscan_operation_mode */ - /** number of rssi samples to store */ - A_UINT32 max_rssi_samples; - /** number of samples to use to calculate RSSI average */ - A_UINT32 rssi_averaging_samples; - /** number of scans to confirm loss of contact with RSSI */ - A_UINT32 lost_ap_scan_count; - /** number of out-of-range BSSIDs necessary to send event */ - A_UINT32 max_out_of_range_count; - /** total number of bssid signal descriptors (in all pages) */ - A_UINT32 total_entries; - /** index of the first bssid entry found in the TLV wlan_change_descriptor_list*/ - A_UINT32 first_entry_index; - /** number of bssid signal descriptors in this page */ - A_UINT32 num_entries_in_page; - /* Following this structure is the TLV: - * wmi_extscan_wlan_change_bssid_param wlan_change_descriptor_list[]; // number of elements given by field num_page_entries. - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_configure_wlan_change_monitor_cmd_fixed_param */ + /** Request ID - to identify command. Cannot be 0 */ + A_UINT32 request_id; + /** Requestor ID - client requesting wlan change monitoring */ + A_UINT32 requestor_id; + /** VDEV id(interface) that is requesting scan */ + A_UINT32 vdev_id; + /** table ID - to allow support for multiple simultaneous tables */ + A_UINT32 table_id; + /** operation mode: start/stop */ + A_UINT32 mode; /* wmi_extscan_operation_mode */ + /** number of rssi samples to store */ + A_UINT32 max_rssi_samples; + /** number of samples to use to calculate RSSI average */ + A_UINT32 rssi_averaging_samples; + /** number of scans to confirm loss of contact with RSSI */ + A_UINT32 lost_ap_scan_count; + /** number of out-of-range BSSIDs necessary to send event */ + A_UINT32 max_out_of_range_count; + + /** total number of bssid signal descriptors (in all pages) */ + A_UINT32 total_entries; + /** index of the first bssid entry found in the TLV wlan_change_descriptor_list*/ + A_UINT32 first_entry_index; + /** number of bssid signal descriptors in this page */ + A_UINT32 num_entries_in_page; +/* Following this structure is the TLV: + * wmi_extscan_wlan_change_bssid_param wlan_change_descriptor_list[]; + * (number of elements given by field num_page_entries) + */ } wmi_extscan_configure_wlan_change_monitor_cmd_fixed_param; typedef struct { - /* TLV tag and len; tag equals WMITLV_TAG_ARRAY_STRUC */ - A_UINT32 tlv_header; - /**ssid */ - wmi_ssid ssid; - /**band */ - A_UINT32 band; - /**RSSI threshold for reporting */ - A_UINT32 min_rssi; - A_UINT32 max_rssi; -} wmi_extscan_hotlist_ssid_entry; - -typedef struct { - /** - * TLV tag and len; tag equals - * MITLV_TAG_STRUC_wmi_extscan_configure_hotlist_ssid_monitor_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** Request ID - to identify command. Cannot be 0 */ - A_UINT32 request_id; - /** Requestor ID - client requesting hotlist ssid monitoring */ - A_UINT32 requestor_id; - /** VDEV id(interface) that is requesting scan */ - A_UINT32 vdev_id; - /** table ID - to allow support for multiple simultaneous tables */ - A_UINT32 table_id; - /** operation mode: start/stop */ - A_UINT32 mode; /* wmi_extscan_operation_mode */ - /**total number of ssids (in all pages) */ - A_UINT32 total_entries; - /**index of the first ssid entry found in the TLV extscan_hotlist_ssid_entry*/ - A_UINT32 first_entry_index; - /**number of ssids in this page */ - A_UINT32 num_entries_in_page; - /** number of consecutive scans to confirm loss of an ssid **/ - A_UINT32 lost_ap_scan_count; - /* Following this structure is the TLV: - * wmi_extscan_hotlist_ssid_entry hotlist_ssid[]; - * number of element given by field num_page_entries. - */ -} wmi_extscan_configure_hotlist_ssid_monitor_cmd_fixed_param; - -typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_ARRAY_STRUC */ - /**bssid */ - wmi_mac_addr bssid; - /**RSSI min threshold for reporting */ - A_UINT32 min_rssi; - /**Deprecated entry channel number */ - A_UINT32 channel; - /** RSSI max threshold for reporting */ - A_UINT32 max_rssi; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_ARRAY_STRUC */ + /**bssid */ + wmi_mac_addr bssid; + /**RSSI min threshold for reporting */ + A_UINT32 min_rssi; + /**Deprecated entry - channel number */ + A_UINT32 channel; + /** RSSI max threshold for reporting */ + A_UINT32 max_rssi; } wmi_extscan_hotlist_entry; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_configure_hotlist_monitor_cmd_fixed_param */ - /** Request ID - to identify command. Cannot be 0 */ - A_UINT32 request_id; - /** Requestor ID - client requesting hotlist monitoring */ - A_UINT32 requestor_id; - /** VDEV id(interface) that is requesting scan */ - A_UINT32 vdev_id; - /** table ID - to allow support for multiple simultaneous tables */ - A_UINT32 table_id; - /** operation mode: start/stop */ - A_UINT32 mode; /* wmi_extscan_operation_mode */ - /**total number of bssids (in all pages) */ - A_UINT32 total_entries; - /**index of the first bssid entry found in the TLV wmi_extscan_hotlist_entry*/ - A_UINT32 first_entry_index; - /**number of bssids in this page */ - A_UINT32 num_entries_in_page; - /** number of consecutive scans to confirm loss of contact with AP */ - A_UINT32 lost_ap_scan_count; - /* Following this structure is the TLV: - * wmi_extscan_hotlist_entry hotlist[]; // number of elements given by field num_page_entries. - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_configure_hotlist_monitor_cmd_fixed_param */ + /** Request ID - to identify command. Cannot be 0 */ + A_UINT32 request_id; + /** Requestor ID - client requesting hotlist monitoring */ + A_UINT32 requestor_id; + /** VDEV id(interface) that is requesting scan */ + A_UINT32 vdev_id; + /** table ID - to allow support for multiple simultaneous tables */ + A_UINT32 table_id; + /** operation mode: start/stop */ + A_UINT32 mode; /* wmi_extscan_operation_mode */ + /** total number of bssids (in all pages) */ + A_UINT32 total_entries; + /** index of the first bssid entry found in the TLV wmi_extscan_hotlist_entry */ + A_UINT32 first_entry_index; + /** number of bssids in this page */ + A_UINT32 num_entries_in_page; + /** number of consecutive scans to confirm loss of contact with AP */ + A_UINT32 lost_ap_scan_count; +/* Following this structure is the TLV: + * wmi_extscan_hotlist_entry hotlist[]; <-- number of elements given by field num_page_entries. + */ } wmi_extscan_configure_hotlist_monitor_cmd_fixed_param; - typedef struct { - /* TLV tag and len; tag equals - *WMITLV_TAG_STRUC_wmi_extscan_hotlist_match_event_fixed_param */ - A_UINT32 tlv_header; - /** Request ID of the WMI_EXTSCAN_CONFIGURE_HOTLIST_SSID_MONITOR_CMDID that configured the table */ - A_UINT32 config_request_id; - /** Requestor ID of the WMI_EXTSCAN_CONFIGURE_HOTLIST_SSID_MONITOR_CMDID - that configured the table */ - A_UINT32 config_requestor_id; - /** - * VDEV id(interface) of the - * WMI_EXTSCAN_CONFIGURE_HOTLIST_SSID_MONITOR_CMDID that configured the table - */ - A_UINT32 config_vdev_id; - /** table ID - to allow support for multiple simultaneous tables */ - A_UINT32 table_id; - /**total number of ssids (in all pages) */ - A_UINT32 total_entries; - /**index of the first ssid entry found in the TLV wmi_extscan_wlan_descriptor*/ - A_UINT32 first_entry_index; - /**number of ssids in this page */ - A_UINT32 num_entries_in_page; - /* Following this structure is the TLV: - * wmi_extscan_wlan_descriptor hotlist_match[]; - * number of descriptors given by field num_entries_in_page - */ -} wmi_extscan_hotlist_ssid_match_event_fixed_param; +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_ARRAY_STRUC */ + /**ssid */ + wmi_ssid ssid; + /**band */ + A_UINT32 band; + /**RSSI threshold for reporting */ + A_UINT32 min_rssi; + A_UINT32 max_rssi; +} wmi_extscan_hotlist_ssid_entry; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_ARRAY_STRUC */ - /** table ID - to allow support for multiple simultaneous tables */ - A_UINT32 table_id; - /** size in bytes of scan cache entry */ - A_UINT32 scan_cache_entry_size; - /** maximum number of scan cache entries */ - A_UINT32 max_scan_cache_entries; - /** maximum number of buckets per extscan request */ - A_UINT32 max_buckets; - /** maximum number of BSSIDs that will be stored in each scan (best n/w as per RSSI) */ - A_UINT32 max_bssid_per_scan; - /** table usage level at which indication must be sent to host */ - A_UINT32 max_table_usage_threshold; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_configure_hotlist_ssid_monitor_cmd_fixed_param */ + /** Request ID - to identify command. Cannot be 0 */ + A_UINT32 request_id; + /** Requestor ID - client requesting hotlist ssid monitoring */ + A_UINT32 requestor_id; + /** VDEV id(interface) that is requesting scan */ + A_UINT32 vdev_id; + /** table ID - to allow support for multiple simultaneous tables */ + A_UINT32 table_id; + /** operation mode: start/stop */ + A_UINT32 mode; /* wmi_extscan_operation_mode */ + /**total number of ssids (in all pages) */ + A_UINT32 total_entries; + /**index of the first ssid entry found in the TLV wmi_extscan_hotlist_ssid_entry*/ + A_UINT32 first_entry_index; + /**number of ssids in this page */ + A_UINT32 num_entries_in_page; + /** number of consecutive scans to confirm loss of an ssid **/ + A_UINT32 lost_ap_scan_count; + /* Following this structure is the TLV: + * wmi_extscan_hotlist_ssid_entry hotlist_ssid[]; <-- number of elements given by field num_page_entries. + */ +} wmi_extscan_configure_hotlist_ssid_monitor_cmd_fixed_param; + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_ARRAY_STRUC */ + /** table ID - to allow support for multiple simultaneous tables */ + A_UINT32 table_id; + /** size in bytes of scan cache entry */ + A_UINT32 scan_cache_entry_size; + /** maximum number of scan cache entries */ + A_UINT32 max_scan_cache_entries; + /** maximum number of buckets per extscan request */ + A_UINT32 max_buckets; + /** maximum number of BSSIDs that will be stored in each scan (best n/w as per RSSI) */ + A_UINT32 max_bssid_per_scan; + /** table usage level at which indication must be sent to host */ + A_UINT32 max_table_usage_threshold; } wmi_extscan_cache_capabilities; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_ARRAY_STRUC */ - /** table ID - to allow support for multiple simultaneous tables */ - A_UINT32 table_id; - /** size in bytes of wlan change entry */ - A_UINT32 wlan_change_entry_size; - /** maximum number of entries in wlan change table */ - A_UINT32 max_wlan_change_entries; - /** number of RSSI samples used for averaging RSSI */ - A_UINT32 max_rssi_averaging_samples; - /** number of BSSID/RSSI entries (BSSID pointer, RSSI, timestamp) that device can hold */ - A_UINT32 max_rssi_history_entries; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_ARRAY_STRUC */ + /** table ID - to allow support for multiple simultaneous tables */ + A_UINT32 table_id; + /** size in bytes of wlan change entry */ + A_UINT32 wlan_change_entry_size; + /** maximum number of entries in wlan change table */ + A_UINT32 max_wlan_change_entries; + /** number of RSSI samples used for averaging RSSI */ + A_UINT32 max_rssi_averaging_samples; + /** number of BSSID/RSSI entries (BSSID pointer, RSSI, timestamp) that device can hold */ + A_UINT32 max_rssi_history_entries; } wmi_extscan_wlan_change_monitor_capabilities; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_ARRAY_STRUC */ - /** table ID - to allow support for multiple simultaneous tables */ - A_UINT32 table_id; - /** size in bytes of hotlist entry */ - A_UINT32 wlan_hotlist_entry_size; - /** maximum number of entries in wlan change table */ - A_UINT32 max_hotlist_entries; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_ARRAY_STRUC */ + /** table ID - to allow support for multiple simultaneous tables */ + A_UINT32 table_id; + /** size in bytes of hotlist entry */ + A_UINT32 wlan_hotlist_entry_size; + /** maximum number of entries in wlan change table */ + A_UINT32 max_hotlist_entries; } wmi_extscan_hotlist_monitor_capabilities; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_set_capabilities_cmd_fixed_param */ - /** Request ID - matches request ID used to start hot list monitoring */ - A_UINT32 request_id; - /** Requestor ID - client requesting stop */ - A_UINT32 requestor_id; - /** number of extscan caches */ - A_UINT32 num_extscan_cache_tables; - /** number of wlan change lists */ - A_UINT32 num_wlan_change_monitor_tables; - /** number of hotlists */ - A_UINT32 num_hotlist_monitor_tables; - /** if one sided rtt data collection is supported */ - A_UINT32 rtt_one_sided_supported; - /** if 11v data collection is supported */ - A_UINT32 rtt_11v_supported; - /** if 11mc data collection is supported */ - A_UINT32 rtt_ftm_supported; - /** number of extscan cache capabilities (one per table) */ - A_UINT32 num_extscan_cache_capabilities; - /** number of wlan change capabilities (one per table) */ - A_UINT32 num_extscan_wlan_change_capabilities; - /** number of extscan hotlist capabilities (one per table) */ - A_UINT32 num_extscan_hotlist_capabilities; - /* Following this structure is the TLV: - * wmi_extscan_cache_capabilities extscan_cache_capabilities; // number of capabilities given by num_extscan_caches - * wmi_extscan_wlan_change_monitor_capabilities wlan_change_capabilities; // number of capabilities given by num_wlan_change_monitor_tables - * wmi_extscan_hotlist_monitor_capabilities hotlist_capabilities; // number of capabilities given by num_hotlist_monitor_tables - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_set_capabilities_cmd_fixed_param */ + /** Request ID - matches request ID used to start hot list monitoring */ + A_UINT32 request_id; + /** Requestor ID - client requesting stop */ + A_UINT32 requestor_id; + /** number of extscan caches */ + A_UINT32 num_extscan_cache_tables; + /** number of wlan change lists */ + A_UINT32 num_wlan_change_monitor_tables; + /** number of hotlists */ + A_UINT32 num_hotlist_monitor_tables; + /** if one sided rtt data collection is supported */ + A_UINT32 rtt_one_sided_supported; + /** if 11v data collection is supported */ + A_UINT32 rtt_11v_supported; + /** if 11mc data collection is supported */ + A_UINT32 rtt_ftm_supported; + /** number of extscan cache capabilities (one per table) */ + A_UINT32 num_extscan_cache_capabilities; + /** number of wlan change capabilities (one per table) */ + A_UINT32 num_extscan_wlan_change_capabilities; + /** number of extscan hotlist capabilities (one per table) */ + A_UINT32 num_extscan_hotlist_capabilities; +/* Following this structure is the TLV: + * wmi_extscan_cache_capabilities extscan_cache_capabilities; <-- number of capabilities given by num_extscan_caches + * wmi_extscan_wlan_change_monitor_capabilities wlan_change_capabilities; <-- number of capabilities given by num_wlan_change_monitor_tables + * wmi_extscan_hotlist_monitor_capabilities hotlist_capabilities; <-- number of capabilities given by num_hotlist_monitor_tables + */ } wmi_extscan_set_capabilities_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_get_capabilities_cmd_fixed_param */ - /** Request ID - matches request ID used to start hot list monitoring */ - A_UINT32 request_id; - /** Requestor ID - client requesting capabilities */ - A_UINT32 requestor_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_get_capabilities_cmd_fixed_param */ + /** Request ID - matches request ID used to start hot list monitoring */ + A_UINT32 request_id; + /** Requestor ID - client requesting capabilities */ + A_UINT32 requestor_id; } wmi_extscan_get_capabilities_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_start_stop_event_fixed_param */ - /** Request ID of the operation that was started/stopped */ - A_UINT32 request_id; - /** Requestor ID of the operation that was started/stopped */ - A_UINT32 requestor_id; - /** VDEV id(interface) of the operation that was started/stopped */ - A_UINT32 vdev_id; - /** extscan WMI command */ - A_UINT32 command; - /** operation mode: start/stop */ - A_UINT32 mode; /* wmi_extscan_operation_mode */ - /**success/failure */ - A_UINT32 status; /* enum wmi_extscan_start_stop_status */ - /** table ID - to allow support for multiple simultaneous requests */ - A_UINT32 table_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_start_stop_event_fixed_param */ + /** Request ID of the operation that was started/stopped */ + A_UINT32 request_id; + /** Requestor ID of the operation that was started/stopped */ + A_UINT32 requestor_id; + /** VDEV id(interface) of the operation that was started/stopped */ + A_UINT32 vdev_id; + /** extscan WMI command */ + A_UINT32 command; + /** operation mode: start/stop */ + A_UINT32 mode; /* wmi_extscan_operation_mode */ + /**success/failure */ + A_UINT32 status; /* enum wmi_extscan_start_stop_status */ + /** table ID - to allow support for multiple simultaneous requests */ + A_UINT32 table_id; } wmi_extscan_start_stop_event_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_operation_event_fixed_param */ - /** Request ID of the extscan operation that is currently running */ - A_UINT32 request_id; - /** Requestor ID of the extscan operation that is currently running */ - A_UINT32 requestor_id; - /** VDEV id(interface) of the extscan operation that is currently running */ - A_UINT32 vdev_id; - /** scan event (wmi_scan_event_type) */ - A_UINT32 event; /* wmi_extscan_event_type */ - /** table ID - to allow support for multiple simultaneous requests */ - A_UINT32 table_id; - /**number of buckets */ - A_UINT32 num_buckets; - /* Following this structure is the TLV: - * A_UINT32 bucket_id[]; // number of elements given by field num_buckets. - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_operation_event_fixed_param */ + /** Request ID of the extscan operation that is currently running */ + A_UINT32 request_id; + /** Requestor ID of the extscan operation that is currently running */ + A_UINT32 requestor_id; + /** VDEV id(interface) of the extscan operation that is currently running */ + A_UINT32 vdev_id; + /** scan event (wmi_scan_event_type) */ + A_UINT32 event; /* wmi_extscan_event_type */ + /** table ID - to allow support for multiple simultaneous requests */ + A_UINT32 table_id; + /**number of buckets */ + A_UINT32 num_buckets; + /* Following this structure is the TLV: + * A_UINT32 bucket_id[]; <-- number of elements given by field num_buckets. + */ } wmi_extscan_operation_event_fixed_param; /* Types of extscan tables */ typedef enum { - EXTSCAN_TABLE_NONE = 0, - EXTSCAN_TABLE_BSSID = 1, - EXTSCAN_TABLE_RSSI = 2, + EXTSCAN_TABLE_NONE = 0, + EXTSCAN_TABLE_BSSID = 1, + EXTSCAN_TABLE_RSSI = 2, } wmi_extscan_table_type; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_table_usage_event_fixed_param */ - /** Request ID of the extscan operation that is currently running */ - A_UINT32 request_id; - /** Requestor ID of the extscan operation that is currently running */ - A_UINT32 requestor_id; - /** VDEV id(interface) of the extscan operation that is currently running */ - A_UINT32 vdev_id; - /** table ID - to allow support for multiple simultaneous tables */ - A_UINT32 table_id; - /**see wmi_extscan_table_type for table reporting usage */ - A_UINT32 table_type; - /**number of entries in use */ - A_UINT32 entries_in_use; - /**maximum number of entries in table */ - A_UINT32 maximum_entries; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_table_usage_event_fixed_param */ + /** Request ID of the extscan operation that is currently running */ + A_UINT32 request_id; + /** Requestor ID of the extscan operation that is currently running */ + A_UINT32 requestor_id; + /** VDEV id(interface) of the extscan operation that is currently running */ + A_UINT32 vdev_id; + /** table ID - to allow support for multiple simultaneous tables */ + A_UINT32 table_id; + /**see wmi_extscan_table_type for table reporting usage */ + A_UINT32 table_type; + /**number of entries in use */ + A_UINT32 entries_in_use; + /**maximum number of entries in table */ + A_UINT32 maximum_entries; } wmi_extscan_table_usage_event_fixed_param; typedef enum { - /** - * Indicates scan got interrupted i.e. aborted or pre-empted for a long time (> 1sec) - * this can be used to discard scan results - */ - WMI_SCAN_STATUS_INTERRUPTED = 1 + WMI_SCAN_STATUS_INTERRUPTED = 1 /* Indicates scan got interrupted i.e. aborted or pre-empted for a long time (> 1sec) + this can be used to discard scan results */ } wmi_scan_status_flags; - typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_ARRAY_STRUC */ - /** RSSI */ - A_UINT32 rssi; - /** time stamp in milliseconds */ - A_UINT32 tstamp; - /** Extscan cycle during which this entry was scanned */ - A_UINT32 scan_cycle_id; - /** - * flag to indicate if the given result was obtained as part of - * interrupted (aborted/large time gap preempted) scan - */ - A_UINT32 flags; - /** Bitmask of buckets (i.e. sets of channels) scanned */ - A_UINT32 buckets_scanned; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_ARRAY_STRUC */ + /** RSSI */ + A_UINT32 rssi; + /** time stamp in milliseconds */ + A_UINT32 tstamp; + /** Extscan cycle during which this entry was scanned */ + A_UINT32 scan_cycle_id; + /** flag to indicate if the given result was obtained as part of interrupted (aborted/large time gap preempted) scan */ + A_UINT32 flags; + /** Bitmask of buckets (i.e. sets of channels) scanned */ + A_UINT32 buckets_scanned; } wmi_extscan_rssi_info; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_ARRAY_STRUC */ - /**bssid */ - wmi_mac_addr bssid; - /**ssid */ - wmi_ssid ssid; - /**channel number */ - A_UINT32 channel; - /* capabilities */ - A_UINT32 capabilities; - /* beacon interval in TUs */ - A_UINT32 beacon_interval; - /**time stamp in milliseconds - time last seen */ - A_UINT32 tstamp; - /**flags - _tExtScanEntryFlags */ - A_UINT32 flags; - /**RTT in ns */ - A_UINT32 rtt; - /**rtt standard deviation */ - A_UINT32 rtt_sd; - /* rssi information */ - A_UINT32 number_rssi_samples; - /** IE length */ - A_UINT32 ie_length; /* length of IE data */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_ARRAY_STRUC */ + /**bssid */ + wmi_mac_addr bssid; + /**ssid */ + wmi_ssid ssid; + /**channel number */ + A_UINT32 channel; + /* capabilities */ + A_UINT32 capabilities; + /* beacon interval in TUs */ + A_UINT32 beacon_interval; + /**time stamp in milliseconds - time last seen */ + A_UINT32 tstamp; + /**flags - _tExtScanEntryFlags */ + A_UINT32 flags; + /**RTT in ns */ + A_UINT32 rtt; + /**rtt standard deviation */ + A_UINT32 rtt_sd; + /* rssi information */ + A_UINT32 number_rssi_samples; + /** IE length */ + A_UINT32 ie_length; /* length of IE data */ } wmi_extscan_wlan_descriptor; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_cached_results_event_fixed_param */ - /** Request ID of the WMI_EXTSCAN_GET_CACHED_RESULTS_CMDID */ - A_UINT32 request_id; - /** Requestor ID of the WMI_EXTSCAN_GET_CACHED_RESULTS_CMDID */ - A_UINT32 requestor_id; - /** VDEV id(interface) of the WMI_EXTSCAN_GET_CACHED_RESULTS_CMDID */ - A_UINT32 vdev_id; - /** Request ID of the extscan operation that is currently running */ - A_UINT32 extscan_request_id; - /** Requestor ID of the extscan operation that is currently running */ - A_UINT32 extscan_requestor_id; - /** VDEV id(interface) of the extscan operation that is currently running */ - A_UINT32 extscan_vdev_id; - /** table ID - to allow support for multiple simultaneous tables */ - A_UINT32 table_id; - /**current time stamp in seconds. Used to provide a baseline for the relative timestamps returned for each block and entry */ - A_UINT32 current_tstamp; - /**total number of bssids (in all pages) */ - A_UINT32 total_entries; - /**index of the first bssid entry found in the TLV wmi_extscan_wlan_descriptor*/ - A_UINT32 first_entry_index; - /**number of bssids in this page */ - A_UINT32 num_entries_in_page; - /* number of buckets scanned */ - A_UINT32 buckets_scanned; - /* Followed by the variable length TLVs - * wmi_extscan_wlan_descriptor bssid_list[] - * wmi_extscan_rssi_info rssi_list[] - * A_UINT8 ie_list[] - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_cached_results_event_fixed_param */ + /** Request ID of the WMI_EXTSCAN_GET_CACHED_RESULTS_CMDID */ + A_UINT32 request_id; + /** Requestor ID of the WMI_EXTSCAN_GET_CACHED_RESULTS_CMDID */ + A_UINT32 requestor_id; + /** VDEV id(interface) of the WMI_EXTSCAN_GET_CACHED_RESULTS_CMDID */ + A_UINT32 vdev_id; + /** Request ID of the extscan operation that is currently running */ + A_UINT32 extscan_request_id; + /** Requestor ID of the extscan operation that is currently running */ + A_UINT32 extscan_requestor_id; + /** VDEV id(interface) of the extscan operation that is currently running */ + A_UINT32 extscan_vdev_id; + /** table ID - to allow support for multiple simultaneous tables */ + A_UINT32 table_id; + /**current time stamp in seconds. Used to provide a baseline for the relative timestamps returned for each block and entry */ + A_UINT32 current_tstamp; + /**total number of bssids (in all pages) */ + A_UINT32 total_entries; + /**index of the first bssid entry found in the TLV wmi_extscan_wlan_descriptor*/ + A_UINT32 first_entry_index; + /**number of bssids in this page */ + A_UINT32 num_entries_in_page; + /** number of buckets scanned**/ + A_UINT32 buckets_scanned; + /* Followed by the variable length TLVs + * wmi_extscan_wlan_descriptor bssid_list[] + * wmi_extscan_rssi_info rssi_list[] + * A_UINT8 ie_list[] + */ } wmi_extscan_cached_results_event_fixed_param; typedef enum { - EXTSCAN_WLAN_CHANGE_FLAG_NONE = 0x00, - EXTSCAN_WLAN_CHANGE_FLAG_OUT_OF_RANGE = 0x01, - EXTSCAN_WLAN_CHANGE_FLAG_AP_LOST = 0x02, + EXTSCAN_WLAN_CHANGE_FLAG_NONE = 0x00, + EXTSCAN_WLAN_CHANGE_FLAG_OUT_OF_RANGE = 0x01, + EXTSCAN_WLAN_CHANGE_FLAG_AP_LOST = 0x02, } wmi_extscan_wlan_change_flags; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_ARRAY_STRUC */ - /**bssid */ - wmi_mac_addr bssid; - /**time stamp in milliseconds */ - A_UINT32 tstamp; - /**upper RSSI limit */ - A_UINT32 upper_rssi_limit; - /**lower RSSI limit */ - A_UINT32 lower_rssi_limit; - /** channel */ - A_UINT32 channel; /* in MHz */ - /**current RSSI average */ - A_UINT32 rssi_average; - /**flags - wmi_extscan_wlan_change_flags */ - A_UINT32 flags; - /**legnth of RSSI history to follow (number of values) */ - A_UINT32 num_rssi_samples; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_ARRAY_STRUC */ + /**bssid */ + wmi_mac_addr bssid; + /**time stamp in milliseconds */ + A_UINT32 tstamp; + /**upper RSSI limit */ + A_UINT32 upper_rssi_limit; + /**lower RSSI limit */ + A_UINT32 lower_rssi_limit; + /** channel */ + A_UINT32 channel; /* in MHz */ + /**current RSSI average */ + A_UINT32 rssi_average; + /**flags - wmi_extscan_wlan_change_flags */ + A_UINT32 flags; + /**legnth of RSSI history to follow (number of values) */ + A_UINT32 num_rssi_samples; } wmi_extscan_wlan_change_result_bssid; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_wlan_change_results_event_fixed_param */ - /** Request ID of the WMI_EXTSCAN_GET_WLAN_CHANGE_RESULTS_CMDID command that requested the results */ - A_UINT32 request_id; - /** Requestor ID of the WMI_EXTSCAN_GET_WLAN_CHANGE_RESULTS_CMDID command that requested the results */ - A_UINT32 requestor_id; - /** VDEV id(interface) of the WMI_EXTSCAN_GET_WLAN_CHANGE_RESULTS_CMDID command that requested the results */ - A_UINT32 vdev_id; - /** Request ID of the WMI_EXTSCAN_CONFIGURE_WLAN_CHANGE_MONITOR_CMDID command that configured the table */ - A_UINT32 config_request_id; - /** Requestor ID of the WMI_EXTSCAN_CONFIGURE_WLAN_CHANGE_MONITOR_CMDID command that configured the table */ - A_UINT32 config_requestor_id; - /** VDEV id(interface) of the WMI_EXTSCAN_CONFIGURE_WLAN_CHANGE_MONITOR_CMDID command that configured the table */ - A_UINT32 config_vdev_id; - /** table ID - to allow support for multiple simultaneous tables */ - A_UINT32 table_id; - /**number of entries with RSSI out of range or BSSID not detected */ - A_UINT32 change_count; - /**total number of bssid signal descriptors (in all pages) */ - A_UINT32 total_entries; - /**index of the first bssid signal descriptor entry found in the TLV wmi_extscan_wlan_descriptor*/ - A_UINT32 first_entry_index; - /**number of bssids signal descriptors in this page */ - A_UINT32 num_entries_in_page; - /* Following this structure is the TLV: - * wmi_extscan_wlan_change_result_bssid bssid_signal_descriptor_list[]; // number of descriptors given by field num_entries_in_page. - * Following this structure is the list of RSSI values (each is an A_UINT8): - * A_UINT8 rssi_list[]; // last N RSSI values. - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_wlan_change_results_event_fixed_param */ + /** Request ID of the WMI_EXTSCAN_GET_WLAN_CHANGE_RESULTS_CMDID command that requested the results */ + A_UINT32 request_id; + /** Requestor ID of the WMI_EXTSCAN_GET_WLAN_CHANGE_RESULTS_CMDID command that requested the results */ + A_UINT32 requestor_id; + /** VDEV id(interface) of the WMI_EXTSCAN_GET_WLAN_CHANGE_RESULTS_CMDID command that requested the results */ + A_UINT32 vdev_id; + /** Request ID of the WMI_EXTSCAN_CONFIGURE_WLAN_CHANGE_MONITOR_CMDID command that configured the table */ + A_UINT32 config_request_id; + /** Requestor ID of the WMI_EXTSCAN_CONFIGURE_WLAN_CHANGE_MONITOR_CMDID command that configured the table */ + A_UINT32 config_requestor_id; + /** VDEV id(interface) of the WMI_EXTSCAN_CONFIGURE_WLAN_CHANGE_MONITOR_CMDID command that configured the table */ + A_UINT32 config_vdev_id; + /** table ID - to allow support for multiple simultaneous tables */ + A_UINT32 table_id; + /**number of entries with RSSI out of range or BSSID not detected */ + A_UINT32 change_count; + /**total number of bssid signal descriptors (in all pages) */ + A_UINT32 total_entries; + /**index of the first bssid signal descriptor entry found in the TLV wmi_extscan_wlan_descriptor*/ + A_UINT32 first_entry_index; + /**number of bssids signal descriptors in this page */ + A_UINT32 num_entries_in_page; +/* Following this structure is the TLV: + * wmi_extscan_wlan_change_result_bssid bssid_signal_descriptor_list[]; + * (number of descriptors given by field num_entries_in_page) + * Following this structure is the list of RSSI values (each is an A_UINT8): + * A_UINT8 rssi_list[]; <-- last N RSSI values. + */ } wmi_extscan_wlan_change_results_event_fixed_param; -enum _tExtScanEntryFlags { - WMI_HOTLIST_FLAG_NONE = 0x00, - WMI_HOTLIST_FLAG_PRESENCE = 0x01, - WMI_HOTLIST_FLAG_DUPLICATE_SSID = 0x80, +enum _tExtScanEntryFlags +{ + WMI_HOTLIST_FLAG_NONE = 0x00, + WMI_HOTLIST_FLAG_PRESENCE = 0x01, + WMI_HOTLIST_FLAG_DUPLICATE_SSID = 0x80, }; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_hotlist_match_event_fixed_param */ - /** Request ID of the WMI_EXTSCAN_CONFIGURE_HOTLIST_MONITOR_CMDID that configured the table */ - A_UINT32 config_request_id; - /** Requestor ID of the WMI_EXTSCAN_CONFIGURE_HOTLIST_MONITOR_CMDID that configured the table */ - A_UINT32 config_requestor_id; - /** VDEV id(interface) of the WMI_EXTSCAN_CONFIGURE_HOTLIST_MONITOR_CMDID that configured the table */ - A_UINT32 config_vdev_id; - /** table ID - to allow support for multiple simultaneous tables */ - A_UINT32 table_id; - /**total number of bssids (in all pages) */ - A_UINT32 total_entries; - /**index of the first bssid entry found in the TLV wmi_extscan_wlan_descriptor*/ - A_UINT32 first_entry_index; - /**number of bssids in this page */ - A_UINT32 num_entries_in_page; - /* Following this structure is the TLV: - * wmi_extscan_wlan_descriptor hotlist_match[]; // number of descriptors given by field num_entries_in_page. - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_hotlist_match_event_fixed_param */ + /** Request ID of the WMI_EXTSCAN_CONFIGURE_HOTLIST_MONITOR_CMDID that configured the table */ + A_UINT32 config_request_id; + /** Requestor ID of the WMI_EXTSCAN_CONFIGURE_HOTLIST_MONITOR_CMDID that configured the table */ + A_UINT32 config_requestor_id; + /** VDEV id(interface) of the WMI_EXTSCAN_CONFIGURE_HOTLIST_MONITOR_CMDID that configured the table */ + A_UINT32 config_vdev_id; + /** table ID - to allow support for multiple simultaneous tables */ + A_UINT32 table_id; + /**total number of bssids (in all pages) */ + A_UINT32 total_entries; + /**index of the first bssid entry found in the TLV wmi_extscan_wlan_descriptor*/ + A_UINT32 first_entry_index; + /**number of bssids in this page */ + A_UINT32 num_entries_in_page; +/* Following this structure is the TLV: + * wmi_extscan_wlan_descriptor hotlist_match[]; <-- number of descriptors given by field num_entries_in_page. + */ } wmi_extscan_hotlist_match_event_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_capabilities_event_fixed_param */ - /** Request ID of the WMI_EXTSCAN_GET_CAPABILITIES_CMDID */ - A_UINT32 request_id; - /** Requestor ID of the WMI_EXTSCAN_GET_CAPABILITIES_CMDID */ - A_UINT32 requestor_id; - /** VDEV id(interface) of the WMI_EXTSCAN_GET_CAPABILITIES_CMDID */ - A_UINT32 vdev_id; - /** number of extscan caches */ - A_UINT32 num_extscan_cache_tables; - /** number of wlan change lists */ - A_UINT32 num_wlan_change_monitor_tables; - /** number of hotlists */ - A_UINT32 num_hotlist_monitor_tables; - /** if one sided rtt data collection is supported */ - A_UINT32 rtt_one_sided_supported; - /** if 11v data collection is supported */ - A_UINT32 rtt_11v_supported; - /** if 11mc data collection is supported */ - A_UINT32 rtt_ftm_supported; - /** number of extscan cache capabilities (one per table) */ - A_UINT32 num_extscan_cache_capabilities; - /** number of wlan change capabilities (one per table) */ - A_UINT32 num_extscan_wlan_change_capabilities; - /** number of extscan hotlist capabilities (one per table) */ - A_UINT32 num_extscan_hotlist_capabilities; - /* max number of roaming ssid whitelist firmware can support */ - A_UINT32 num_roam_ssid_whitelist; - /* max number of blacklist bssid firmware can support */ - A_UINT32 num_roam_bssid_blacklist; - /* max number of preferred list firmware can support */ - A_UINT32 num_roam_bssid_preferred_list; - /* max number of hotlist ssids firmware can support */ - A_UINT32 num_extscan_hotlist_ssid; - /* max number of epno networks firmware can support */ - A_UINT32 num_epno_networks; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_hotlist_match_event_fixed_param */ + /** Request ID of the WMI_EXTSCAN_CONFIGURE_HOTLIST_SSID_MONITOR_CMDID that configured the table */ + A_UINT32 config_request_id; + /** Requestor ID of the WMI_EXTSCAN_CONFIGURE_HOTLIST_SSID_MONITOR_CMDID that configured the table */ + A_UINT32 config_requestor_id; + /** VDEV id(interface) of the WMI_EXTSCAN_CONFIGURE_HOTLIST_SSID_MONITOR_CMDID that configured the table */ + A_UINT32 config_vdev_id; + /** table ID - to allow support for multiple simultaneous tables */ + A_UINT32 table_id; + /**total number of ssids (in all pages) */ + A_UINT32 total_entries; + /**index of the first ssid entry found in the TLV wmi_extscan_wlan_descriptor*/ + A_UINT32 first_entry_index; + /**number of ssids in this page */ + A_UINT32 num_entries_in_page; +/* Following this structure is the TLV: + * wmi_extscan_wlan_descriptor hotlist_match[]; <-- number of descriptors given by field num_entries_in_page. + */ +} wmi_extscan_hotlist_ssid_match_event_fixed_param; - /* Following this structure are the TLVs describing the capabilities of of the various types of lists. The FW theoretically - * supports multiple lists of each type. - * - * wmi_extscan_cache_capabilities extscan_cache_capabilities[] // capabilities of extscan cache (BSSID/RSSI lists) - * wmi_extscan_wlan_change_monitor_capabilities wlan_change_capabilities[] // capabilities of wlan_change_monitor_tables - * wmi_extscan_hotlist_monitor_capabilities hotlist_capabilities[] // capabilities of hotlist_monitor_tables - */ +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_extscan_capabilities_event_fixed_param */ + /** Request ID of the WMI_EXTSCAN_GET_CAPABILITIES_CMDID */ + A_UINT32 request_id; + /** Requestor ID of the WMI_EXTSCAN_GET_CAPABILITIES_CMDID */ + A_UINT32 requestor_id; + /** VDEV id(interface) of the WMI_EXTSCAN_GET_CAPABILITIES_CMDID */ + A_UINT32 vdev_id; + /** number of extscan caches */ + A_UINT32 num_extscan_cache_tables; + /** number of wlan change lists */ + A_UINT32 num_wlan_change_monitor_tables; + /** number of hotlists */ + A_UINT32 num_hotlist_monitor_tables; + /** if one sided rtt data collection is supported */ + A_UINT32 rtt_one_sided_supported; + /** if 11v data collection is supported */ + A_UINT32 rtt_11v_supported; + /** if 11mc data collection is supported */ + A_UINT32 rtt_ftm_supported; + /** number of extscan cache capabilities (one per table) */ + A_UINT32 num_extscan_cache_capabilities; + /** number of wlan change capabilities (one per table) */ + A_UINT32 num_extscan_wlan_change_capabilities; + /** number of extscan hotlist capabilities (one per table) */ + A_UINT32 num_extscan_hotlist_capabilities; + /* max number of roaming ssid whitelist firmware can support */ + A_UINT32 num_roam_ssid_whitelist; + /* max number of blacklist bssid firmware can support */ + A_UINT32 num_roam_bssid_blacklist; + /* max number of preferred list firmware can support */ + A_UINT32 num_roam_bssid_preferred_list; + /* max number of hotlist ssids firmware can support */ + A_UINT32 num_extscan_hotlist_ssid; + /* max number of epno networks firmware can support */ + A_UINT32 num_epno_networks; + +/* Following this structure are the TLVs describing the capabilities of of the various types of lists. The FW theoretically + * supports multiple lists of each type. + * + * wmi_extscan_cache_capabilities extscan_cache_capabilities[] <-- capabilities of extscan cache (BSSID/RSSI lists) + * wmi_extscan_wlan_change_monitor_capabilities wlan_change_capabilities[] <-- capabilities of wlan_change_monitor_tables + * wmi_extscan_hotlist_monitor_capabilities hotlist_capabilities[] <-- capabilities of hotlist_monitor_tables + */ } wmi_extscan_capabilities_event_fixed_param; /* WMI_D0_WOW_DISABLE_ACK_EVENTID */ -typedef struct { - A_UINT32 tlv_header; - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_d0_wow_disable_ack_event_fixed_param */ - A_UINT32 reserved0; /* for future need */ +typedef struct{ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_d0_wow_disable_ack_event_fixed_param */ + A_UINT32 reserved0; /* for future need */ } wmi_d0_wow_disable_ack_event_fixed_param; /** WMI_PDEV_RESUME_EVENTID : generated in response to WMI_PDEV_RESUME_CMDID */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_resume_event_fixed_param - */ - A_UINT32 tlv_header; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_resume_event_fixed_param */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; } wmi_pdev_resume_event_fixed_param; + + /** value representing all modules */ #define WMI_DEBUG_LOG_MODULE_ALL 0xffff /* param definitions */ /** - * Log level for a given module. Value contains both module id and log level. - * here is the bitmap definition for value. - * module Id : 16 - * Flags : reserved - * Level : 8 - * if odule Id is WMI_DEBUG_LOG_MODULE_ALL then log level is applied to all modules (global). - * WMI_DEBUG_LOG_MIDULE_ALL will overwrites per module level setting. - */ + * Log level for a given module. Value contains both module id and log level. + * here is the bitmap definition for value. + * module Id : 16 + * Flags : reserved + * Level : 8 + * if odule Id is WMI_DEBUG_LOG_MODULE_ALL then log level is applied to all modules (global). + * WMI_DEBUG_LOG_MIDULE_ALL will overwrites per module level setting. + */ #define WMI_DEBUG_LOG_PARAM_LOG_LEVEL 0x1 -#define WMI_DBGLOG_SET_LOG_LEVEL(val, lvl) do { \ - (val) |= (lvl & 0xff); \ -} while (0) +#define WMI_DBGLOG_SET_LOG_LEVEL(val,lvl) do { \ + (val) |= (lvl & 0xff); \ + } while (0) #define WMI_DBGLOG_GET_LOG_LEVEL(val) ((val) & 0xff) -#define WMI_DBGLOG_SET_MODULE_ID(val, mid) do { \ - (val) |= ((mid & 0xffff) << 16); \ -} while (0) +#define WMI_DBGLOG_SET_MODULE_ID(val,mid) do { \ + (val) |= ((mid & 0xffff) << 16); \ + } while (0) #define WMI_DBGLOG_GET_MODULE_ID(val) (((val) >> 16) & 0xffff) /** - * Enable the debug log for a given vdev. Value is vdev id - */ + * Enable the debug log for a given vdev. Value is vdev id + */ #define WMI_DEBUG_LOG_PARAM_VDEV_ENABLE 0x2 + /** - * Disable the debug log for a given vdev. Value is vdev id - * All the log level for a given VDEV is disabled except the ERROR log messages - */ + * Disable the debug log for a given vdev. Value is vdev id + * All the log level for a given VDEV is disabled except the ERROR log messages + */ #define WMI_DEBUG_LOG_PARAM_VDEV_DISABLE 0x3 /** - * set vdev enable bitmap. value is the vden enable bitmap - */ + * set vdev enable bitmap. value is the vden enable bitmap + */ #define WMI_DEBUG_LOG_PARAM_VDEV_ENABLE_BITMAP 0x4 /** - * set a given log level to all the modules specified in the module bitmap. - * and set the log levle for all other modules to DBGLOG_ERR. - * value: log levelt to be set. - * module_id_bitmap : identifies the modules for which the log level should be set and - * modules for which the log level should be reset to DBGLOG_ERR. - */ + * set a given log level to all the modules specified in the module bitmap. + * and set the log levle for all other modules to DBGLOG_ERR. + * value: log levelt to be set. + * module_id_bitmap : identifies the modules for which the log level should be set and + * modules for which the log level should be reset to DBGLOG_ERR. + */ #define WMI_DEBUG_LOG_PARAM_MOD_ENABLE_BITMAP 0x5 #define NUM_MODULES_PER_ENTRY ((sizeof(A_UINT32)) << 3) -#define WMI_MODULE_ENABLE(pmid_bitmap, mod_id) \ - ((pmid_bitmap)[(mod_id)/NUM_MODULES_PER_ENTRY] |= \ - (1 << ((mod_id)%NUM_MODULES_PER_ENTRY))) +#define WMI_MODULE_ENABLE(pmid_bitmap,mod_id) \ + ((pmid_bitmap)[(mod_id)/NUM_MODULES_PER_ENTRY] |= \ + (1 << ((mod_id)%NUM_MODULES_PER_ENTRY))) -#define WMI_MODULE_DISABLE(pmid_bitmap, mod_id) \ - ((pmid_bitmap)[(mod_id)/NUM_MODULES_PER_ENTRY] &= \ - (~(1 << ((mod_id)%NUM_MODULES_PER_ENTRY)))) +#define WMI_MODULE_DISABLE(pmid_bitmap,mod_id) \ + ((pmid_bitmap)[(mod_id)/NUM_MODULES_PER_ENTRY] &= \ + (~(1 << ((mod_id)%NUM_MODULES_PER_ENTRY)))) -#define WMI_MODULE_IS_ENABLED(pmid_bitmap, mod_id) \ - (((pmid_bitmap)[(mod_id)/NUM_MODULES_PER_ENTRY] & \ - (1 << ((mod_id)%NUM_MODULES_PER_ENTRY))) != 0) +#define WMI_MODULE_IS_ENABLED(pmid_bitmap,mod_id) \ + (((pmid_bitmap)[(mod_id)/NUM_MODULES_PER_ENTRY] & \ + (1 << ((mod_id)%NUM_MODULES_PER_ENTRY))) != 0) -#define MAX_MODULE_ID_BITMAP_WORDS 16 /* 16*32=512 module ids. should be more than sufficient */ +#define MAX_MODULE_ID_BITMAP_WORDS 16 /* 16*32=512 module ids. should be more than sufficient */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_debug_log_config_cmd_fixed_param */ - A_UINT32 dbg_log_param; - /** param types are defined above */ - A_UINT32 value; - /* The below array will follow this tlv ->fixed length module_id_bitmap[] - A_UINT32 module_id_bitmap[MAX_MODULE_ID_BITMAP_WORDS]; - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_debug_log_config_cmd_fixed_param */ + A_UINT32 dbg_log_param; /** param types are defined above */ + A_UINT32 value; + /* The below array will follow this tlv ->fixed length module_id_bitmap[] + A_UINT32 module_id_bitmap[MAX_MODULE_ID_BITMAP_WORDS]; + */ } wmi_debug_log_config_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_get_temperature_cmd_fixed_param */ - A_UINT32 param; /* Reserved for future use */ - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_get_temperature_cmd_fixed_param */ + A_UINT32 param; /* Reserved for future use */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; } wmi_pdev_get_temperature_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_temperature_event_fixed_param */ - A_INT32 value; /* temprature value in Celcius degree */ - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_temperature_event_fixed_param */ + A_INT32 value; /* temprature value in Celcius degree */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; } wmi_pdev_temperature_event_fixed_param; typedef enum { - ANTDIV_HW_CFG_STATUS, - ANTDIV_SW_CFG_STATUS, - ANTDIV_MAX_STATUS_TYPE_NUM + ANTDIV_HW_CFG_STATUS, + ANTDIV_SW_CFG_STATUS, + ANTDIV_MAX_STATUS_TYPE_NUM } ANTDIV_STATUS_TYPE; typedef struct { - /** - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_get_antdiv_status_cmd_fixed_param - */ - A_UINT32 tlv_header; - /* Status event ID - see ANTDIV_STATUS_TYPE */ - A_UINT32 status_event_id; - /** - * pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_get_antdiv_status_cmd_fixed_param */ + A_UINT32 status_event_id; /* Status event ID - see ANTDIV_STATUS_TYPE */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; } wmi_pdev_get_antdiv_status_cmd_fixed_param; typedef struct { - /** - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_antdiv_status_event_fixed_param - */ - A_UINT32 tlv_header; - /* ANT DIV feature enabled or not */ - A_UINT32 support; - A_UINT32 chain_num; /* how many chain supported */ - /* how many ANT supported, 32 max */ - A_UINT32 ant_num; - /** - * Each entry is for a tx/rx chain, and contains a bitmap - * identifying the antennas attached to that tx/rx chain. - */ - A_UINT32 selectable_ant_mask[8]; - /** - * pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_antdiv_status_event_fixed_param */ + A_UINT32 support; /* ANT DIV feature enabled or not */ + A_UINT32 chain_num; /* how many chain supported */ + A_UINT32 ant_num; /* how many ANT supported, 32 max */ + /* + * Each entry is for a tx/rx chain, and contains a bitmap identifying + * the antennas attached to that tx/rx chain. + */ + A_UINT32 selectable_ant_mask[8]; + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; } wmi_pdev_antdiv_status_event_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_set_dhcp_server_offload_cmd_fixed_param */ - A_UINT32 vdev_id; - A_UINT32 enable; - A_UINT32 srv_ipv4; /* server IP */ - A_UINT32 start_lsb; /* starting address assigned to client */ - A_UINT32 num_client; /* number of clients we support */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_set_dhcp_server_offload_cmd_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 enable; + A_UINT32 srv_ipv4; /* server IP */ + A_UINT32 start_lsb; /* starting address assigned to client */ + A_UINT32 num_client; /* number of clients we support */ } wmi_set_dhcp_server_offload_cmd_fixed_param; typedef enum { - AP_RX_DATA_OFFLOAD = 0x00, - STA_RX_DATA_OFFLOAD = 0x01, + AP_RX_DATA_OFFLOAD = 0x00, + STA_RX_DATA_OFFLOAD = 0x01, } wmi_ipa_offload_types; /** @@ -14495,33 +13892,33 @@ typedef enum { * */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ipa_offload_enable_disable_cmd_fixed_param */ - A_UINT32 offload_type; /* wmi_ipa_offload_types enum values */ - A_UINT32 vdev_id; - A_UINT32 enable; /* 1 == enable, 0 == disable */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ipa_offload_enable_disable_cmd_fixed_param */ + A_UINT32 offload_type; /* wmi_ipa_offload_types enum values */ + A_UINT32 vdev_id; + A_UINT32 enable; /* 1 == enable, 0 == disable */ } wmi_ipa_offload_enable_disable_cmd_fixed_param; typedef enum { - WMI_LED_FLASHING_PATTERN_NOT_CONNECTED = 0, - WMI_LED_FLASHING_PATTERN_CONNECTED = 1, - WMI_LED_FLASHING_PATTERN_RESERVED = 2, + WMI_LED_FLASHING_PATTERN_NOT_CONNECTED = 0, + WMI_LED_FLASHING_PATTERN_CONNECTED = 1, + WMI_LED_FLASHING_PATTERN_RESERVED = 2, } wmi_set_led_flashing_type; /** - The state of the LED GPIO control is determined by two 32 bit values(X_0 and X_1) to produce a 64 bit value. - Each 32 bit value consists of 4 bytes, where each byte defines the number of 50ms intervals that the GPIO will - remain at a predetermined state. The 64 bit value provides 8 unique GPIO timing intervals. The pattern starts - with the MSB of X_0 and continues to the LSB of X_1. After executing the timer interval of the LSB of X_1, the - pattern returns to the MSB of X_0 and repeats. The GPIO state for each timing interval alternates from Low to - High and the first interval of the pattern represents the time when the GPIO is Low. When a timing interval of - Zero is reached, it is skipped and moves on to the next interval. - */ -typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_set_led_flashing_cmd_fixed_param */ - A_UINT32 pattern_id; /* pattern identifier */ - A_UINT32 led_x0; /* led flashing parameter0 */ - A_UINT32 led_x1; /* led flashing parameter1 */ - A_UINT32 gpio_num; /* GPIO number */ +The state of the LED GPIO control is determined by two 32 bit values(X_0 and X_1) to produce a 64 bit value. +Each 32 bit value consists of 4 bytes, where each byte defines the number of 50ms intervals that the GPIO will +remain at a predetermined state. The 64 bit value provides 8 unique GPIO timing intervals. The pattern starts +with the MSB of X_0 and continues to the LSB of X_1. After executing the timer interval of the LSB of X_1, the +pattern returns to the MSB of X_0 and repeats. The GPIO state for each timing interval alternates from Low to +High and the first interval of the pattern represents the time when the GPIO is Low. When a timing interval of +Zero is reached, it is skipped and moves on to the next interval. +*/ +typedef struct{ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_set_led_flashing_cmd_fixed_param */ + A_UINT32 pattern_id; /* pattern identifier */ + A_UINT32 led_x0; /* led flashing parameter0 */ + A_UINT32 led_x1; /* led flashing parameter1 */ + A_UINT32 gpio_num; /* GPIO number */ } wmi_set_led_flashing_cmd_fixed_param; /** @@ -14535,9 +13932,9 @@ typedef struct { * Here, we provide the ability to advertise the available services by responding to mDNS queries. */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mdns_offload_cmd_fixed_param */ - A_UINT32 vdev_id; - A_UINT32 enable; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mdns_offload_cmd_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 enable; } wmi_mdns_offload_cmd_fixed_param; #define WMI_MAX_MDNS_FQDN_LEN 64 @@ -14546,51 +13943,51 @@ typedef struct { #define WMI_MDNS_FQDN_TYPE_UNIQUE 1 typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mdns_set_fqdn_cmd_fixed_param */ - A_UINT32 vdev_id; - /** type of fqdn, general or unique */ - A_UINT32 type; - /** length of fqdn */ - A_UINT32 fqdn_len; - /* Following this structure is the TLV byte stream of fqdn data of length fqdn_len - * A_UINT8 fqdn_data[]; // fully-qualified domain name to check if match with the received queries - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mdns_set_fqdn_cmd_fixed_param */ + A_UINT32 vdev_id; + /** type of fqdn, general or unique */ + A_UINT32 type; + /** length of fqdn */ + A_UINT32 fqdn_len; + /* Following this structure is the TLV byte stream of fqdn data of length fqdn_len + * A_UINT8 fqdn_data[]; <-- fully-qualified domain name to check if match with the received queries + */ } wmi_mdns_set_fqdn_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mdns_set_resp_cmd_fixed_param */ - A_UINT32 vdev_id; - /** Answer Resource Record count */ - A_UINT32 AR_count; - /** length of response */ - A_UINT32 resp_len; - /* Following this structure is the TLV byte stream of resp data of length resp_len - * A_UINT8 resp_data[]; // responses consisits of Resource Records - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mdns_set_resp_cmd_fixed_param */ + A_UINT32 vdev_id; + /** Answer Resource Record count */ + A_UINT32 AR_count; + /** length of response */ + A_UINT32 resp_len; + /* Following this structure is the TLV byte stream of resp data of length resp_len + * A_UINT8 resp_data[]; <-- responses consisits of Resource Records + */ } wmi_mdns_set_resp_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mdns_get_stats_cmd_fixed_param */ - A_UINT32 vdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mdns_get_stats_cmd_fixed_param */ + A_UINT32 vdev_id; } wmi_mdns_get_stats_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mdns_stats_event_fixed_param */ - A_UINT32 vdev_id; - /** curTimestamp in milliseconds */ - A_UINT32 curTimestamp; - /** last received Query in milliseconds */ - A_UINT32 lastQueryTimestamp; - /** last sent Response in milliseconds */ - A_UINT32 lastResponseTimestamp; - /** stats of received queries */ - A_UINT32 totalQueries; - /** stats of macth queries */ - A_UINT32 totalMatches; - /** stats of responses */ - A_UINT32 totalResponses; - /** indicate the current status of mDNS offload */ - A_UINT32 status; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mdns_stats_event_fixed_param */ + A_UINT32 vdev_id; + /** curTimestamp in milliseconds */ + A_UINT32 curTimestamp; + /** last received Query in milliseconds */ + A_UINT32 lastQueryTimestamp; + /** last sent Response in milliseconds */ + A_UINT32 lastResponseTimestamp; + /** stats of received queries */ + A_UINT32 totalQueries; + /** stats of macth queries */ + A_UINT32 totalMatches; + /** stats of responses */ + A_UINT32 totalResponses; + /** indicate the current status of mDNS offload */ + A_UINT32 status; } wmi_mdns_stats_event_fixed_param; /** @@ -14605,108 +14002,102 @@ typedef struct { */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sap_ofl_enable_cmd_fixed_param */ - /** VDEV id(interface) of the WMI_SAP_OFL_ENABLE_CMDID */ - A_UINT32 vdev_id; - /** enable/disable sap auth offload */ - A_UINT32 enable; - /** sap ssid */ - wmi_ssid ap_ssid; - /** authentication mode (defined above) */ - A_UINT32 rsn_authmode; - /** unicast cipher set */ - A_UINT32 rsn_ucastcipherset; - /** mcast/group cipher set */ - A_UINT32 rsn_mcastcipherset; - /** mcast/group management frames cipher set */ - A_UINT32 rsn_mcastmgmtcipherset; - /** sap channel */ - A_UINT32 channel; - /** length of psk */ - A_UINT32 psk_len; - /* Following this structure is the TLV byte stream of wpa passphrase data of length psk_len - * A_UINT8 psk[]; - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sap_ofl_enable_cmd_fixed_param */ + /** VDEV id(interface) of the WMI_SAP_OFL_ENABLE_CMDID */ + A_UINT32 vdev_id; + /** enable/disable sap auth offload */ + A_UINT32 enable; + /** sap ssid */ + wmi_ssid ap_ssid; + /** authentication mode (defined above) */ + A_UINT32 rsn_authmode; + /** unicast cipher set */ + A_UINT32 rsn_ucastcipherset; + /** mcast/group cipher set */ + A_UINT32 rsn_mcastcipherset; + /** mcast/group management frames cipher set */ + A_UINT32 rsn_mcastmgmtcipherset; + /** sap channel */ + A_UINT32 channel; + /** length of psk */ + A_UINT32 psk_len; + /* Following this structure is the TLV byte stream of wpa passphrase data of length psk_len + * A_UINT8 psk[]; + */ } wmi_sap_ofl_enable_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sap_ofl_add_sta_event_fixed_param */ - /** VDEV id(interface) of the WMI_SAP_OFL_ADD_STA_EVENTID */ - A_UINT32 vdev_id; - /** aid (association id) of this station */ - A_UINT32 assoc_id; - /** peer station's mac addr */ - wmi_mac_addr peer_macaddr; - /** length of association request frame */ - A_UINT32 data_len; - /* Following this structure is the TLV byte stream of a whole association request frame of length data_len - * A_UINT8 bufp[]; - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sap_ofl_add_sta_event_fixed_param */ + /** VDEV id(interface) of the WMI_SAP_OFL_ADD_STA_EVENTID */ + A_UINT32 vdev_id; + /** aid (association id) of this station */ + A_UINT32 assoc_id; + /** peer station's mac addr */ + wmi_mac_addr peer_macaddr; + /** length of association request frame */ + A_UINT32 data_len; + /* Following this structure is the TLV byte stream of a whole association request frame of length data_len + * A_UINT8 bufp[]; + */ } wmi_sap_ofl_add_sta_event_fixed_param; typedef enum { - SAP_OFL_DEL_STA_FLAG_NONE = 0x00, - SAP_OFL_DEL_STA_FLAG_RECONNECT = 0x01, + SAP_OFL_DEL_STA_FLAG_NONE = 0x00, + SAP_OFL_DEL_STA_FLAG_RECONNECT = 0x01, } wmi_sap_ofl_del_sta_flags; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sap_ofl_del_sta_event_fixed_param */ - /** VDEV id(interface) of the WMI_SAP_OFL_DEL_STA_EVENTID */ - A_UINT32 vdev_id; - /** aid (association id) of this station */ - A_UINT32 assoc_id; - /** peer station's mac addr */ - wmi_mac_addr peer_macaddr; - /** disassociation reason */ - A_UINT32 reason; - /** flags - wmi_sap_ofl_del_sta_flags */ - A_UINT32 flags; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sap_ofl_del_sta_event_fixed_param */ + /** VDEV id(interface) of the WMI_SAP_OFL_DEL_STA_EVENTID */ + A_UINT32 vdev_id; + /** aid (association id) of this station */ + A_UINT32 assoc_id; + /** peer station's mac addr */ + wmi_mac_addr peer_macaddr; + /** disassociation reason */ + A_UINT32 reason; + /** flags - wmi_sap_ofl_del_sta_flags */ + A_UINT32 flags; } wmi_sap_ofl_del_sta_event_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_sap_set_blacklist_param_cmd_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; - /* Number of client failure connection attempt */ - A_UINT32 num_retry; - /*Time in milliseconds to record the client's failure connection attempts*/ - A_UINT32 retry_allow_time_ms; - /* - * Time in milliseconds to drop the connection request if - * client is blacklisted - */ - A_UINT32 blackout_time_ms; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sap_set_blacklist_param_cmd_fixed_param */ + A_UINT32 vdev_id; + /* Number of client failure connection attempt */ + A_UINT32 num_retry; + /* Time in milliseconds to record the client's failure connection attempts */ + A_UINT32 retry_allow_time_ms; + /* Time in milliseconds to drop the connection request if client is blacklisted */ + A_UINT32 blackout_time_ms; } wmi_sap_set_blacklist_param_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_apfind_cmd_param */ - A_UINT32 data_len; /** length in byte of data[]. */ - /** This structure is used to send REQ binary blobs - * from application/service to firmware where Host drv is pass through . - * Following this structure is the TLV: - * A_UINT8 data[]; // length in byte given by field data_len. - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_apfind_cmd_param */ + A_UINT32 data_len; /** length in byte of data[]. */ + /** This structure is used to send REQ binary blobs + * from application/service to firmware where Host drv is pass through . + * Following this structure is the TLV: + * A_UINT8 data[]; <-- length in byte given by field data_len. + */ } wmi_apfind_cmd_param; typedef enum apfind_event_type_e { - APFIND_MATCH_EVENT = 0, - APFIND_WAKEUP_EVENT, + APFIND_MATCH_EVENT = 0, + APFIND_WAKEUP_EVENT, } APFIND_EVENT_TYPE; typedef struct { - A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_apfind_event_hdr */ - A_UINT32 event_type; /** APFIND_EVENT_TYPE */ - A_UINT32 data_len; /** length in byte of data[]. */ - /** This structure is used to send event binary blobs - * from firmware to application/service and Host drv. - * Following this structure is the TLV: - * A_UINT8 data[]; // length in byte given by field data_len. - */ + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_apfind_event_hdr */ + A_UINT32 event_type; /** APFIND_EVENT_TYPE */ + A_UINT32 data_len; /** length in byte of data[]. */ + /** This structure is used to send event binary blobs + * from firmware to application/service and Host drv. + * Following this structure is the TLV: + * A_UINT8 data[]; <-- length in byte given by field data_len. + */ } wmi_apfind_event_hdr; + /** * OCB DCC types and structures. */ @@ -14739,27 +14130,26 @@ typedef struct { * cannot be changed without breaking WMI compatibility. * * NOTE: For each of the types, one additional bit is allocated. This - * leftmost bit is used to indicate that the value is invalid. - */ -#define SIZE_NDLTYPE_ACPRIO (1 + 3) -#define SIZE_NDLTYPE_CONTROLLOOP (1 + 3) + * leftmost bit is used to indicate that the value is invalid. */ +#define SIZE_NDLTYPE_ACPRIO (1 + 3) +#define SIZE_NDLTYPE_CONTROLLOOP (1 + 3) #define SIZE_NDLTYPE_ARRIVALRATE (1 + 13) #define SIZE_NDLTYPE_CHANNELLOAD (1 + 10) #define SIZE_NDLTYPE_CHANNELUSE (1 + 13) -#define SIZE_NDLTYPE_DATARATE (1 + 3) +#define SIZE_NDLTYPE_DATARATE (1 + 3) #define SIZE_NDLTYPE_DISTANCE (1 + 12) -#define SIZE_NDLTYPE_NUMBERELEMENTS (1 + 6) +#define SIZE_NDLTYPE_NUMBERELEMENTS (1 + 6) #define SIZE_NDLTYPE_PACKETDURATION (1 + 11) #define SIZE_NDLTYPE_PACKETINTERVAL (1 + 10) -#define SIZE_NDLTYPE_PATHLOSS (1 + 5) -#define SIZE_NDLTYPE_RXPOWER (1 + 7) -#define SIZE_NDLTYPE_SNR (1 + 7) +#define SIZE_NDLTYPE_PATHLOSS (1 + 5) +#define SIZE_NDLTYPE_RXPOWER (1 + 7) +#define SIZE_NDLTYPE_SNR (1 + 7) #define SIZE_NDLTYPE_TIMING (1 + 12) -#define SIZE_NDLTYPE_TXPOWER (1 + 7) -#define SIZE_NDLTYPE_RATIO (1 + 7) -#define SIZE_NDLTYPE_EXPONENT (1 + 7) -#define SIZE_NDLTYPE_QUEUESTATUS (1 + 1) -#define SIZE_NDLTYPE_DCCMECHANISM (1 + 6) +#define SIZE_NDLTYPE_TXPOWER (1 + 7) +#define SIZE_NDLTYPE_RATIO (1 + 7) +#define SIZE_NDLTYPE_EXPONENT (1 + 7) +#define SIZE_NDLTYPE_QUEUESTATUS (1 + 1) +#define SIZE_NDLTYPE_DCCMECHANISM (1 + 6) #define SIZE_BYTE (8) #define INVALID_ACPRIO ((1 << SIZE_NDLTYPE_ACPRIO) - 1) @@ -14782,770 +14172,774 @@ typedef struct { #define INVALID_QUEUESTATS ((1 << SIZE_NDLTYPE_QUEUESTATUS) - 1) #define INVALID_DCCMECHANISM ((1 << SIZE_NDLTYPE_DCCMECHANISM) - 1) -/** - * The MCS_COUNT macro cannot be modified without breaking - * WMI compatibility. - */ +/** The MCS_COUNT macro cannot be modified without breaking + * WMI compatibility. */ #define MCS_COUNT (8) -/** - * Flags for ndlType_dccMechanism. - */ +/** Flags for ndlType_dccMechanism. */ typedef enum { - DCC_MECHANISM_TPC = 1, - DCC_MECHANISM_TRC = 2, - DCC_MECHANISM_TDC = 4, - DCC_MECHANISM_DSC = 8, - DCC_MECHANISM_TAC = 16, - DCC_MECHANISM_RESERVED = 32, - DCC_MECHANISM_ALL = 0x3f, + DCC_MECHANISM_TPC = 1, + DCC_MECHANISM_TRC = 2, + DCC_MECHANISM_TDC = 4, + DCC_MECHANISM_DSC = 8, + DCC_MECHANISM_TAC = 16, + DCC_MECHANISM_RESERVED = 32, + DCC_MECHANISM_ALL = 0x3f, } wmi_dcc_ndl_type_dcc_mechanism; /** Values for ndlType_queueStatus. */ typedef enum { - DCC_QUEUE_CLOSED = 0, - DCC_QUEUE_OPEN = 1, + DCC_QUEUE_CLOSED = 0, + DCC_QUEUE_OPEN = 1, } wmi_dcc_ndl_type_queue_status; -/** - * For ndlType_acPrio, use the values in wmi_traffic_ac. - * Values for ndlType_datarate. - */ +/** For ndlType_acPrio, use the values in wmi_traffic_ac. */ + +/** Values for ndlType_datarate */ typedef enum { - DCC_DATARATE_3_MBPS = 0, - DCC_DATARATE_4_5_MBPS = 1, - DCC_DATARATE_6_MBPS = 2, - DCC_DATARATE_9_MBPS = 3, - DCC_DATARATE_12_MBPS = 4, - DCC_DATARATE_18_MBPS = 5, - DCC_DATARATE_24_MBPS = 6, - DCC_DATARATE_27_MBPS = 7, + DCC_DATARATE_3_MBPS = 0, + DCC_DATARATE_4_5_MBPS = 1, + DCC_DATARATE_6_MBPS = 2, + DCC_DATARATE_9_MBPS = 3, + DCC_DATARATE_12_MBPS = 4, + DCC_DATARATE_18_MBPS = 5, + DCC_DATARATE_24_MBPS = 6, + DCC_DATARATE_27_MBPS = 7, } wmi_dcc_ndl_type_datarate; /** Data structure for active state configuration. */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_dcc_ndl_active_state_config - */ - A_UINT32 tlv_header; - /** - * NDL_asStateId, ndlType_numberElements, 1+6 bits. - * NDL_asChanLoad, ndlType_channelLoad, 1+10 bits. - */ - A_UINT32 state_info; - /** - * NDL_asDcc(AC_BK), ndlType_dccMechanism, 1+6 bits. - * NDL_asDcc(AC_BE), ndlType_dccMechanism, 1+6 bits. - * NDL_asDcc(AC_VI), ndlType_dccMechanism, 1+6 bits. - * NDL_asDcc(AC_VO), ndlType_dccMechanism, 1+6 bits. - */ - A_UINT32 as_dcc[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_DCCMECHANISM)]; - /** - * NDL_asTxPower(AC_BK), ndlType_txPower, 1+7 bits. - * NDL_asTxPower(AC_BE), ndlType_txPower, 1+7 bits. - * NDL_asTxPower(AC_VI), ndlType_txPower, 1+7 bits. - * NDL_asTxPower(AC_VO), ndlType_txPower, 1+7 bits. - */ - A_UINT32 as_tx_power_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_TXPOWER)]; - /** - * NDL_asPacketInterval(AC_BK), ndlType_packetInterval, 1+10 bits. - * NDL_asPacketInterval(AC_BE), ndlType_packetInterval, 1+10 bits. - * NDL_asPacketInterval(AC_VI), ndlType_packetInterval, 1+10 bits. - * NDL_asPacketInterval(AC_VO), ndlType_packetInterval, 1+10 bits. - */ - A_UINT32 as_packet_interval_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_PACKETINTERVAL)]; - /** - * NDL_asDatarate(AC_BK), ndlType_datarate, 1+3 bits. - * NDL_asDatarate(AC_BE), ndlType_datarate, 1+3 bits. - * NDL_asDatarate(AC_VI), ndlType_datarate, 1+3 bits. - * NDL_asDatarate(AC_VO), ndlType_datarate, 1+3 bits. - */ - A_UINT32 as_datarate_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_DATARATE)]; - /** - * NDL_asCarrierSense(AC_BK), ndlType_rxPower, 1+7 bits. - * NDL_asCarrierSense(AC_BE), ndlType_rxPower, 1+7 bits. - * NDL_asCarrierSense(AC_VI), ndlType_rxPower, 1+7 bits. - * NDL_asCarrierSense(AC_VO), ndlType_rxPower, 1+7 bits. - */ - A_UINT32 as_carrier_sense_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_RXPOWER)]; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_dcc_ndl_active_state_config */ + A_UINT32 tlv_header; + /** + * NDL_asStateId, ndlType_numberElements, 1+6 bits. + * NDL_asChanLoad, ndlType_channelLoad, 1+10 bits. + */ + A_UINT32 state_info; + /** + * NDL_asDcc(AC_BK), ndlType_dccMechanism, 1+6 bits. + * NDL_asDcc(AC_BE), ndlType_dccMechanism, 1+6 bits. + * NDL_asDcc(AC_VI), ndlType_dccMechanism, 1+6 bits. + * NDL_asDcc(AC_VO), ndlType_dccMechanism, 1+6 bits. + */ + A_UINT32 as_dcc[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_DCCMECHANISM)]; + + /** + * NDL_asTxPower(AC_BK), ndlType_txPower, 1+7 bits. + * NDL_asTxPower(AC_BE), ndlType_txPower, 1+7 bits. + * NDL_asTxPower(AC_VI), ndlType_txPower, 1+7 bits. + * NDL_asTxPower(AC_VO), ndlType_txPower, 1+7 bits. + */ + A_UINT32 as_tx_power_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_TXPOWER)]; + /** + * NDL_asPacketInterval(AC_BK), ndlType_packetInterval, 1+10 bits. + * NDL_asPacketInterval(AC_BE), ndlType_packetInterval, 1+10 bits. + * NDL_asPacketInterval(AC_VI), ndlType_packetInterval, 1+10 bits. + * NDL_asPacketInterval(AC_VO), ndlType_packetInterval, 1+10 bits. + */ + A_UINT32 as_packet_interval_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_PACKETINTERVAL)]; + /** + * NDL_asDatarate(AC_BK), ndlType_datarate, 1+3 bits. + * NDL_asDatarate(AC_BE), ndlType_datarate, 1+3 bits. + * NDL_asDatarate(AC_VI), ndlType_datarate, 1+3 bits. + * NDL_asDatarate(AC_VO), ndlType_datarate, 1+3 bits. + */ + A_UINT32 as_datarate_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_DATARATE)]; + /** + * NDL_asCarrierSense(AC_BK), ndlType_rxPower, 1+7 bits. + * NDL_asCarrierSense(AC_BE), ndlType_rxPower, 1+7 bits. + * NDL_asCarrierSense(AC_VI), ndlType_rxPower, 1+7 bits. + * NDL_asCarrierSense(AC_VO), ndlType_rxPower, 1+7 bits. + */ + A_UINT32 as_carrier_sense_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_RXPOWER)]; } wmi_dcc_ndl_active_state_config; #define WMI_NDL_AS_STATE_ID_GET(ptr) WMI_GET_BITS((ptr)->state_info, 0, 7) -#define WMI_NDL_AS_STATE_ID_SET(ptr, val) WMI_SET_BITS((ptr)->state_info, 0, 7, val) +#define WMI_NDL_AS_STATE_ID_SET(ptr,val) WMI_SET_BITS((ptr)->state_info, 0, 7, val) #define WMI_NDL_AS_CHAN_LOAD_GET(ptr) WMI_GET_BITS((ptr)->state_info, 7, 11) -#define WMI_NDL_AS_CHAN_LOAD_SET(ptr, val) WMI_SET_BITS((ptr)->state_info, 7, 11, val) -#define WMI_NDL_AS_DCC_GET(ptr, acprio) wmi_packed_arr_get_bits((ptr)->as_dcc, acprio, SIZE_NDLTYPE_DCCMECHANISM) -#define WMI_NDL_AS_DCC_SET(ptr, acprio, val) wmi_packed_arr_set_bits((ptr)->as_dcc, acprio, SIZE_NDLTYPE_DCCMECHANISM, val) -#define WMI_NDL_AS_TX_POWER_GET(ptr, acprio) wmi_packed_arr_get_bits((ptr)->as_tx_power_ac, acprio, SIZE_NDLTYPE_TXPOWER) -#define WMI_NDL_AS_TX_POWER_SET(ptr, acprio, val) wmi_packed_arr_set_bits((ptr)->as_tx_power_ac, acprio, SIZE_NDLTYPE_TXPOWER, val) -#define WMI_NDL_AS_PACKET_INTERVAL_GET(ptr, acprio) wmi_packed_arr_get_bits((ptr)->as_packet_interval_ac, acprio, SIZE_NDLTYPE_PACKETINTERVAL) -#define WMI_NDL_AS_PACKET_INTERVAL_SET(ptr, acprio, val) wmi_packed_arr_set_bits((ptr)->as_packet_interval_ac, acprio, SIZE_NDLTYPE_PACKETINTERVAL, val) -#define WMI_NDL_AS_DATARATE_GET(ptr, acprio) wmi_packed_arr_get_bits((ptr)->as_datarate_ac, acprio, SIZE_NDLTYPE_DATARATE) -#define WMI_NDL_AS_DATARATE_SET(ptr, acprio, val) wmi_packed_arr_set_bits((ptr)->as_datarate_ac, acprio, SIZE_NDLTYPE_DATARATE, val) -#define WMI_NDL_AS_CARRIER_SENSE_GET(ptr, acprio) wmi_packed_arr_get_bits((ptr)->as_carrier_sense_ac, acprio, SIZE_NDLTYPE_RXPOWER) -#define WMI_NDL_AS_CARRIER_SENSE_SET(ptr, acprio, val) wmi_packed_arr_set_bits((ptr)->as_carrier_sense_ac, acprio, SIZE_NDLTYPE_RXPOWER, val) +#define WMI_NDL_AS_CHAN_LOAD_SET(ptr,val) WMI_SET_BITS((ptr)->state_info, 7, 11, val) +#define WMI_NDL_AS_DCC_GET(ptr,acprio) wmi_packed_arr_get_bits((ptr)->as_dcc, acprio, SIZE_NDLTYPE_DCCMECHANISM) +#define WMI_NDL_AS_DCC_SET(ptr,acprio,val) wmi_packed_arr_set_bits((ptr)->as_dcc, acprio, SIZE_NDLTYPE_DCCMECHANISM, val) +#define WMI_NDL_AS_TX_POWER_GET(ptr,acprio) wmi_packed_arr_get_bits((ptr)->as_tx_power_ac, acprio, SIZE_NDLTYPE_TXPOWER) +#define WMI_NDL_AS_TX_POWER_SET(ptr,acprio,val) wmi_packed_arr_set_bits((ptr)->as_tx_power_ac, acprio, SIZE_NDLTYPE_TXPOWER, val) +#define WMI_NDL_AS_PACKET_INTERVAL_GET(ptr,acprio) wmi_packed_arr_get_bits((ptr)->as_packet_interval_ac, acprio, SIZE_NDLTYPE_PACKETINTERVAL) +#define WMI_NDL_AS_PACKET_INTERVAL_SET(ptr,acprio,val) wmi_packed_arr_set_bits((ptr)->as_packet_interval_ac, acprio, SIZE_NDLTYPE_PACKETINTERVAL, val) +#define WMI_NDL_AS_DATARATE_GET(ptr,acprio) wmi_packed_arr_get_bits((ptr)->as_datarate_ac, acprio, SIZE_NDLTYPE_DATARATE) +#define WMI_NDL_AS_DATARATE_SET(ptr,acprio,val) wmi_packed_arr_set_bits((ptr)->as_datarate_ac, acprio, SIZE_NDLTYPE_DATARATE, val) +#define WMI_NDL_AS_CARRIER_SENSE_GET(ptr,acprio) wmi_packed_arr_get_bits((ptr)->as_carrier_sense_ac, acprio, SIZE_NDLTYPE_RXPOWER) +#define WMI_NDL_AS_CARRIER_SENSE_SET(ptr,acprio,val) wmi_packed_arr_set_bits((ptr)->as_carrier_sense_ac, acprio, SIZE_NDLTYPE_RXPOWER, val) /** Data structure for EDCA/QOS parameters. */ -typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_qos_parameter */ - A_UINT32 tlv_header; - /** Arbitration Inter-Frame Spacing. Range: 2-15 */ - A_UINT32 aifsn; - /** Contention Window minimum. Range: 1 - 10 */ - A_UINT32 cwmin; - /** Contention Window maximum. Range: 1 - 10 */ - A_UINT32 cwmax; +typedef struct +{ + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_qos_parameter */ + A_UINT32 tlv_header; + /** Arbitration Inter-Frame Spacing. Range: 2-15 */ + A_UINT32 aifsn; + /** Contention Window minimum. Range: 1 - 10 */ + A_UINT32 cwmin; + /** Contention Window maximum. Range: 1 - 10 */ + A_UINT32 cwmax; } wmi_qos_parameter; /** Data structure for information specific to a channel. */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ocb_channel */ - A_UINT32 tlv_header; - A_UINT32 bandwidth; /* MHz units */ - wmi_mac_addr mac_address; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_ocb_channel */ + A_UINT32 tlv_header; + A_UINT32 bandwidth; /* MHz units */ + wmi_mac_addr mac_address; } wmi_ocb_channel; /** Data structure for an element of the schedule array. */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ocb_schedule_element */ - A_UINT32 tlv_header; - A_UINT32 channel_freq; /* MHz units */ - A_UINT32 total_duration; /* ms units */ - A_UINT32 guard_interval; /* ms units */ + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_ocb_schedule_element */ + A_UINT32 tlv_header; + A_UINT32 channel_freq; /* MHz units */ + A_UINT32 total_duration; /* ms units */ + A_UINT32 guard_interval; /* ms units */ } wmi_ocb_schedule_element; /** Data structure for OCB configuration. */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ocb_set_config_cmd_fixed_param */ - A_UINT32 tlv_header; - /** VDEV id(interface) that is being configured */ - A_UINT32 vdev_id; - A_UINT32 channel_count; - A_UINT32 schedule_size; - A_UINT32 flags; - /** - * Max duration of continuing multichannel operation without - * receiving a TA frame (units = seconds) - */ - A_UINT32 ta_max_duration; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_ocb_set_config_cmd_fixed_param */ + A_UINT32 tlv_header; + /** VDEV id(interface) that is being configured */ + A_UINT32 vdev_id; + A_UINT32 channel_count; + A_UINT32 schedule_size; + A_UINT32 flags; + A_UINT32 ta_max_duration; /* Max duration of continuing multichannel operation without receiving a TA frame (units = seconds) */ - /** This is followed by a TLV array of wmi_channel. - * This is followed by a TLV array of wmi_ocb_channel. - * This is followed by a TLV array of wmi_qos_parameter. - * This is followed by a TLV array of wmi_dcc_ndl_chan. - * This is followed by a TLV array of wmi_dcc_ndl_active_state_config. - * This is followed by a TLV array of wmi_ocb_schedule_element. - */ + /** This is followed by a TLV array of wmi_channel. */ + /** This is followed by a TLV array of wmi_ocb_channel. */ + /** This is followed by a TLV array of wmi_qos_parameter. */ + /** This is followed by a TLV array of wmi_dcc_ndl_chan. */ + /** This is followed by a TLV array of wmi_dcc_ndl_active_state_config. */ + /** This is followed by a TLV array of wmi_ocb_schedule_element. */ } wmi_ocb_set_config_cmd_fixed_param; +#define EXPIRY_TIME_IN_TSF_TIMESTAMP_OFFSET 0 +#define EXPIRY_TIME_IN_TSF_TIMESTAMP_MASK 1 -#define EXPIRY_TIME_IN_TSF_TIMESTAMP_OFFSET 0 -#define EXPIRY_TIME_IN_TSF_TIMESTAMP_MASK 1 - -#define WMI_OCB_EXPIRY_TIME_IN_TSF(ptr) \ - (((ptr)->flags & EXPIRY_TIME_IN_TSF_TIMESTAMP_MASK) >> EXPIRY_TIME_IN_TSF_TIMESTAMP_OFFSET) +#define WMI_OCB_EXPIRY_TIME_IN_TSF(ptr) (((ptr)->flags & EXPIRY_TIME_IN_TSF_TIMESTAMP_MASK) >> EXPIRY_TIME_IN_TSF_TIMESTAMP_OFFSET) /** Data structure for the response to the WMI_OCB_SET_CONFIG_CMDID command. */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ocb_set_config_resp_event_fixed_param - */ - A_UINT32 tlv_header; - /* VDEV id(interface)*/ - A_UINT32 vdev_id; - A_UINT32 status; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_ocb_set_config_resp_event_fixed_param */ + A_UINT32 tlv_header; + /* VDEV identifier */ + A_UINT32 vdev_id; + A_UINT32 status; } wmi_ocb_set_config_resp_event_fixed_param; /* SIZE_UTC_TIME and SIZE_UTC_TIME_ERROR cannot be modified without breaking - * WMI compatibility. - */ -/* The size of the utc time in bytes. */ -#define SIZE_UTC_TIME (10) -/* The size of the utc time error in bytes. */ -#define SIZE_UTC_TIME_ERROR (5) + WMI compatibility. */ +#define SIZE_UTC_TIME (10) /* The size of the utc time in bytes. */ +#define SIZE_UTC_TIME_ERROR (5) /* The size of the utc time error in bytes. */ /** Data structure to set the UTC time. */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ocb_set_utc_time_cmd_fixed_param */ - A_UINT32 tlv_header; - /*VDEV Identifier*/ - A_UINT32 vdev_id; - /** 10 bytes of the utc time. */ - A_UINT32 utc_time[WMI_PACKED_ARR_SIZE(SIZE_UTC_TIME, SIZE_BYTE)]; - /** 5 bytes of the time error. */ - A_UINT32 time_error[WMI_PACKED_ARR_SIZE(SIZE_UTC_TIME_ERROR, SIZE_BYTE)]; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_ocb_set_utc_time_cmd_fixed_param */ + A_UINT32 tlv_header; + /* VDEV identifier */ + A_UINT32 vdev_id; + /** 10 bytes of the utc time. */ + A_UINT32 utc_time[WMI_PACKED_ARR_SIZE(SIZE_UTC_TIME,SIZE_BYTE)]; + /** 5 bytes of the time error. */ + A_UINT32 time_error[WMI_PACKED_ARR_SIZE(SIZE_UTC_TIME_ERROR,SIZE_BYTE)]; } wmi_ocb_set_utc_time_cmd_fixed_param; -#define WMI_UTC_TIME_GET(ptr, byte_index) wmi_packed_arr_get_bits((ptr)->utc_time, byte_index, SIZE_BYTE) -#define WMI_UTC_TIME_SET(ptr, byte_index, val) wmi_packed_arr_set_bits((ptr)->utc_time, byte_index, SIZE_BYTE, val) -#define WMI_TIME_ERROR_GET(ptr, byte_index) wmi_packed_arr_get_bits((ptr)->time_error, byte_index, SIZE_BYTE) -#define WMI_TIME_ERROR_SET(ptr, byte_index, val) wmi_packed_arr_set_bits((ptr)->time_error, byte_index, SIZE_BYTE, val) +#define WMI_UTC_TIME_GET(ptr,byte_index) wmi_packed_arr_get_bits((ptr)->utc_time, byte_index, SIZE_BYTE) +#define WMI_UTC_TIME_SET(ptr,byte_index,val) wmi_packed_arr_set_bits((ptr)->utc_time, byte_index, SIZE_BYTE, val) +#define WMI_TIME_ERROR_GET(ptr,byte_index) wmi_packed_arr_get_bits((ptr)->time_error, byte_index, SIZE_BYTE) +#define WMI_TIME_ERROR_SET(ptr,byte_index,val) wmi_packed_arr_set_bits((ptr)->time_error, byte_index, SIZE_BYTE, val) /** Data structure start the timing advertisement. The template for the * timing advertisement frame follows this structure in the WMI command. */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ocb_start_timing_advert_cmd_fixed_param */ - A_UINT32 tlv_header; - /*VDEV Identifier*/ - A_UINT32 vdev_id; - /** Number of times the TA is sent every 5 seconds. */ - A_UINT32 repeat_rate; - /** The frequency on which to transmit. */ - A_UINT32 channel_freq; /* MHz units */ - /** The offset into the template of the timestamp. */ - A_UINT32 timestamp_offset; - /** The offset into the template of the time value. */ - A_UINT32 time_value_offset; - /** The length of the timing advertisement template. The - * template is in the TLV data. */ - A_UINT32 timing_advert_template_length; - /** This is followed by a binary array containing the TA template. */ + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_ocb_start_timing_advert_cmd_fixed_param */ + A_UINT32 tlv_header; + /* VDEV identifier */ + A_UINT32 vdev_id; + /** Number of times the TA is sent every 5 seconds. */ + A_UINT32 repeat_rate; + /** The frequency on which to transmit. */ + A_UINT32 channel_freq; /* MHz units */ + /** The offset into the template of the timestamp. */ + A_UINT32 timestamp_offset; + /** The offset into the template of the time value. */ + A_UINT32 time_value_offset; + /** The length of the timing advertisement template. The + * template is in the TLV data. */ + A_UINT32 timing_advert_template_length; + + /** This is followed by a binary array containing the TA template. */ } wmi_ocb_start_timing_advert_cmd_fixed_param; /** Data structure to stop the timing advertisement. */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ocb_stop_timing_advert_cmd_fixed_param */ - A_UINT32 tlv_header; - /*VDEV Identifier*/ - A_UINT32 vdev_id; - A_UINT32 channel_freq; /* MHz units */ + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_ocb_stop_timing_advert_cmd_fixed_param */ + A_UINT32 tlv_header; + /* VDEV identifier */ + A_UINT32 vdev_id; + A_UINT32 channel_freq; /* MHz units */ } wmi_ocb_stop_timing_advert_cmd_fixed_param; /** Data structure for the request for WMI_OCB_GET_TSF_TIMER_CMDID. */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ocb_get_tsf_timer_cmd_fixed_param */ - A_UINT32 tlv_header; - /*VDEV Identifier*/ - A_UINT32 vdev_id; - A_UINT32 reserved; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_ocb_get_tsf_timer_cmd_fixed_param */ + A_UINT32 tlv_header; + /* VDEV identifier */ + A_UINT32 vdev_id; + A_UINT32 reserved; } wmi_ocb_get_tsf_timer_cmd_fixed_param; /** Data structure for the response to WMI_OCB_GET_TSF_TIMER_CMDID. */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ocb_get_tsf_timer_resp_event_fixed_param */ - A_UINT32 tlv_header; - /*VDEV Identifier*/ - A_UINT32 vdev_id; - A_UINT32 tsf_timer_high; - A_UINT32 tsf_timer_low; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_ocb_get_tsf_timer_resp_event_fixed_param */ + A_UINT32 tlv_header; + /* VDEV identifier */ + A_UINT32 vdev_id; + A_UINT32 tsf_timer_high; + A_UINT32 tsf_timer_low; } wmi_ocb_get_tsf_timer_resp_event_fixed_param; /** Data structure for DCC stats configuration per channel. */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_dcc_ndl_stats_per_channel */ - A_UINT32 tlv_header; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_dcc_ndl_stats_per_channel */ + A_UINT32 tlv_header; - /*VDEV Identifier*/ - A_UINT32 vdev_id; + /** The channel for which this applies, 16 bits. */ + /** The dcc_stats_bitmap, 8 bits. */ + A_UINT32 chan_info; - /** The channel for which this applies, 16 bits. - * The dcc_stats_bitmap, 8 bits. */ - A_UINT32 chan_info; + /** Demodulation model parameters. */ + /** + * NDL_snrBackoff(MCS0), ndlType_snr, 1+7 bits. + * NDL_snrBackoff(MCS1), ndlType_snr, 1+7 bits. + * NDL_snrBackoff(MCS2), ndlType_snr, 1+7 bits. + * NDL_snrBackoff(MCS3), ndlType_snr, 1+7 bits. + * NDL_snrBackoff(MCS4), ndlType_snr, 1+7 bits. + * NDL_snrBackoff(MCS5), ndlType_snr, 1+7 bits. + * NDL_snrBackoff(MCS6), ndlType_snr, 1+7 bits. + * NDL_snrBackoff(MCS7), ndlType_snr, 1+7 bits. + */ + A_UINT32 snr_backoff_mcs[WMI_PACKED_ARR_SIZE(MCS_COUNT,SIZE_NDLTYPE_SNR)]; - /** Demodulation model parameters. - * - * NDL_snrBackoff(MCS0), ndlType_snr, 1+7 bits. - * NDL_snrBackoff(MCS1), ndlType_snr, 1+7 bits. - * NDL_snrBackoff(MCS2), ndlType_snr, 1+7 bits. - * NDL_snrBackoff(MCS3), ndlType_snr, 1+7 bits. - * NDL_snrBackoff(MCS4), ndlType_snr, 1+7 bits. - * NDL_snrBackoff(MCS5), ndlType_snr, 1+7 bits. - * NDL_snrBackoff(MCS6), ndlType_snr, 1+7 bits. - * NDL_snrBackoff(MCS7), ndlType_snr, 1+7 bits. - */ - A_UINT32 snr_backoff_mcs[WMI_PACKED_ARR_SIZE(MCS_COUNT, SIZE_NDLTYPE_SNR)]; + /** Communication ranges. */ + /** + * tx_power, ndlType_txPower, 1+7 bits. + * datarate, ndlType_datarate, 1+3 bits. + */ + A_UINT32 tx_power_datarate; + /** + * NDL_carrierSenseRange, ndlType_distance, 1+12 bits. + * NDL_estCommRange, ndlType_distance, 1+12 bits. + */ + A_UINT32 carrier_sense_est_comm_range; - /** Communication ranges. - * - * tx_power, ndlType_txPower, 1+7 bits. - * datarate, ndlType_datarate, 1+3 bits. - */ - A_UINT32 tx_power_datarate; - /** - * NDL_carrierSenseRange, ndlType_distance, 1+12 bits. - * NDL_estCommRange, ndlType_distance, 1+12 bits. - */ - A_UINT32 carrier_sense_est_comm_range; + /** Channel load measures. */ + /** + * dccSensitivity, ndlType_rxPower, 1+7 bits. + * carrierSense, ndlType_rxPower, 1+7 bits. + * NDL_channelLoad, ndlType_channelLoad, 1+10 bits. + */ + A_UINT32 dcc_stats; + /** + * NDL_packetArrivalRate, ndlType_arrivalRate, 1+13 bits. + * NDL_packetAvgDuration, ndlType_packetDuration, 1+11 bits. + */ + A_UINT32 packet_stats; + /** + * NDL_channelBusyTime, ndlType_channelLoad, 1+10 bits. + */ + A_UINT32 channel_busy_time; - /** Channel load measures. */ - /** - * dccSensitivity, ndlType_rxPower, 1+7 bits. - * carrierSense, ndlType_rxPower, 1+7 bits. - * NDL_channelLoad, ndlType_channelLoad, 1+10 bits. - */ - A_UINT32 dcc_stats; - /** - * NDL_packetArrivalRate, ndlType_arrivalRate, 1+13 bits. - * NDL_packetAvgDuration, ndlType_packetDuration, 1+11 bits. - */ - A_UINT32 packet_stats; - /** - * NDL_channelBusyTime, ndlType_channelLoad, 1+10 bits. - */ - A_UINT32 channel_busy_time; - /** - *Transmit packet statistics. - * NDL_txPacketArrivalRate(AC_BK), ndlType_arrivalRate, 1+13 bits. - * NDL_txPacketArrivalRate(AC_BE), ndlType_arrivalRate, 1+13 bits. - * NDL_txPacketArrivalRate(AC_VI), ndlType_arrivalRate, 1+13 bits. - * NDL_txPacketArrivalRate(AC_VO), ndlType_arrivalRate, 1+13 bits. - */ - A_UINT32 tx_packet_arrival_rate_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_ARRIVALRATE)]; - /** - * NDL_txPacketAvgDuration(AC_BK), ndlType_packetDuration, 1+11 bits. - * NDL_txPacketAvgDuration(AC_BE), ndlType_packetDuration, 1+11 bits. - * NDL_txPacketAvgDuration(AC_VI), ndlType_packetDuration, 1+11 bits. - * NDL_txPacketAvgDuration(AC_VO), ndlType_packetDuration, 1+11 bits. - */ - A_UINT32 tx_packet_avg_duration_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_PACKETDURATION)]; - /** - * NDL_txChannelUse(AC_BK), ndlType_channelUse, 1+13 bits. - * NDL_txChannelUse(AC_BE), ndlType_channelUse, 1+13 bits. - * NDL_txChannelUse(AC_VI), ndlType_channelUse, 1+13 bits. - * NDL_txChannelUse(AC_VO), ndlType_channelUse, 1+13 bits. - */ - A_UINT32 tx_channel_use_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_CHANNELUSE)]; - /** - * NDL_txSignalAvgPower(AC_BK), ndlType_txPower, 1+7 bits. - * NDL_txSignalAvgPower(AC_BE), ndlType_txPower, 1+7 bits. - * NDL_txSignalAvgPower(AC_VI), ndlType_txPower, 1+7 bits. - * NDL_txSignalAvgPower(AC_VO), ndlType_txPower, 1+7 bits. - */ - A_UINT32 tx_signal_avg_power_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_TXPOWER)]; + /** Transmit packet statistics. */ + /** + * NDL_txPacketArrivalRate(AC_BK), ndlType_arrivalRate, 1+13 bits. + * NDL_txPacketArrivalRate(AC_BE), ndlType_arrivalRate, 1+13 bits. + * NDL_txPacketArrivalRate(AC_VI), ndlType_arrivalRate, 1+13 bits. + * NDL_txPacketArrivalRate(AC_VO), ndlType_arrivalRate, 1+13 bits. + */ + A_UINT32 tx_packet_arrival_rate_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC,SIZE_NDLTYPE_ARRIVALRATE)]; + /** + * NDL_txPacketAvgDuration(AC_BK), ndlType_packetDuration, 1+11 bits. + * NDL_txPacketAvgDuration(AC_BE), ndlType_packetDuration, 1+11 bits. + * NDL_txPacketAvgDuration(AC_VI), ndlType_packetDuration, 1+11 bits. + * NDL_txPacketAvgDuration(AC_VO), ndlType_packetDuration, 1+11 bits. + */ + A_UINT32 tx_packet_avg_duration_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC,SIZE_NDLTYPE_PACKETDURATION)]; + /** + * NDL_txChannelUse(AC_BK), ndlType_channelUse, 1+13 bits. + * NDL_txChannelUse(AC_BE), ndlType_channelUse, 1+13 bits. + * NDL_txChannelUse(AC_VI), ndlType_channelUse, 1+13 bits. + * NDL_txChannelUse(AC_VO), ndlType_channelUse, 1+13 bits. + */ + A_UINT32 tx_channel_use_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC,SIZE_NDLTYPE_CHANNELUSE)]; + /** + * NDL_txSignalAvgPower(AC_BK), ndlType_txPower, 1+7 bits. + * NDL_txSignalAvgPower(AC_BE), ndlType_txPower, 1+7 bits. + * NDL_txSignalAvgPower(AC_VI), ndlType_txPower, 1+7 bits. + * NDL_txSignalAvgPower(AC_VO), ndlType_txPower, 1+7 bits. + */ + A_UINT32 tx_signal_avg_power_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC,SIZE_NDLTYPE_TXPOWER)]; } wmi_dcc_ndl_stats_per_channel; -#define WMI_NDL_STATS_SNR_BACKOFF_GET(ptr, mcs) wmi_packed_arr_get_bits((ptr)->snr_backoff_mcs, mcs, SIZE_NDLTYPE_SNR) -#define WMI_NDL_STATS_SNR_BACKOFF_SET(ptr, mcs, val) wmi_packed_arr_set_bits((ptr)->snr_backoff_mcs, mcs, SIZE_NDLTYPE_SNR, val) -#define WMI_NDL_STATS_CHAN_FREQ_GET(ptr) WMI_GET_BITS((ptr)->chan_info, 0, 16) -#define WMI_NDL_STATS_CHAN_FREQ_SET(ptr, val) WMI_SET_BITS((ptr)->chan_info, 0, 16, val) -#define WMI_NDL_STATS_DCC_STATS_BITMAP_GET(ptr) WMI_GET_BITS((ptr)->chan_info, 16, 8) -#define WMI_NDL_STATS_DCC_STATS_BITMAP_SET(ptr, val) WMI_SET_BITS((ptr)->chan_info, 16, 8, val) -#define WMI_NDL_STATS_SNR_BACKOFF_GET(ptr, mcs) wmi_packed_arr_get_bits((ptr)->snr_backoff_mcs, mcs, SIZE_NDLTYPE_SNR) -#define WMI_NDL_STATS_SNR_BACKOFF_SET(ptr, mcs, val) wmi_packed_arr_set_bits((ptr)->snr_backoff_mcs, mcs, SIZE_NDLTYPE_SNR, val) -#define WMI_TX_POWER_GET(ptr) WMI_GET_BITS((ptr)->tx_power_datarate, 0, 8) -#define WMI_TX_POWER_SET(ptr, val) WMI_SET_BITS((ptr)->tx_power_datarate, 0, 8, val) -#define WMI_TX_DATARATE_GET(ptr) WMI_GET_BITS((ptr)->tx_power_datarate, 0, 4) -#define WMI_TX_DATARATE_SET(ptr, val) WMI_SET_BITS((ptr)->tx_power_datarate, 0, 4, val) -#define WMI_NDL_CARRIER_SENSE_RANGE_GET(ptr) WMI_GET_BITS((ptr)->carrier_sense_est_comm_range, 0, 13) -#define WMI_NDL_CARRIER_SENSE_RANGE_SET(ptr, val) WMI_SET_BITS((ptr)->carrier_sense_est_comm_range, 0, 13, val) -#define WMI_NDL_EST_COMM_RANGE_GET(ptr) WMI_GET_BITS((ptr)->carrier_sense_est_comm_range, 13, 13) -#define WMI_NDL_EST_COMM_RANGE_SET(ptr, val) WMI_SET_BITS((ptr)->carrier_sense_est_comm_range, 13, 13, val) -#define WMI_DCC_SENSITIVITY_GET(ptr) WMI_GET_BITS((ptr)->dcc_stats, 0, 8) -#define WMI_DCC_SENSITIVITY_SET(ptr, val) WMI_SET_BITS((ptr)->dcc_stats, 0, 8, val) -#define WMI_CARRIER_SENSE_GET(ptr) WMI_GET_BITS((ptr)->dcc_stats, 8, 8) -#define WMI_CARRIER_SENSE_SET(ptr, val) WMI_SET_BITS((ptr)->dcc_stats, 8, 8, val) -#define WMI_NDL_CHANNEL_LOAD_GET(ptr) WMI_GET_BITS((ptr)->dcc_stats, 16, 11) -#define WMI_NDL_CHANNEL_LOAD_SET(ptr, val) WMI_SET_BITS((ptr)->dcc_stats, 16, 11, val) -#define WMI_NDL_PACKET_ARRIVAL_RATE_GET(ptr) WMI_GET_BITS((ptr)->packet_stats, 0, 14) -#define WMI_NDL_PACKET_ARRIVAL_RATE_SET(ptr, val) WMI_SET_BITS((ptr)->packet_stats, 0, 14, val) -#define WMI_NDL_PACKET_AVG_DURATION_GET(ptr) WMI_GET_BITS((ptr)->packet_stats, 14, 12) -#define WMI_NDL_PACKET_AVG_DURATION_SET(ptr, val) WMI_SET_BITS((ptr)->packet_stats, 14, 12, val) -#define WMI_NDL_CHANNEL_BUSY_TIME_GET(ptr) WMI_GET_BITS((ptr)->channel_busy_time, 0, 11) -#define WMI_NDL_CHANNEL_BUSY_TIME_SET(ptr, val) WMI_SET_BITS((ptr)->channel_busy_time, 0, 11, val) +#define WMI_NDL_STATS_SNR_BACKOFF_GET(ptr,mcs) wmi_packed_arr_get_bits((ptr)->snr_backoff_mcs, mcs, SIZE_NDLTYPE_SNR) +#define WMI_NDL_STATS_SNR_BACKOFF_SET(ptr,mcs,val) wmi_packed_arr_set_bits((ptr)->snr_backoff_mcs, mcs, SIZE_NDLTYPE_SNR, val) -#define WMI_NDL_TX_PACKET_ARRIVAL_RATE_GET(ptr, acprio) wmi_packed_arr_get_bits((ptr)->tx_packet_arrival_rate_ac, acprio, SIZE_NDLTYPE_ARRIVALRATE) -#define WMI_NDL_TX_PACKET_ARRIVAL_RATE_SET(ptr, acprio, val) wmi_packed_arr_set_bits((ptr)->tx_packet_arrival_rate_ac, acprio, SIZE_NDLTYPE_ARRIVALRATE, val) -#define WMI_NDL_TX_PACKET_AVG_DURATION_GET(ptr, acprio) wmi_packed_arr_get_bits((ptr)->tx_packet_avg_duration_ac, acprio, SIZE_NDLTYPE_PACKETDURATION) -#define WMI_NDL_TX_PACKET_AVG_DURATION_SET(ptr, acprio, val) wmi_packed_arr_set_bits((ptr)->tx_packet_avg_duration_ac, acprio, SIZE_NDLTYPE_PACKETDURATION, val) -#define WMI_NDL_TX_CHANNEL_USE_GET(ptr, acprio) wmi_packed_arr_get_bits((ptr)->tx_channel_use_ac, acprio, SIZE_NDLTYPE_CHANNELUSE) -#define WMI_NDL_TX_CHANNEL_USE_SET(ptr, acprio, val) wmi_packed_arr_set_bits((ptr)->tx_channel_use_ac, acprio, SIZE_NDLTYPE_CHANNELUSE, val) -#define WMI_NDL_TX_SIGNAL_AVG_POWER_GET(ptr, acprio) wmi_packed_arr_get_bits((ptr)->tx_signal_avg_power_ac, acprio, SIZE_NDLTYPE_TXPOWER) -#define WMI_NDL_TX_SIGNAL_AVG_POWER_SET(ptr, acprio, val) wmi_packed_arr_set_bits((ptr)->tx_signal_avg_power_ac, acprio, SIZE_NDLTYPE_TXPOWER, val) +#define WMI_NDL_STATS_CHAN_FREQ_GET(ptr) WMI_GET_BITS((ptr)->chan_info, 0, 16) +#define WMI_NDL_STATS_CHAN_FREQ_SET(ptr,val) WMI_SET_BITS((ptr)->chan_info, 0, 16, val) +#define WMI_NDL_STATS_DCC_STATS_BITMAP_GET(ptr) WMI_GET_BITS((ptr)->chan_info, 16, 8) +#define WMI_NDL_STATS_DCC_STATS_BITMAP_SET(ptr,val) WMI_SET_BITS((ptr)->chan_info, 16, 8, val) + +#define WMI_NDL_STATS_SNR_BACKOFF_GET(ptr,mcs) wmi_packed_arr_get_bits((ptr)->snr_backoff_mcs, mcs, SIZE_NDLTYPE_SNR) +#define WMI_NDL_STATS_SNR_BACKOFF_SET(ptr,mcs,val) wmi_packed_arr_set_bits((ptr)->snr_backoff_mcs, mcs, SIZE_NDLTYPE_SNR, val) + +#define WMI_TX_POWER_GET(ptr) WMI_GET_BITS((ptr)->tx_power_datarate, 0, 8) +#define WMI_TX_POWER_SET(ptr,val) WMI_SET_BITS((ptr)->tx_power_datarate, 0, 8, val) +#define WMI_TX_DATARATE_GET(ptr) WMI_GET_BITS((ptr)->tx_power_datarate, 0, 4) +#define WMI_TX_DATARATE_SET(ptr,val) WMI_SET_BITS((ptr)->tx_power_datarate, 0, 4, val) +#define WMI_NDL_CARRIER_SENSE_RANGE_GET(ptr) WMI_GET_BITS((ptr)->carrier_sense_est_comm_range, 0, 13) +#define WMI_NDL_CARRIER_SENSE_RANGE_SET(ptr,val) WMI_SET_BITS((ptr)->carrier_sense_est_comm_range, 0, 13, val) +#define WMI_NDL_EST_COMM_RANGE_GET(ptr) WMI_GET_BITS((ptr)->carrier_sense_est_comm_range, 13, 13) +#define WMI_NDL_EST_COMM_RANGE_SET(ptr,val) WMI_SET_BITS((ptr)->carrier_sense_est_comm_range, 13, 13, val) + +#define WMI_DCC_SENSITIVITY_GET(ptr) WMI_GET_BITS((ptr)->dcc_stats, 0, 8) +#define WMI_DCC_SENSITIVITY_SET(ptr,val) WMI_SET_BITS((ptr)->dcc_stats, 0, 8, val) +#define WMI_CARRIER_SENSE_GET(ptr) WMI_GET_BITS((ptr)->dcc_stats, 8, 8) +#define WMI_CARRIER_SENSE_SET(ptr,val) WMI_SET_BITS((ptr)->dcc_stats, 8, 8, val) +#define WMI_NDL_CHANNEL_LOAD_GET(ptr) WMI_GET_BITS((ptr)->dcc_stats, 16, 11) +#define WMI_NDL_CHANNEL_LOAD_SET(ptr,val) WMI_SET_BITS((ptr)->dcc_stats, 16, 11, val) +#define WMI_NDL_PACKET_ARRIVAL_RATE_GET(ptr) WMI_GET_BITS((ptr)->packet_stats, 0, 14) +#define WMI_NDL_PACKET_ARRIVAL_RATE_SET(ptr,val) WMI_SET_BITS((ptr)->packet_stats, 0, 14, val) +#define WMI_NDL_PACKET_AVG_DURATION_GET(ptr) WMI_GET_BITS((ptr)->packet_stats, 14, 12) +#define WMI_NDL_PACKET_AVG_DURATION_SET(ptr,val) WMI_SET_BITS((ptr)->packet_stats, 14, 12, val) +#define WMI_NDL_CHANNEL_BUSY_TIME_GET(ptr) WMI_GET_BITS((ptr)->channel_busy_time, 0, 11) +#define WMI_NDL_CHANNEL_BUSY_TIME_SET(ptr,val) WMI_SET_BITS((ptr)->channel_busy_time, 0, 11, val) + +#define WMI_NDL_TX_PACKET_ARRIVAL_RATE_GET(ptr,acprio) wmi_packed_arr_get_bits((ptr)->tx_packet_arrival_rate_ac, acprio, SIZE_NDLTYPE_ARRIVALRATE) +#define WMI_NDL_TX_PACKET_ARRIVAL_RATE_SET(ptr,acprio,val) wmi_packed_arr_set_bits((ptr)->tx_packet_arrival_rate_ac, acprio, SIZE_NDLTYPE_ARRIVALRATE, val) +#define WMI_NDL_TX_PACKET_AVG_DURATION_GET(ptr,acprio) wmi_packed_arr_get_bits((ptr)->tx_packet_avg_duration_ac, acprio, SIZE_NDLTYPE_PACKETDURATION) +#define WMI_NDL_TX_PACKET_AVG_DURATION_SET(ptr,acprio,val) wmi_packed_arr_set_bits((ptr)->tx_packet_avg_duration_ac, acprio, SIZE_NDLTYPE_PACKETDURATION, val) +#define WMI_NDL_TX_CHANNEL_USE_GET(ptr,acprio) wmi_packed_arr_get_bits((ptr)->tx_channel_use_ac, acprio, SIZE_NDLTYPE_CHANNELUSE) +#define WMI_NDL_TX_CHANNEL_USE_SET(ptr,acprio,val) wmi_packed_arr_set_bits((ptr)->tx_channel_use_ac, acprio, SIZE_NDLTYPE_CHANNELUSE, val) +#define WMI_NDL_TX_SIGNAL_AVG_POWER_GET(ptr,acprio) wmi_packed_arr_get_bits((ptr)->tx_signal_avg_power_ac, acprio, SIZE_NDLTYPE_TXPOWER) +#define WMI_NDL_TX_SIGNAL_AVG_POWER_SET(ptr,acprio,val) wmi_packed_arr_set_bits((ptr)->tx_signal_avg_power_ac, acprio, SIZE_NDLTYPE_TXPOWER, val) /** Bitmap for DCC stats. */ typedef enum { - DCC_STATS_DEMODULATION_MODEL = 1, - DCC_STATS_COMMUNICATION_RANGES = 2, - DCC_STATS_CHANNEL_LOAD_MEASURES = 4, - DCC_STATS_TRANSMIT_PACKET_STATS = 8, - DCC_STATS_TRANSMIT_MODEL_PARAMETER = 16, - DCC_STATS_ALL = 0xff, + DCC_STATS_DEMODULATION_MODEL = 1, + DCC_STATS_COMMUNICATION_RANGES = 2, + DCC_STATS_CHANNEL_LOAD_MEASURES = 4, + DCC_STATS_TRANSMIT_PACKET_STATS = 8, + DCC_STATS_TRANSMIT_MODEL_PARAMETER = 16, + DCC_STATS_ALL = 0xff, } wmi_dcc_stats_bitmap; /** Data structure for getting the DCC stats. */ typedef struct { - /** - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_dcc_get_stats_cmd_fixed_param - */ - A_UINT32 tlv_header; - /* VDEV identifier */ - A_UINT32 vdev_id; - /**The number of channels for which stats are being requested. */ - A_UINT32 num_channels; - /** This is followed by a TLV array of wmi_dcc_channel_stats_request. */ + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_dcc_get_stats_cmd_fixed_param */ + A_UINT32 tlv_header; + + /* VDEV identifier */ + A_UINT32 vdev_id; + + /** The number of channels for which stats are being requested. */ + A_UINT32 num_channels; + + /** This is followed by a TLV array of wmi_dcc_channel_stats_request. */ } wmi_dcc_get_stats_cmd_fixed_param; typedef struct { - /** - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_dcc_channel_stats_request. - */ - A_UINT32 tlv_header; - /** The channel for which this applies. */ - A_UINT32 chan_freq; /* MHz units */ - /** The DCC stats being requested. */ - A_UINT32 dcc_stats_bitmap; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_dcc_channel_stats_request */ + A_UINT32 tlv_header; + + /** The channel for which this applies. */ + A_UINT32 chan_freq; /* MHz units */ + + /** The DCC stats being requested. */ + A_UINT32 dcc_stats_bitmap; } wmi_dcc_channel_stats_request; /** Data structure for the response with the DCC stats. */ typedef struct { - /** - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_dcc_get_stats_resp_event_fixed_param - */ - A_UINT32 tlv_header; - /* VDEV identifier */ - A_UINT32 vdev_id; - /** Number of channels in the response. */ - A_UINT32 num_channels; - /** This is followed by a TLV array of wmi_dcc_ndl_stats_per_channel. */ + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_dcc_get_stats_resp_event_fixed_param */ + A_UINT32 tlv_header; + /* VDEV identifier */ + A_UINT32 vdev_id; + /** Number of channels in the response. */ + A_UINT32 num_channels; + /** This is followed by a TLV array of wmi_dcc_ndl_stats_per_channel. */ } wmi_dcc_get_stats_resp_event_fixed_param; /** Data structure for clearing the DCC stats. */ typedef struct { - /** - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_dcc_clear_stats_cmd_fixed_param - */ - A_UINT32 tlv_header; - /* VDEV identifier */ - A_UINT32 vdev_id; - A_UINT32 dcc_stats_bitmap; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_dcc_clear_stats_cmd_fixed_param */ + A_UINT32 tlv_header; + /* VDEV identifier */ + A_UINT32 vdev_id; + A_UINT32 dcc_stats_bitmap; } wmi_dcc_clear_stats_cmd_fixed_param; /** Data structure for the pushed DCC stats */ typedef struct { - /** - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_dcc_stats_event_fixed_param - */ - A_UINT32 tlv_header; - /* VDEV identifier */ - A_UINT32 vdev_id; - /** The number of channels in the response. */ - A_UINT32 num_channels; - /** This is followed by a TLV array of wmi_dcc_ndl_stats_per_channel. */ + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_dcc_stats_event_fixed_param */ + A_UINT32 tlv_header; + /* VDEV identifier */ + A_UINT32 vdev_id; + /** The number of channels in the response. */ + A_UINT32 num_channels; + + /** This is followed by a TLV array of wmi_dcc_ndl_stats_per_channel. */ } wmi_dcc_stats_event_fixed_param; /** Data structure for updating NDL per channel. */ typedef struct { - /** - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_dcc_ndl_chan - */ - A_UINT32 tlv_header; - /** - * Channel frequency, 16 bits - * NDL_numActiveState, ndlType_numberElements, 1+6 bits - */ - A_UINT32 chan_info; - /** - * NDL_minDccSampling, 10 bits. - * Maximum time interval between subsequent checks of the DCC rules. - */ - A_UINT32 ndl_min_dcc_sampling; - /** - * dcc_enable, 1 bit. - * dcc_stats_enable, 1 bit. - * dcc_stats_interval, 16 bits. - */ - A_UINT32 dcc_flags; - /** General DCC configuration. - * NDL_timeUp, ndlType_timing, 1+12 bits. - * NDL_timeDown, ndlType_timing, 1+12 bits. - */ - A_UINT32 general_config; - /** Transmit power thresholds. - * NDL_minTxPower, ndlType_txPower, 1+7 bits. - * NDL_maxTxPower, ndlType_txPower, 1+7 bits. - */ - /* see "ETSI TS 102 687" table above for units */ - A_UINT32 min_max_tx_power; - /** - * NDL_defTxPower(AC_BK), ndlType_txPower, 1+7 bits. - * NDL_defTxPower(AC_BE), ndlType_txPower, 1+7 bits. - * NDL_defTxPower(AC_VI), ndlType_txPower, 1+7 bits. - * NDL_defTxPower(AC_VO), ndlType_txPower, 1+7 bits. - */ + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_dcc_ndl_chan */ + A_UINT32 tlv_header; + + /** + * Channel frequency, 16 bits + * NDL_numActiveState, ndlType_numberElements, 1+6 bits + */ + A_UINT32 chan_info; + + /** + * NDL_minDccSampling, 10 bits. + * Maximum time interval between subsequent checks of the DCC rules. + */ + A_UINT32 ndl_min_dcc_sampling; + + /** + * dcc_enable, 1 bit. + * dcc_stats_enable, 1 bit. + * dcc_stats_interval, 16 bits. + */ + A_UINT32 dcc_flags; + + /** General DCC configuration. */ + /** + * NDL_timeUp, ndlType_timing, 1+12 bits. + * NDL_timeDown, ndlType_timing, 1+12 bits. + */ + A_UINT32 general_config; + + /** Transmit power thresholds. */ + /** + * NDL_minTxPower, ndlType_txPower, 1+7 bits. + * NDL_maxTxPower, ndlType_txPower, 1+7 bits. + */ + A_UINT32 min_max_tx_power; /* see "ETSI TS 102 687" table above for units */ + /** + * NDL_defTxPower(AC_BK), ndlType_txPower, 1+7 bits. + * NDL_defTxPower(AC_BE), ndlType_txPower, 1+7 bits. + * NDL_defTxPower(AC_VI), ndlType_txPower, 1+7 bits. + * NDL_defTxPower(AC_VO), ndlType_txPower, 1+7 bits. + */ /* see "ETSI TS 102 687" table above for units */ - A_UINT32 def_tx_power_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_TXPOWER)]; - /** Packet timing thresholds. - * NDL_maxPacketDuration(AC_BK), ndlType_packetDuration, 1+11 bits. - * NDL_maxPacketDuration(AC_BE), ndlType_packetDuration, 1+11 bits. - * NDL_maxPacketDuration(AC_VI), ndlType_packetDuration, 1+11 bits. - * NDL_maxPacketDuration(AC_VO), ndlType_packetDuration, 1+11 bits. - */ - A_UINT32 max_packet_duration_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_PACKETDURATION)]; - /** - * NDL_minPacketInterval, ndlType_packetInterval, 1+10 bits. - * NDL_maxPacketInterval, ndlType_packetInterval, 1+10 bits. - */ - A_UINT32 min_max_packet_interval; - /** - * NDL_defPacketInterval(AC_BK), ndlType_packetInterval, 1+10 bits. - * NDL_defPacketInterval(AC_BE), ndlType_packetInterval, 1+10 bits. - * NDL_defPacketInterval(AC_VI), ndlType_packetInterval, 1+10 bits. - * NDL_defPacketInterval(AC_VO), ndlType_packetInterval, 1+10 bits - */ - A_UINT32 def_packet_interval_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_PACKETINTERVAL)]; - /** Packet datarate thresholds. - * NDL_minDatarate, ndlType_datarate, 1+3 bits. - * NDL_maxDatarate, ndlType_datarate, 1+3 bits. - */ - A_UINT32 min_max_datarate; - /** - * NDL_defDatarate(AC_BK), ndlType_datarate, 1+3 bits. - * NDL_defDatarate(AC_BE), ndlType_datarate, 1+3 bits. - * NDL_defDatarate(AC_VI), ndlType_datarate, 1+3 bits. - * NDL_defDatarate(AC_VO), ndlType_datarate, 1+3 bits. - */ - A_UINT32 def_datarate_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_DATARATE)]; - /** Receive signal thresholds. - * NDL_minCarrierSense, ndlType_rxPower, 1+7 bits. - * NDL_maxCarrierSense, ndlType_rxPower, 1+7 bits. - * NDL_defCarrierSense, ndlType_rxPower, 1+7 bits. - */ - A_UINT32 min_max_def_carrier_sense; + A_UINT32 def_tx_power_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC,SIZE_NDLTYPE_TXPOWER)]; - /** Receive model parameter. - * NDL_defDccSensitivity, ndlType_rxPower, 1+7 bits. - * NDL_maxCsRange, ndlType_distance, 1+12 bits. - * NDL_refPathLoss, ndlType_pathloss, 1+5 bits. - */ - A_UINT32 receive_model_parameter; + /** Packet timing thresholds. */ + /** + * NDL_maxPacketDuration(AC_BK), ndlType_packetDuration, 1+11 bits. + * NDL_maxPacketDuration(AC_BE), ndlType_packetDuration, 1+11 bits. + * NDL_maxPacketDuration(AC_VI), ndlType_packetDuration, 1+11 bits. + * NDL_maxPacketDuration(AC_VO), ndlType_packetDuration, 1+11 bits. + */ + A_UINT32 max_packet_duration_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC,SIZE_NDLTYPE_PACKETDURATION)]; + /** + * NDL_minPacketInterval, ndlType_packetInterval, 1+10 bits. + * NDL_maxPacketInterval, ndlType_packetInterval, 1+10 bits. + */ + A_UINT32 min_max_packet_interval; + /** + * NDL_defPacketInterval(AC_BK), ndlType_packetInterval, 1+10 bits. + * NDL_defPacketInterval(AC_BE), ndlType_packetInterval, 1+10 bits. + * NDL_defPacketInterval(AC_VI), ndlType_packetInterval, 1+10 bits. + * NDL_defPacketInterval(AC_VO), ndlType_packetInterval, 1+10 bits. + */ + A_UINT32 def_packet_interval_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC,SIZE_NDLTYPE_PACKETINTERVAL)]; - /** - * NDL_minSNR, ndlType_snr, 1+7 bits. - */ - A_UINT32 receive_model_parameter_2; + /** Packet datarate thresholds. */ + /** + * NDL_minDatarate, ndlType_datarate, 1+3 bits. + * NDL_maxDatarate, ndlType_datarate, 1+3 bits. + */ + A_UINT32 min_max_datarate; + /** + * NDL_defDatarate(AC_BK), ndlType_datarate, 1+3 bits. + * NDL_defDatarate(AC_BE), ndlType_datarate, 1+3 bits. + * NDL_defDatarate(AC_VI), ndlType_datarate, 1+3 bits. + * NDL_defDatarate(AC_VO), ndlType_datarate, 1+3 bits. + */ + A_UINT32 def_datarate_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC,SIZE_NDLTYPE_DATARATE)]; - /** Demodulation model parameters. - * NDL_snrBackoff(MCS0), ndlType_snr, 1+7 bits. - * NDL_snrBackoff(MCS1), ndlType_snr, 1+7 bits. - * NDL_snrBackoff(MCS2), ndlType_snr, 1+7 bits. - * NDL_snrBackoff(MCS3), ndlType_snr, 1+7 bits. - * NDL_snrBackoff(MCS4), ndlType_snr, 1+7 bits. - * NDL_snrBackoff(MCS5), ndlType_snr, 1+7 bits. - * NDL_snrBackoff(MCS6), ndlType_snr, 1+7 bits. - * NDL_snrBackoff(MCS7), ndlType_snr, 1+7 bits. - */ - A_UINT32 snr_backoff_mcs[WMI_PACKED_ARR_SIZE(MCS_COUNT, SIZE_NDLTYPE_SNR)]; - /** Transmit model parameters. - * NDL_tmPacketArrivalRate(AC_BK), ndlType_arrivalRate, 1+13 bits. - * NDL_tmPacketArrivalRate(AC_BE), ndlType_arrivalRate, 1+13 bits. - * NDL_tmPacketArrivalRate(AC_VI), ndlType_arrivalRate, 1+13 bits. - * NDL_tmPacketArrivalRate(AC_VO), ndlType_arrivalRate, 1+13 bits. - */ - A_UINT32 tm_packet_arrival_rate_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_ARRIVALRATE)]; - /** - * NDL_tmPacketAvgDuration(AC_BK), ndlType_packetDuration, 1+11 bits. - * NDL_tmPacketAvgDuration(AC_BE), ndlType_packetDuration, 1+11 bits. - * NDL_tmPacketAvgDuration(AC_VI), ndlType_packetDuration, 1+11 bits. - * NDL_tmPacketAvgDuration(AC_VO), ndlType_packetDuration, 1+11 bits. - */ - A_UINT32 tm_packet_avg_duration_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_PACKETDURATION)]; - /** - * NDL_tmSignalAvgPower(AC_BK), ndlType_txPower, 1+7 bits. - * NDL_tmSignalAvgPower(AC_BE), ndlType_txPower, 1+7 bits. - * NDL_tmSignalAvgPower(AC_VI), ndlType_txPower, 1+7 bits. - * NDL_tmSignalAvgPower(AC_VO), ndlType_txPower, 1+7 bits. - */ - A_UINT32 tm_signal_avg_power_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_TXPOWER)]; - /* NDL_tmMaxChannelUse, ndlType_channelUse, 1+13 bits. */ - A_UINT32 tm_max_channel_use; + /** Receive signal thresholds. */ + /** + * NDL_minCarrierSense, ndlType_rxPower, 1+7 bits. + * NDL_maxCarrierSense, ndlType_rxPower, 1+7 bits. + * NDL_defCarrierSense, ndlType_rxPower, 1+7 bits. + */ + A_UINT32 min_max_def_carrier_sense; + + /** Receive model parameter. */ + /** + * NDL_defDccSensitivity, ndlType_rxPower, 1+7 bits. + * NDL_maxCsRange, ndlType_distance, 1+12 bits. + * NDL_refPathLoss, ndlType_pathloss, 1+5 bits. + */ + A_UINT32 receive_model_parameter; + + /** + * NDL_minSNR, ndlType_snr, 1+7 bits. + */ + A_UINT32 receive_model_parameter_2; + + /** Demodulation model parameters. */ + /** + * NDL_snrBackoff(MCS0), ndlType_snr, 1+7 bits. + * NDL_snrBackoff(MCS1), ndlType_snr, 1+7 bits. + * NDL_snrBackoff(MCS2), ndlType_snr, 1+7 bits. + * NDL_snrBackoff(MCS3), ndlType_snr, 1+7 bits. + * NDL_snrBackoff(MCS4), ndlType_snr, 1+7 bits. + * NDL_snrBackoff(MCS5), ndlType_snr, 1+7 bits. + * NDL_snrBackoff(MCS6), ndlType_snr, 1+7 bits. + * NDL_snrBackoff(MCS7), ndlType_snr, 1+7 bits. + */ + A_UINT32 snr_backoff_mcs[WMI_PACKED_ARR_SIZE(MCS_COUNT,SIZE_NDLTYPE_SNR)]; + + /** Transmit model parameters. */ + /** + * NDL_tmPacketArrivalRate(AC_BK), ndlType_arrivalRate, 1+13 bits. + * NDL_tmPacketArrivalRate(AC_BE), ndlType_arrivalRate, 1+13 bits. + * NDL_tmPacketArrivalRate(AC_VI), ndlType_arrivalRate, 1+13 bits. + * NDL_tmPacketArrivalRate(AC_VO), ndlType_arrivalRate, 1+13 bits. + */ + A_UINT32 tm_packet_arrival_rate_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_ARRIVALRATE)]; + /** + * NDL_tmPacketAvgDuration(AC_BK), ndlType_packetDuration, 1+11 bits. + * NDL_tmPacketAvgDuration(AC_BE), ndlType_packetDuration, 1+11 bits. + * NDL_tmPacketAvgDuration(AC_VI), ndlType_packetDuration, 1+11 bits. + * NDL_tmPacketAvgDuration(AC_VO), ndlType_packetDuration, 1+11 bits. + */ + A_UINT32 tm_packet_avg_duration_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_PACKETDURATION)]; + /** + * NDL_tmSignalAvgPower(AC_BK), ndlType_txPower, 1+7 bits. + * NDL_tmSignalAvgPower(AC_BE), ndlType_txPower, 1+7 bits. + * NDL_tmSignalAvgPower(AC_VI), ndlType_txPower, 1+7 bits. + * NDL_tmSignalAvgPower(AC_VO), ndlType_txPower, 1+7 bits. + */ + A_UINT32 tm_signal_avg_power_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_TXPOWER)]; + /** + * NDL_tmMaxChannelUse, ndlType_channelUse, 1+13 bits. + */ + A_UINT32 tm_max_channel_use; /** * NDL_tmChannelUse(AC_BK), ndlType_channelUse, 1+13 bits. * NDL_tmChannelUse(AC_BE), ndlType_channelUse, 1+13 bits. * NDL_tmChannelUse(AC_VI), ndlType_channelUse, 1+13 bits. * NDL_tmChannelUse(AC_VO), ndlType_channelUse, 1+13 bits. */ - A_UINT32 tm_channel_use_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_CHANNELUSE)]; - /** Channel load thresholds. - * NDL_minChannelLoad, ndlType_channelLoad, 1+10 bits. - * NDL_maxChannelLoad, ndlType_channelLoad, 1+10 bits. - */ - A_UINT32 min_max_channel_load; - /** Transmit queue parameters. - * NDL_numQueue, ndlType_acPrio, 1+3 bits. - * NDL_refQueueStatus(AC_BK), ndlType_queueStatus, 1+1 bit. - * NDL_refQueueStatus(AC_BE), ndlType_queueStatus, 1+1 bit. - * NDL_refQueueStatus(AC_VI), ndlType_queueStatus, 1+1 bit. - * NDL_refQueueStatus(AC_VO), ndlType_queueStatus, 1+1 bit. - */ - A_UINT32 transmit_queue_parameters; - /** - * NDL_refQueueLen(AC_BK), ndlType_numberElements, 1+6 bits. - * NDL_refQueueLen(AC_BE), ndlType_numberElements, 1+6 bits. - * NDL_refQueueLen(AC_VI), ndlType_numberElements, 1+6 bits. - * NDL_refQueueLen(AC_VO), ndlType_numberElements, 1+6 bits. - */ - A_UINT32 numberElements[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_NUMBERELEMENTS)]; + A_UINT32 tm_channel_use_ac[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_CHANNELUSE)]; + + /** Channel load thresholds. */ + /** + * NDL_minChannelLoad, ndlType_channelLoad, 1+10 bits. + * NDL_maxChannelLoad, ndlType_channelLoad, 1+10 bits. + */ + A_UINT32 min_max_channel_load; + + /** Transmit queue parameters. */ + /** + * NDL_numQueue, ndlType_acPrio, 1+3 bits. + * NDL_refQueueStatus(AC_BK), ndlType_queueStatus, 1+1 bit. + * NDL_refQueueStatus(AC_BE), ndlType_queueStatus, 1+1 bit. + * NDL_refQueueStatus(AC_VI), ndlType_queueStatus, 1+1 bit. + * NDL_refQueueStatus(AC_VO), ndlType_queueStatus, 1+1 bit. + */ + A_UINT32 transmit_queue_parameters; + + /** + * NDL_refQueueLen(AC_BK), ndlType_numberElements, 1+6 bits. + * NDL_refQueueLen(AC_BE), ndlType_numberElements, 1+6 bits. + * NDL_refQueueLen(AC_VI), ndlType_numberElements, 1+6 bits. + * NDL_refQueueLen(AC_VO), ndlType_numberElements, 1+6 bits. + */ + A_UINT32 numberElements[WMI_PACKED_ARR_SIZE(WLAN_MAX_AC, SIZE_NDLTYPE_NUMBERELEMENTS)]; + } wmi_dcc_ndl_chan; -#define WMI_CHAN_FREQ_GET(ptr) WMI_GET_BITS((ptr)->chan_info, 0, 16) -#define WMI_CHAN_FREQ_SET(ptr, val) WMI_SET_BITS((ptr)->chan_info, 0, 16, val) -#define WMI_NDL_NUM_ACTIVE_STATE_GET(ptr) WMI_GET_BITS((ptr)->chan_info, 16, 7) -#define WMI_NDL_NUM_ACTIVE_STATE_SET(ptr, val) WMI_SET_BITS((ptr)->chan_info, 16, 7, val) +#define WMI_CHAN_FREQ_GET(ptr) WMI_GET_BITS((ptr)->chan_info, 0, 16) +#define WMI_CHAN_FREQ_SET(ptr,val) WMI_SET_BITS((ptr)->chan_info, 0, 16, val) +#define WMI_NDL_NUM_ACTIVE_STATE_GET(ptr) WMI_GET_BITS((ptr)->chan_info, 16, 7) +#define WMI_NDL_NUM_ACTIVE_STATE_SET(ptr,val) WMI_SET_BITS((ptr)->chan_info, 16, 7, val) -#define WMI_NDL_MIN_DCC_SAMPLING_GET(ptr) WMI_GET_BITS((ptr)->ndl_min_dcc_sampling, 0, 10) -#define WMI_NDL_MIN_DCC_SAMPLING_SET(ptr, val) WMI_SET_BITS((ptr)->ndl_min_dcc_sampling, 0, 10, val) +#define WMI_NDL_MIN_DCC_SAMPLING_GET(ptr) WMI_GET_BITS((ptr)->ndl_min_dcc_sampling, 0, 10) +#define WMI_NDL_MIN_DCC_SAMPLING_SET(ptr,val) WMI_SET_BITS((ptr)->ndl_min_dcc_sampling, 0, 10, val) +#define WMI_NDL_MEASURE_INTERVAL_GET(ptr) WMI_GET_BITS((ptr)->ndl_min_dcc_sampling, 10, 16) +#define WMI_NDL_MEASURE_INTERVAL_SET(ptr,val) WMI_SET_BITS((ptr)->ndl_min_dcc_sampling, 10, 16, val) -#define WMI_NDL_MEASURE_INTERVAL_GET(ptr) WMI_GET_BITS((ptr)->ndl_min_dcc_sampling, 10, 16) -#define WMI_NDL_MEASURE_INTERVAL_SET(ptr, val) WMI_SET_BITS((ptr)->ndl_min_dcc_sampling, 10, 16, val) +#define WMI_NDL_DCC_ENABLE_GET(ptr) WMI_GET_BITS((ptr)->dcc_flags, 0, 1) +#define WMI_NDL_DCC_ENABLE_SET(ptr,val) WMI_SET_BITS((ptr)->dcc_flags, 0, 1, val) +#define WMI_NDL_DCC_STATS_ENABLE_GET(ptr) WMI_GET_BITS((ptr)->dcc_flags, 1, 1) +#define WMI_NDL_DCC_STATS_ENABLE_SET(ptr,val) WMI_SET_BITS((ptr)->dcc_flags, 1, 1, val) +#define WMI_NDL_DCC_STATS_INTERVAL_GET(ptr) WMI_GET_BITS((ptr)->dcc_flags, 2, 16) +#define WMI_NDL_DCC_STATS_INTERVAL_SET(ptr,val) WMI_SET_BITS((ptr)->dcc_flags, 2, 16, val) +#define WMI_NDL_TIME_UP_GET(ptr) WMI_GET_BITS((ptr)->general_config, 0, 13) +#define WMI_NDL_TIME_UP_SET(ptr,val) WMI_SET_BITS((ptr)->general_config, 0, 13, val) +#define WMI_NDL_TIME_DOWN_GET(ptr) WMI_GET_BITS((ptr)->general_config, 13, 13) +#define WMI_NDL_TIME_DOWN_SET(ptr,val) WMI_SET_BITS((ptr)->general_config, 13, 13, val) -#define WMI_NDL_DCC_ENABLE_GET(ptr) WMI_GET_BITS((ptr)->dcc_flags, 0, 1) -#define WMI_NDL_DCC_ENABLE_SET(ptr, val) WMI_SET_BITS((ptr)->dcc_flags, 0, 1, val) -#define WMI_NDL_DCC_STATS_ENABLE_GET(ptr) WMI_GET_BITS((ptr)->dcc_flags, 1, 1) -#define WMI_NDL_DCC_STATS_ENABLE_SET(ptr, val) WMI_SET_BITS((ptr)->dcc_flags, 1, 1, val) -#define WMI_NDL_DCC_STATS_INTERVAL_GET(ptr) WMI_GET_BITS((ptr)->dcc_flags, 2, 16) -#define WMI_NDL_DCC_STATS_INTERVAL_SET(ptr, val) WMI_SET_BITS((ptr)->dcc_flags, 2, 16, val) +#define WMI_NDL_MIN_TX_POWER_GET(ptr) WMI_GET_BITS((ptr)->min_max_tx_power, 0, 8) +#define WMI_NDL_MIN_TX_POWER_SET(ptr,val) WMI_SET_BITS((ptr)->min_max_tx_power, 0, 8, val) +#define WMI_NDL_MAX_TX_POWER_GET(ptr) WMI_GET_BITS((ptr)->min_max_tx_power, 8, 8) +#define WMI_NDL_MAX_TX_POWER_SET(ptr,val) WMI_SET_BITS((ptr)->min_max_tx_power, 8, 8, val) -#define WMI_NDL_TIME_UP_GET(ptr) WMI_GET_BITS((ptr)->general_config, 0, 13) -#define WMI_NDL_TIME_UP_SET(ptr, val) WMI_SET_BITS((ptr)->general_config, 0, 13, val) -#define WMI_NDL_TIME_DOWN_GET(ptr) WMI_GET_BITS((ptr)->general_config, 13, 13) -#define WMI_NDL_TIME_DOWN_SET(ptr, val) WMI_SET_BITS((ptr)->general_config, 13, 13, val) +#define WMI_NDL_DEF_TX_POWER_GET(ptr,acprio) wmi_packed_arr_get_bits((ptr)->def_tx_power_ac, acprio, SIZE_NDLTYPE_TXPOWER) +#define WMI_NDL_DEF_TX_POWER_SET(ptr,acprio,val) wmi_packed_arr_set_bits((ptr)->def_tx_power_ac, acprio, SIZE_NDLTYPE_TXPOWER, val) -#define WMI_NDL_MIN_TX_POWER_GET(ptr) WMI_GET_BITS((ptr)->min_max_tx_power, 0, 8) -#define WMI_NDL_MIN_TX_POWER_SET(ptr, val) WMI_SET_BITS((ptr)->min_max_tx_power, 0, 8, val) -#define WMI_NDL_MAX_TX_POWER_GET(ptr) WMI_GET_BITS((ptr)->min_max_tx_power, 8, 8) -#define WMI_NDL_MAX_TX_POWER_SET(ptr, val) WMI_SET_BITS((ptr)->min_max_tx_power, 8, 8, val) +#define WMI_NDL_MAX_PACKET_DURATION_GET(ptr,acprio) wmi_packed_arr_get_bits((ptr)->max_packet_duration_ac, acprio, SIZE_NDLTYPE_PACKETDURATION) +#define WMI_NDL_MAX_PACKET_DURATION_SET(ptr,acprio,val) wmi_packed_arr_set_bits((ptr)->max_packet_duration_ac, acprio, SIZE_NDLTYPE_PACKETDURATION, val) +#define WMI_NDL_MIN_PACKET_INTERVAL_GET(ptr) WMI_GET_BITS((ptr)->min_max_packet_interval, 0, 11) +#define WMI_NDL_MIN_PACKET_INTERVAL_SET(ptr,val) WMI_SET_BITS((ptr)->min_max_packet_interval, 0, 11, val) +#define WMI_NDL_MAX_PACKET_INTERVAL_GET(ptr) WMI_GET_BITS((ptr)->min_max_packet_interval, 11, 11) +#define WMI_NDL_MAX_PACKET_INTERVAL_SET(ptr,val) WMI_SET_BITS((ptr)->min_max_packet_interval, 11, 11, val) +#define WMI_NDL_DEF_PACKET_INTERVAL_GET(ptr,acprio) wmi_packed_arr_get_bits((ptr)->def_packet_interval_ac, acprio, SIZE_NDLTYPE_PACKETINTERVAL) +#define WMI_NDL_DEF_PACKET_INTERVAL_SET(ptr,acprio,val) wmi_packed_arr_set_bits((ptr)->def_packet_interval_ac, acprio, SIZE_NDLTYPE_PACKETINTERVAL, val) -#define WMI_NDL_DEF_TX_POWER_GET(ptr, acprio) wmi_packed_arr_get_bits((ptr)->def_tx_power_ac, acprio, SIZE_NDLTYPE_TXPOWER) -#define WMI_NDL_DEF_TX_POWER_SET(ptr, acprio, val) wmi_packed_arr_set_bits((ptr)->def_tx_power_ac, acprio, SIZE_NDLTYPE_TXPOWER, val) +#define WMI_NDL_MIN_DATARATE_GET(ptr) WMI_GET_BITS((ptr)->min_max_datarate, 0, 4) +#define WMI_NDL_MIN_DATARATE_SET(ptr,val) WMI_SET_BITS((ptr)->min_max_datarate, 0, 4, val) +#define WMI_NDL_MAX_DATARATE_GET(ptr) WMI_GET_BITS((ptr)->min_max_datarate, 4, 4) +#define WMI_NDL_MAX_DATARATE_SET(ptr,val) WMI_SET_BITS((ptr)->min_max_datarate, 4, 4, val) +#define WMI_NDL_DEF_DATARATE_GET(ptr,acprio) wmi_packed_arr_get_bits((ptr)->def_datarate_ac, acprio, SIZE_NDLTYPE_DATARATE) +#define WMI_NDL_DEF_DATARATE_SET(ptr,acprio,val) wmi_packed_arr_set_bits((ptr)->def_datarate_ac, acprio, SIZE_NDLTYPE_DATARATE, val) -#define WMI_NDL_MAX_PACKET_DURATION_GET(ptr, acprio) wmi_packed_arr_get_bits((ptr)->max_packet_duration_ac, acprio, SIZE_NDLTYPE_PACKETDURATION) -#define WMI_NDL_MAX_PACKET_DURATION_SET(ptr, acprio, val) wmi_packed_arr_set_bits((ptr)->max_packet_duration_ac, acprio, SIZE_NDLTYPE_PACKETDURATION, val) -#define WMI_NDL_MIN_PACKET_INTERVAL_GET(ptr) WMI_GET_BITS((ptr)->min_max_packet_interval, 0, 11) -#define WMI_NDL_MIN_PACKET_INTERVAL_SET(ptr, val) WMI_SET_BITS((ptr)->min_max_packet_interval, 0, 11, val) -#define WMI_NDL_MAX_PACKET_INTERVAL_GET(ptr) WMI_GET_BITS((ptr)->min_max_packet_interval, 11, 11) -#define WMI_NDL_MAX_PACKET_INTERVAL_SET(ptr, val) WMI_SET_BITS((ptr)->min_max_packet_interval, 11, 11, val) -#define WMI_NDL_DEF_PACKET_INTERVAL_GET(ptr, acprio) wmi_packed_arr_get_bits((ptr)->def_packet_interval_ac, acprio, SIZE_NDLTYPE_PACKETINTERVAL) -#define WMI_NDL_DEF_PACKET_INTERVAL_SET(ptr, acprio, val) wmi_packed_arr_set_bits((ptr)->def_packet_interval_ac, acprio, SIZE_NDLTYPE_PACKETINTERVAL, val) - -#define WMI_NDL_MIN_DATARATE_GET(ptr) WMI_GET_BITS((ptr)->min_max_datarate, 0, 4) -#define WMI_NDL_MIN_DATARATE_SET(ptr, val) WMI_SET_BITS((ptr)->min_max_datarate, 0, 4, val) -#define WMI_NDL_MAX_DATARATE_GET(ptr) WMI_GET_BITS((ptr)->min_max_datarate, 4, 4) -#define WMI_NDL_MAX_DATARATE_SET(ptr, val) WMI_SET_BITS((ptr)->min_max_datarate, 4, 4, val) -#define WMI_NDL_DEF_DATARATE_GET(ptr, acprio) wmi_packed_arr_get_bits((ptr)->def_datarate_ac, acprio, SIZE_NDLTYPE_DATARATE) -#define WMI_NDL_DEF_DATARATE_SET(ptr, acprio, val) wmi_packed_arr_set_bits((ptr)->def_datarate_ac, acprio, SIZE_NDLTYPE_DATARATE, val) - -#define WMI_NDL_MIN_CARRIER_SENSE_GET(ptr) WMI_GET_BITS((ptr)->min_max_def_carrier_sense, 0, 8) -#define WMI_NDL_MIN_CARRIER_SENSE_SET(ptr, val) WMI_SET_BITS((ptr)->min_max_def_carrier_sense, 0, 8, val) -#define WMI_NDL_MAX_CARRIER_SENSE_GET(ptr) WMI_GET_BITS((ptr)->min_max_def_carrier_sense, 8, 8) -#define WMI_NDL_MAX_CARRIER_SENSE_SET(ptr, val) WMI_SET_BITS((ptr)->min_max_def_carrier_sense, 8, 8, val) -#define WMI_NDL_DEF_CARRIER_SENSE_GET(ptr) WMI_GET_BITS((ptr)->min_max_def_carrier_sense, 16, 8) -#define WMI_NDL_DEF_CARRIER_SENSE_SET(ptr, val) WMI_SET_BITS((ptr)->min_max_def_carrier_sense, 16, 8, val) +#define WMI_NDL_MIN_CARRIER_SENSE_GET(ptr) WMI_GET_BITS((ptr)->min_max_def_carrier_sense, 0, 8) +#define WMI_NDL_MIN_CARRIER_SENSE_SET(ptr,val) WMI_SET_BITS((ptr)->min_max_def_carrier_sense, 0, 8, val) +#define WMI_NDL_MAX_CARRIER_SENSE_GET(ptr) WMI_GET_BITS((ptr)->min_max_def_carrier_sense, 8, 8) +#define WMI_NDL_MAX_CARRIER_SENSE_SET(ptr,val) WMI_SET_BITS((ptr)->min_max_def_carrier_sense, 8, 8, val) +#define WMI_NDL_DEF_CARRIER_SENSE_GET(ptr) WMI_GET_BITS((ptr)->min_max_def_carrier_sense, 16, 8) +#define WMI_NDL_DEF_CARRIER_SENSE_SET(ptr,val) WMI_SET_BITS((ptr)->min_max_def_carrier_sense, 16, 8, val) #define WMI_NDL_DEF_DCC_SENSITIVITY_GET(ptr) WMI_GET_BITS((ptr)->receive_model_parameter, 0, 8) -#define WMI_NDL_DEF_DCC_SENSITIVITY_SET(ptr, val) WMI_SET_BITS((ptr)->receive_model_parameter, 0, 8, val) +#define WMI_NDL_DEF_DCC_SENSITIVITY_SET(ptr,val) WMI_SET_BITS((ptr)->receive_model_parameter, 0, 8, val) #define WMI_NDL_MAX_CS_RANGE_GET(ptr) WMI_GET_BITS((ptr)->receive_model_parameter, 8, 13) -#define WMI_NDL_MAX_CS_RANGE_SET(ptr, val) WMI_SET_BITS((ptr)->receive_model_parameter, 8, 13, val) +#define WMI_NDL_MAX_CS_RANGE_SET(ptr,val) WMI_SET_BITS((ptr)->receive_model_parameter, 8, 13, val) #define WMI_NDL_REF_PATH_LOSS_GET(ptr) WMI_GET_BITS((ptr)->receive_model_parameter, 21, 6) -#define WMI_NDL_REF_PATH_LOSS_SET(ptr, val) WMI_SET_BITS((ptr)->receive_model_parameter, 21, 6, val) +#define WMI_NDL_REF_PATH_LOSS_SET(ptr,val) WMI_SET_BITS((ptr)->receive_model_parameter, 21, 6, val) #define WMI_NDL_MIN_SNR_GET(ptr) WMI_GET_BITS((ptr)->receive_model_parameter_2, 0, 8) -#define WMI_NDL_MIN_SNR_SET(ptr, val) WMI_SET_BITS((ptr)->receive_model_parameter_2, 0, 8, val) +#define WMI_NDL_MIN_SNR_SET(ptr,val) WMI_SET_BITS((ptr)->receive_model_parameter_2, 0, 8, val) -#define WMI_NDL_SNR_BACKOFF_GET(ptr, mcs) wmi_packed_arr_get_bits((ptr)->snr_backoff_mcs, mcs, SIZE_NDLTYPE_SNR) -#define WMI_NDL_SNR_BACKOFF_SET(ptr, mcs, val) wmi_packed_arr_set_bits((ptr)->snr_backoff_mcs, mcs, SIZE_NDLTYPE_SNR, val) +#define WMI_NDL_SNR_BACKOFF_GET(ptr,mcs) wmi_packed_arr_get_bits((ptr)->snr_backoff_mcs, mcs, SIZE_NDLTYPE_SNR) +#define WMI_NDL_SNR_BACKOFF_SET(ptr,mcs,val) wmi_packed_arr_set_bits((ptr)->snr_backoff_mcs, mcs, SIZE_NDLTYPE_SNR, val) -#define WMI_NDL_TM_PACKET_ARRIVAL_RATE_GET(ptr, acprio) wmi_packed_arr_get_bits((ptr)->tm_packet_arrival_rate_ac, acprio, SIZE_NDLTYPE_ARRIVALRATE) -#define WMI_NDL_TM_PACKET_ARRIVAL_RATE_SET(ptr, acprio, val) wmi_packed_arr_set_bits((ptr)->tm_packet_arrival_rate_ac, acprio, SIZE_NDLTYPE_ARRIVALRATE, val) -#define WMI_NDL_TM_PACKET_AVG_DURATION_GET(ptr, acprio) wmi_packed_arr_get_bits((ptr)->tm_packet_avg_duration_ac, acprio, SIZE_NDLTYPE_PACKETDURATION) -#define WMI_NDL_TM_PACKET_AVG_DURATION_SET(ptr, acprio, val) wmi_packed_arr_set_bits((ptr)->tm_packet_avg_duration_ac, acprio, SIZE_NDLTYPE_PACKETDURATION, val) -#define WMI_NDL_TM_SIGNAL_AVG_POWER_GET(ptr, acprio) wmi_packed_arr_get_bits((ptr)->tm_signal_avg_power_ac, acprio, SIZE_NDLTYPE_TXPOWER) -#define WMI_NDL_TM_SIGNAL_AVG_POWER_SET(ptr, acprio, val) wmi_packed_arr_set_bits((ptr)->tm_signal_avg_power_ac, acprio, SIZE_NDLTYPE_TXPOWER, val) -#define WMI_NDL_TM_MAX_CHANNEL_USE_GET(ptr) WMI_GET_BITS((ptr)->tm_max_channel_use, 0, 14) -#define WMI_NDL_TM_MAX_CHANNEL_USE_SET(ptr, val) WMI_SET_BITS((ptr)->tm_max_channel_use, 0, 14, val) -#define WMI_NDL_TM_CHANNEL_USE_GET(ptr, acprio) wmi_packed_arr_get_bits((ptr)->tm_channel_use_ac, acprio, SIZE_NDLTYPE_CHANNELUSE) -#define WMI_NDL_TM_CHANNEL_USE_SET(ptr, acprio, val) wmi_packed_arr_set_bits((ptr)->tm_channel_use_ac, acprio, SIZE_NDLTYPE_CHANNELUSE, val) +#define WMI_NDL_TM_PACKET_ARRIVAL_RATE_GET(ptr,acprio) wmi_packed_arr_get_bits((ptr)->tm_packet_arrival_rate_ac, acprio, SIZE_NDLTYPE_ARRIVALRATE) +#define WMI_NDL_TM_PACKET_ARRIVAL_RATE_SET(ptr,acprio,val) wmi_packed_arr_set_bits((ptr)->tm_packet_arrival_rate_ac, acprio, SIZE_NDLTYPE_ARRIVALRATE, val) +#define WMI_NDL_TM_PACKET_AVG_DURATION_GET(ptr,acprio) wmi_packed_arr_get_bits((ptr)->tm_packet_avg_duration_ac, acprio, SIZE_NDLTYPE_PACKETDURATION) +#define WMI_NDL_TM_PACKET_AVG_DURATION_SET(ptr,acprio,val) wmi_packed_arr_set_bits((ptr)->tm_packet_avg_duration_ac, acprio, SIZE_NDLTYPE_PACKETDURATION, val) +#define WMI_NDL_TM_SIGNAL_AVG_POWER_GET(ptr,acprio) wmi_packed_arr_get_bits((ptr)->tm_signal_avg_power_ac, acprio, SIZE_NDLTYPE_TXPOWER) +#define WMI_NDL_TM_SIGNAL_AVG_POWER_SET(ptr,acprio,val) wmi_packed_arr_set_bits((ptr)->tm_signal_avg_power_ac, acprio, SIZE_NDLTYPE_TXPOWER, val) +#define WMI_NDL_TM_MAX_CHANNEL_USE_GET(ptr) WMI_GET_BITS((ptr)->tm_max_channel_use, 0, 14) +#define WMI_NDL_TM_MAX_CHANNEL_USE_SET(ptr,val) WMI_SET_BITS((ptr)->tm_max_channel_use, 0, 14, val) +#define WMI_NDL_TM_CHANNEL_USE_GET(ptr,acprio) wmi_packed_arr_get_bits((ptr)->tm_channel_use_ac, acprio, SIZE_NDLTYPE_CHANNELUSE) +#define WMI_NDL_TM_CHANNEL_USE_SET(ptr,acprio,val) wmi_packed_arr_set_bits((ptr)->tm_channel_use_ac, acprio, SIZE_NDLTYPE_CHANNELUSE, val) -#define WMI_NDL_MIN_CHANNEL_LOAD_GET(ptr) WMI_GET_BITS((ptr)->min_max_channel_load, 0, 11) -#define WMI_NDL_MIN_CHANNEL_LOAD_SET(ptr, val) WMI_SET_BITS((ptr)->min_max_channel_load, 0, 11, val) -#define WMI_NDL_MAX_CHANNEL_LOAD_GET(ptr) WMI_GET_BITS((ptr)->min_max_channel_load, 11, 11) -#define WMI_NDL_MAX_CHANNEL_LOAD_SET(ptr, val) WMI_SET_BITS((ptr)->min_max_channel_load, 11, 11, val) +#define WMI_NDL_MIN_CHANNEL_LOAD_GET(ptr) WMI_GET_BITS((ptr)->min_max_channel_load, 0, 11) +#define WMI_NDL_MIN_CHANNEL_LOAD_SET(ptr,val) WMI_SET_BITS((ptr)->min_max_channel_load, 0, 11, val) +#define WMI_NDL_MAX_CHANNEL_LOAD_GET(ptr) WMI_GET_BITS((ptr)->min_max_channel_load, 11, 11) +#define WMI_NDL_MAX_CHANNEL_LOAD_SET(ptr,val) WMI_SET_BITS((ptr)->min_max_channel_load, 11, 11, val) -#define WMI_NDL_NUM_QUEUE_GET(ptr) WMI_GET_BITS((ptr)->transmit_queue_parameters, 0, 4) -#define WMI_NDL_NUM_QUEUE_SET(ptr, val) WMI_SET_BITS((ptr)->transmit_queue_parameters, 0, 4, val) -#define WMI_NDL_REF_QUEUE_STATUS_GET(ptr, acprio) WMI_GET_BITS((ptr)->transmit_queue_parameters, (4 + (acprio * 2)), 2) -#define WMI_NDL_REF_QUEUE_STATUS_SET(ptr, acprio, val) WMI_SET_BITS((ptr)->transmit_queue_parameters, (4 + (acprio * 2)), 2, val) -#define WMI_NDL_REF_QUEUE_LEN_GET(ptr, acprio) wmi_packed_arr_get_bits((ptr)->numberElements, acprio, SIZE_NDLTYPE_NUMBERELEMENTS) -#define WMI_NDL_REF_QUEUE_LEN_SET(ptr, acprio, val) wmi_packed_arr_set_bits((ptr)->numberElements, acprio, SIZE_NDLTYPE_NUMBERELEMENTS, val) +#define WMI_NDL_NUM_QUEUE_GET(ptr) WMI_GET_BITS((ptr)->transmit_queue_parameters, 0, 4) +#define WMI_NDL_NUM_QUEUE_SET(ptr,val) WMI_SET_BITS((ptr)->transmit_queue_parameters, 0, 4, val) +#define WMI_NDL_REF_QUEUE_STATUS_GET(ptr,acprio) WMI_GET_BITS((ptr)->transmit_queue_parameters, (4 + (acprio * 2)), 2) +#define WMI_NDL_REF_QUEUE_STATUS_SET(ptr,acprio,val) WMI_SET_BITS((ptr)->transmit_queue_parameters, (4 + (acprio * 2)), 2, val) +#define WMI_NDL_REF_QUEUE_LEN_GET(ptr,acprio) wmi_packed_arr_get_bits((ptr)->numberElements, acprio, SIZE_NDLTYPE_NUMBERELEMENTS) +#define WMI_NDL_REF_QUEUE_LEN_SET(ptr,acprio,val) wmi_packed_arr_set_bits((ptr)->numberElements, acprio, SIZE_NDLTYPE_NUMBERELEMENTS, val) /** Data structure for updating the NDL. */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_dcc_update_ndl_cmd_fixed_param */ - A_UINT32 tlv_header; - /* VDEV identifier */ - A_UINT32 vdev_id; - /** The number of channels in the request. */ - A_UINT32 num_channel; - /** This is followed by a TLV array of wmi_dcc_ndl_chan. */ - /** This is followed by a TLV array of wmi_dcc_ndl_active_state_config. */ + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_dcc_update_ndl_cmd_fixed_param */ + A_UINT32 tlv_header; + + /* VDEV identifier */ + A_UINT32 vdev_id; + + /** The number of channels in the request. */ + A_UINT32 num_channel; + + /** This is followed by a TLV array of wmi_dcc_ndl_chan. */ + /** This is followed by a TLV array of wmi_dcc_ndl_active_state_config. */ } wmi_dcc_update_ndl_cmd_fixed_param; typedef struct { - /** - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_dcc_update_ndl_resp_event_fixed_param - */ - A_UINT32 tlv_header; - /* VDEV identifier */ - A_UINT32 vdev_id; - A_UINT32 status; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_dcc_update_ndl_resp_event_fixed_param */ + A_UINT32 tlv_header; + /* VDEV identifier */ + A_UINT32 vdev_id; + A_UINT32 status; } wmi_dcc_update_ndl_resp_event_fixed_param; /* Actions for TSF timestamp */ typedef enum { - TSF_TSTAMP_CAPTURE_REQ = 1, - TSF_TSTAMP_CAPTURE_RESET = 2, - TSF_TSTAMP_READ_VALUE = 3, - TSF_TSTAMP_QTIMER_CAPTURE_REQ = 4, + TSF_TSTAMP_CAPTURE_REQ = 1, + TSF_TSTAMP_CAPTURE_RESET = 2, + TSF_TSTAMP_READ_VALUE = 3, + TSF_TSTAMP_QTIMER_CAPTURE_REQ = 4, } wmi_tsf_tstamp_action; typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_vdev_tsf_tstamp_action_cmd_fixed_param */ - A_UINT32 tlv_header; - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /* action type, refer to wmi_tsf_tstamp_action */ - A_UINT32 tsf_action; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_vdev_tsf_tstamp_action_cmd_fixed_param */ + A_UINT32 tlv_header; + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /* action type, refer to wmi_tsf_tstamp_action */ + A_UINT32 tsf_action; } wmi_vdev_tsf_tstamp_action_cmd_fixed_param; typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_vdev_tsf_report_event_fixed_param */ - A_UINT32 tlv_header; - /* VDEV identifier */ - A_UINT32 vdev_id; - /* low 32bit of tsf */ - A_UINT32 tsf_low; - /* high 32 bit of tsf */ - A_UINT32 tsf_high; - /* low 32 bits of qtimer */ - A_UINT32 qtimer_low; - /* high 32 bits of qtimer */ - A_UINT32 qtimer_high; + /* TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_vdev_tsf_report_event_fixed_param */ + A_UINT32 tlv_header; + /* VDEV identifier */ + A_UINT32 vdev_id; + /* low 32bit of tsf */ + A_UINT32 tsf_low; + /* high 32 bit of tsf */ + A_UINT32 tsf_high; + /* low 32 bits of qtimer */ + A_UINT32 qtimer_low; + /* high 32 bits of qtimer */ + A_UINT32 qtimer_high; } wmi_vdev_tsf_report_event_fixed_param; -/** - * ie_id values: +/* ie_id values: * 0 to 255 are used for individual IEEE802.11 Information Element types */ #define WMI_SET_VDEV_IE_ID_SCAN_SET_DEFAULT_IE 256 @@ -15555,426 +14949,374 @@ typedef struct { /* band values: */ typedef enum { - WMI_SET_VDEV_IE_BAND_ALL = 0, - WMI_SET_VDEV_IE_BAND_2_4GHZ, - WMI_SET_VDEV_IE_BAND_5GHZ, + WMI_SET_VDEV_IE_BAND_ALL = 0, + WMI_SET_VDEV_IE_BAND_2_4GHZ, + WMI_SET_VDEV_IE_BAND_5GHZ, } wmi_set_vdev_ie_band; typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_vdev_set_ie_cmd_fixed_param */ - A_UINT32 tlv_header; - /* unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /* unique id to identify the ie_data as defined by ieee 802.11 spec */ - A_UINT32 ie_id; - /* ie_len corresponds to num of bytes in ie_data[] */ - A_UINT32 ie_len; - /** source of this command */ - A_UINT32 ie_source; /* see WMI_SET_VDEV_IE_SOURCE_ defs */ - /** band for this IE - se wmi_set_vdev_ie_band enum */ - A_UINT32 band; - /* - * Following this structure is the TLV byte stream of ie data of length - * buf_len: - * A_UINT8 ie_data[]; - */ + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_set_ie_cmd_fixed_param */ + A_UINT32 tlv_header; + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** unique id to identify the ie_data as defined by ieee 802.11 spec */ + A_UINT32 ie_id; + /** ie_len corresponds to num of bytes in ie_data[] */ + A_UINT32 ie_len; + /** source of this command */ + A_UINT32 ie_source; /* see WMI_SET_VDEV_IE_SOURCE_ defs */ + /** band for this IE - se wmi_set_vdev_ie_band enum */ + A_UINT32 band; + /** + * Following this structure is the TLV byte stream of ie data of length ie_buf_len: + * A_UINT8 ie_data[]; + * + */ } wmi_vdev_set_ie_cmd_fixed_param; /* DISA feature related data structures */ #define MAX_MAC_HEADER_LEN 32 typedef enum { - WMI_ENCRYPT_DECRYPT_FLAG_INVALID, - WMI_ENCRYPT = 1, - WMI_DECRYPT = 2, + WMI_ENCRYPT_DECRYPT_FLAG_INVALID, + WMI_ENCRYPT = 1, + WMI_DECRYPT = 2, } WMI_ENCRYPT_DECRYPT_FLAG; typedef struct { - /** - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_vdev_encrypt_decrypt_data_req_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - A_UINT32 key_flag; /* WMI_ENCRYPT_DECRYPT_FLAG */ - A_UINT32 key_idx; - A_UINT32 key_cipher; - A_UINT32 key_len; /* units = bytes */ - A_UINT32 key_txmic_len; /* units = bytes */ - A_UINT32 key_rxmic_len; /* units = bytes */ - /** Key: This array needs to be provided in little-endian order */ - A_UINT8 key_data[WMI_MAX_KEY_LEN]; - /** - * Packet number: This array needs to be provided in little-endian - * order. - * If the PN is less than 8 bytes, the PN data shall be placed into this - * pn[] array starting at byte 0, leaving the MSBs empty. - */ - A_UINT8 pn[8]; - /** - * 802.11 MAC header to be typecast to struct ieee80211_qosframe_addr4 - * This array needs to be provided in little-endian order. - */ - A_UINT8 mac_hdr[MAX_MAC_HEADER_LEN]; - A_UINT32 data_len; /** Payload length, units = bytes */ - /** - * Following this struct are this TLV: - * A_UINT8 data[]; <-- actual data to be encrypted, - * needs to be provided in little-endian order - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_encrypt_decrypt_data_req_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + A_UINT32 key_flag; /* WMI_ENCRYPT_DECRYPT_FLAG */ + A_UINT32 key_idx; + A_UINT32 key_cipher; + A_UINT32 key_len; /* units = bytes */ + A_UINT32 key_txmic_len; /* units = bytes */ + A_UINT32 key_rxmic_len; /* units = bytes */ + /** Key: This array needs to be provided in little-endian order */ + A_UINT8 key_data[WMI_MAX_KEY_LEN]; + /** Packet number: This array needs to be provided in little-endian order. + * If the PN is less than 8 bytes, the PN data shall be placed into this + * pn[] array starting at byte 0, leaving the MSBs empty. + */ + A_UINT8 pn[8]; + /** 802.11 MAC header to be typecast to struct ieee80211_qosframe_addr4 + * This array needs to be provided in little-endian order. + */ + A_UINT8 mac_hdr[MAX_MAC_HEADER_LEN]; + A_UINT32 data_len; /** Payload length, units = bytes */ + /* + * Following this struct are this TLV: + * A_UINT8 data[]; <-- actual data to be encrypted, + * needs to be provided in little-endian order + */ } wmi_vdev_encrypt_decrypt_data_req_cmd_fixed_param; -/** - * This event is generated in response to - * WMI_VDEV_ENCRYPT_DECRYPT_DATA_REQ_CMDID from HOST. +/* This event is generated in response to WMI_VDEV_ENCRYPT_DECRYPT_DATA_REQ_CMDID from HOST. * On receiving WMI command WMI_VDEV_ENCRYPT_DECRYPT_DATA_REQ_CMDID from * HOST with DISA test vectors, DISA frame will prepared and submitted to HW, * then on receiving the tx completion for the DISA frame this WMI event * will be delivered to HOST with the encrypted frame. */ typedef struct { - /** - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_vdev_encrypt_decrypt_data_resp_event_fixed_param - */ - A_UINT32 tlv_header; - /* VDEV identifier */ - A_UINT32 vdev_id; - A_INT32 status; /* 0: success, -1: Failure, */ - /* 802.11 header length + encrypted payload length (units = bytes) */ - A_UINT32 data_length; - /** - * Following this struct is this TLV: - * A_UINT8 enc80211_frame[]; <-- Encrypted 802.11 frame; - * 802.11 header + encrypted payload, - * provided in little-endian order - */ + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_vdev_encrypt_decrypt_data_resp_event_fixed_param */ + A_UINT32 tlv_header; + /* VDEV identifier */ + A_UINT32 vdev_id; + A_INT32 status; /* 0: success, -1: Failure, */ + /* 802.11 header length + encrypted payload length (units = bytes) */ + A_UINT32 data_length; + /* + * Following this struct is this TLV: + * A_UINT8 enc80211_frame[]; <-- Encrypted 802.11 frame; + * 802.11 header + encrypted payload, + * provided in little-endian order + */ } wmi_vdev_encrypt_decrypt_data_resp_event_fixed_param; /* DEPRECATED - use wmi_pdev_set_pcl_cmd_fixed_param instead */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_soc_set_pcl_cmd_fixed_param - * Set Preferred Channel List - */ - A_UINT32 tlv_header; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_soc_set_pcl_cmd_fixed_param */ + /** Set Preferred Channel List **/ - /* # of channels to scan */ - A_UINT32 num_chan; - /* - * TLV (tag length value ) parameters follow the wmi_soc_set_pcl_cmd - * structure. The TLV's are: - * A_UINT32 channel_list[]; - */ + /** # of channels to scan */ + A_UINT32 num_chan; +/** + * TLV (tag length value) parameters follow the wmi_soc_set_pcl_cmd + * structure. The TLV's are: + * A_UINT32 channel_list[]; + **/ } wmi_soc_set_pcl_cmd_fixed_param; /* Values for channel_weight */ typedef enum { - WMI_PCL_WEIGHT_DISALLOW = 0, - WMI_PCL_WEIGHT_LOW = 1, - WMI_PCL_WEIGHT_MEDIUM = 2, - WMI_PCL_WEIGHT_HIGH = 3, - WMI_PCL_WEIGHT_VERY_HIGH = 4, + WMI_PCL_WEIGHT_DISALLOW = 0, + WMI_PCL_WEIGHT_LOW = 1, + WMI_PCL_WEIGHT_MEDIUM = 2, + WMI_PCL_WEIGHT_HIGH = 3, + WMI_PCL_WEIGHT_VERY_HIGH = 4, } wmi_pcl_chan_weight; typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_set_pcl_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** Set Preferred Channel List **/ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_pcl_cmd_fixed_param */ + /** Set Preferred Channel List **/ - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; - /** # of channels to scan */ - A_UINT32 num_chan; - /** - * TLV (tag length value ) parameters follow the wmi_soc_set_pcl_cmd - * structure. The TLV's are: - * A_UINT32 channel_weight[]; - * channel order & size will be as per the list provided - * in WMI_SCAN_CHAN_LIST_CMDID - **/ + /** # of channels to scan */ + A_UINT32 num_chan; +/** + * TLV (tag length value) parameters follow the wmi_soc_set_pcl_cmd + 12930 * structure. The TLV's are: + * A_UINT32 channel_weight[]; channel order & size will be as per the list provided in WMI_SCAN_CHAN_LIST_CMDID + **/ } wmi_pdev_set_pcl_cmd_fixed_param; /* DEPRECATED - use wmi_pdev_set_hw_mode_cmd_fixed_param instead */ typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_soc_set_hw_mode_cmd_fixed_param - * Set Hardware Mode */ - A_UINT32 tlv_header; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_soc_set_hw_mode_cmd_fixed_param */ + /** Set Hardware Mode **/ - /* Hardware Mode Index */ - A_UINT32 hw_mode_index; + /* Hardware Mode Index */ + A_UINT32 hw_mode_index; } wmi_soc_set_hw_mode_cmd_fixed_param; typedef struct { - /* TLV tag and len tag equals WMITLV_TAG_STRUC_wmi_pdev_band_to_mac */ - A_UINT32 tlv_header; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - /* start frequency in MHz */ - A_UINT32 start_freq; - /* end frequency in MHz */ - A_UINT32 end_freq; + A_UINT32 tlv_header; /* TLV tag and len tag equals WMITLV_TAG_STRUC_wmi_pdev_band_to_mac */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + /* start frequency in MHz */ + A_UINT32 start_freq; + /* end frequency in MHz */ + A_UINT32 end_freq; } wmi_pdev_band_to_mac; typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_set_hw_mode_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** Set Hardware Mode **/ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_hw_mode_cmd_fixed_param */ + /** Set Hardware Mode **/ - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; - /* Hardware Mode Index */ - A_UINT32 hw_mode_index; + /* Hardware Mode Index */ + A_UINT32 hw_mode_index; - /* Number of band to mac TLVs */ - A_UINT32 num_band_to_mac; + /* Number of band to mac TLVs */ + A_UINT32 num_band_to_mac; - /* Followed by TLVs of type - * num_band_to_mac * wmi_pdev_band_to_mac. - */ + /* Followed by TLVs of type + * num_band_to_mac * wmi_pdev_band_to_mac. + */ } wmi_pdev_set_hw_mode_cmd_fixed_param; -/* DEPRECATED - use wmi_pdev_set_mac_config_cmd_fixed_param instead */ +/* DEPRECATED - use wmi_pdev_set_dual_mac_config_cmd_fixed_param instead */ typedef struct { - /* - * TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_soc_set_dual_mac_config_cmd_fixed_param - * Set Dual MAC Firmware Configuration - */ - A_UINT32 tlv_header; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_soc_set_dual_mac_config_cmd_fixed_param */ + /** Set Dual MAC Firmware Configuration **/ - /* Concurrent scan configuration bits */ - A_UINT32 concurrent_scan_config_bits; - /* Firmware mode configuration bits */ - A_UINT32 fw_mode_config_bits; + /* Concurrent scan configuration bits */ + A_UINT32 concurrent_scan_config_bits; + /* Firmware mode configuration bits */ + A_UINT32 fw_mode_config_bits; } wmi_soc_set_dual_mac_config_cmd_fixed_param; typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_set_mac_config_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** Set Dual MAC Firmware Configuration **/ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_mac_config_cmd_fixed_param */ + /** Set Dual MAC Firmware Configuration **/ - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; - /* Concurrent scan configuration bits */ - A_UINT32 concurrent_scan_config_bits; - /* Firmware mode configuration bits */ - A_UINT32 fw_mode_config_bits; + /* Concurrent scan configuration bits */ + A_UINT32 concurrent_scan_config_bits; + /* Firmware mode configuration bits */ + A_UINT32 fw_mode_config_bits; } wmi_pdev_set_mac_config_cmd_fixed_param; typedef struct { /* DEPRECATED */ - A_UINT32 num_tx_chains; - A_UINT32 num_rx_chains; - A_UINT32 reserved[2]; + A_UINT32 num_tx_chains; + A_UINT32 num_rx_chains; + A_UINT32 reserved[2]; } soc_num_tx_rx_chains; typedef struct { - A_UINT32 num_tx_chains_2g; - A_UINT32 num_rx_chains_2g; - A_UINT32 num_tx_chains_5g; - A_UINT32 num_rx_chains_5g; + A_UINT32 num_tx_chains_2g; + A_UINT32 num_rx_chains_2g; + A_UINT32 num_tx_chains_5g; + A_UINT32 num_rx_chains_5g; } band_num_tx_rx_chains; -typedef union { - soc_num_tx_rx_chains soc_txrx_chain_setting; - band_num_tx_rx_chains band_txrx_chain_setting; +typedef union { /* DEPRECATED */ + soc_num_tx_rx_chains soc_txrx_chain_setting; + band_num_tx_rx_chains band_txrx_chain_setting; } antenna_num_tx_rx_chains; typedef enum { - ANTENNA_MODE_DISABLED = 0x0, - ANTENNA_MODE_LOW_POWER_LOCATION_SCAN = 0x01, - /* reserved */ + ANTENNA_MODE_DISABLED = 0x0, + ANTENNA_MODE_LOW_POWER_LOCATION_SCAN = 0x01, + /* reserved */ } antenna_mode_reason; /* DEPRECATED - use wmi_pdev_set_antenna_mode_cmd_fixed_param instead */ typedef struct { - /* - * TLV tag and len; - * tag equals WMITLV_TAG_STRUC_wmi_soc_set_antenna_mode_cmd_fixed_param - */ - A_UINT32 tlv_header; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_soc_set_antenna_mode_cmd_fixed_param */ - /* the reason for setting antenna mode, refer antenna_mode_reason */ - A_UINT32 reason; + /* the reason for setting antenna mode, refer antenna_mode_reason */ + A_UINT32 reason; - /* - * The above reason parameter will select whether the following union - * is soc_num_tx_rx_chains or band_num_tx_rx_chains. - */ - antenna_num_tx_rx_chains num_txrx_chains_setting; + /* + * The above reason parameter will select whether the following union + * is soc_num_tx_rx_chains or band_num_tx_rx_chains. + */ + antenna_num_tx_rx_chains num_txrx_chains_setting; } wmi_soc_set_antenna_mode_cmd_fixed_param; typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_set_antenna_mode_cmd_fixed_param - */ - A_UINT32 tlv_header; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_antenna_mode_cmd_fixed_param */ - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; - /* Bits 0-15 is the number of RX chains and - * 16-31 is the number of TX chains - */ - A_UINT32 num_txrx_chains; + /* Bits 0-15 is the number of RX chains and 16-31 is the number of TX chains */ + A_UINT32 num_txrx_chains; } wmi_pdev_set_antenna_mode_cmd_fixed_param; /** Data structure for information specific to a VDEV to MAC mapping. */ /* DEPRECATED - use wmi_pdev_set_hw_mode_response_vdev_mac_entry instead */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_soc_set_hw_mode_response_vdev_mac_entry */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; /* VDEV ID */ - A_UINT32 mac_id; /* MAC ID */ + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_soc_set_hw_mode_response_vdev_mac_entry */ + A_UINT32 tlv_header; + A_UINT32 vdev_id; /* VDEV ID */ + A_UINT32 mac_id; /* MAC ID */ } wmi_soc_set_hw_mode_response_vdev_mac_entry; /** Data structure for information specific to a VDEV to MAC mapping. */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_set_hw_mode_response_vdev_mac_entry */ - A_UINT32 tlv_header; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_pdev_set_hw_mode_response_vdev_mac_entry */ + A_UINT32 tlv_header; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; - A_UINT32 vdev_id; + A_UINT32 vdev_id; } wmi_pdev_set_hw_mode_response_vdev_mac_entry; /* DEPRECATED - use wmi_pdev_set_hw_mode_response_event_fixed_param instead */ typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_soc_set_hw_mode_response_event_fixed_param - * Set Hardware Mode Response Event **/ - A_UINT32 tlv_header; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_soc_set_hw_mode_response_event_fixed_param */ + /** Set Hardware Mode Response Event **/ - /* Status of set_hw_mode command - * Values for Status: - * 0 - OK; command successful - * 1 - EINVAL; Requested invalid hw_mode - * 2 - ECANCELED; HW mode change canceled - * 3 - ENOTSUP; HW mode not supported - * 4 - EHARDWARE; HW mode change prevented by hardware - * 5 - EPENDING; HW mode change is pending - * 6 - ECOEX; HW mode change conflict with Coex - */ - A_UINT32 status; - /* Configured Hardware Mode */ - A_UINT32 cfgd_hw_mode_index; - /* Number of Vdev to Mac entries */ - A_UINT32 num_vdev_mac_entries; - /* - * TLV (tag length value ) parameters follow the soc_set_hw_mode_response_event - * structure. The TLV's are: - * A_UINT32 wmi_soc_set_hw_mode_response_vdev_mac_entry[]; - */ + /* Status of set_hw_mode command */ + /* + * Values for Status: + * 0 - OK; command successful + * 1 - EINVAL; Requested invalid hw_mode + * 2 - ECANCELED; HW mode change canceled + * 3 - ENOTSUP; HW mode not supported + * 4 - EHARDWARE; HW mode change prevented by hardware + * 5 - EPENDING; HW mode change is pending + * 6 - ECOEX; HW mode change conflict with Coex + */ + A_UINT32 status; + /* Configured Hardware Mode */ + A_UINT32 cfgd_hw_mode_index; + /* Number of Vdev to Mac entries */ + A_UINT32 num_vdev_mac_entries; + +/** + * TLV (tag length value) parameters follow the soc_set_hw_mode_response_event + * structure. The TLV's are: + * A_UINT32 wmi_soc_set_hw_mode_response_vdev_mac_entry[]; + */ } wmi_soc_set_hw_mode_response_event_fixed_param; typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_set_hw_mode_response_event_fixed_param - */ - A_UINT32 tlv_header; - /** Set Hardware Mode Response Event **/ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_hw_mode_response_event_fixed_param */ + /** Set Hardware Mode Response Event **/ - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; - /* Status of set_hw_mode command */ - /* - * Values for Status: - * 0 - OK; command successful - * 1 - EINVAL; Requested invalid hw_mode - * 2 - ECANCELED; HW mode change canceled - * 3 - ENOTSUP; HW mode not supported - * 4 - EHARDWARE; HW mode change prevented by hardware - * 5 - EPENDING; HW mode change is pending - * 6 - ECOEX; HW mode change conflict with Coex - */ - A_UINT32 status; - /* Configured Hardware Mode */ - A_UINT32 cfgd_hw_mode_index; - /* Number of Vdev to Mac entries */ - A_UINT32 num_vdev_mac_entries; - /** - * TLV (tag length value ) parameters follow the - * soc_set_hw_mode_response_event structure. The TLV's are: - * A_UINT32 wmi_soc_set_hw_mode_response_vdev_mac_entry[]; - */ + /* Status of set_hw_mode command */ + /* + * Values for Status: + * 0 - OK; command successful + * 1 - EINVAL; Requested invalid hw_mode + * 2 - ECANCELED; HW mode change canceled + * 3 - ENOTSUP; HW mode not supported + * 4 - EHARDWARE; HW mode change prevented by hardware + * 5 - EPENDING; HW mode change is pending + * 6 - ECOEX; HW mode change conflict with Coex + */ + A_UINT32 status; + /* Configured Hardware Mode */ + A_UINT32 cfgd_hw_mode_index; + /* Number of Vdev to Mac entries */ + A_UINT32 num_vdev_mac_entries; +/** + * TLV (tag length value) parameters follow the soc_set_hw_mode_response_event + * structure. The TLV's are: + * A_UINT32 wmi_soc_set_hw_mode_response_vdev_mac_entry[]; + */ } wmi_pdev_set_hw_mode_response_event_fixed_param; /* DEPRECATED - use wmi_pdev_hw_mode_transition_event_fixed_param instead */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_soc_hw_mode_transition_event_fixed_param - * Hardware Mode Transition Event - */ - A_UINT32 tlv_header; - /* Original or old Hardware mode */ - A_UINT32 old_hw_mode_index; - /* New Hardware Mode */ - A_UINT32 new_hw_mode_index; - /* Number of Vdev to Mac entries */ - A_UINT32 num_vdev_mac_entries; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_soc_hw_mode_transition_event_fixed_param */ + /** Hardware Mode Transition Event **/ - /** - * TLV (tag length value ) parameters follow the soc_set_hw_mode_response_event - * structure. The TLV's are: - * A_UINT32 wmi_soc_set_hw_mode_response_vdev_mac_entry[]; - */ + /* Original or old Hardware mode */ + A_UINT32 old_hw_mode_index; + /* New Hardware Mode */ + A_UINT32 new_hw_mode_index; + /* Number of Vdev to Mac entries */ + A_UINT32 num_vdev_mac_entries; + +/** + * TLV (tag length value) parameters follow the soc_set_hw_mode_response_event + * structure. The TLV's are: + * A_UINT32 wmi_soc_set_hw_mode_response_vdev_mac_entry[]; + */ } wmi_soc_hw_mode_transition_event_fixed_param; typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_hw_mode_transition_event_fixed_param - */ - A_UINT32 tlv_header; - /** Hardware Mode Transition Event **/ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_hw_mode_transition_event_fixed_param */ + /** Hardware Mode Transition Event **/ - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; - /* Original or old Hardware mode */ - A_UINT32 old_hw_mode_index; - /* New Hardware Mode */ - A_UINT32 new_hw_mode_index; - /* Number of Vdev to Mac entries */ - A_UINT32 num_vdev_mac_entries; + /* Original or old Hardware mode */ + A_UINT32 old_hw_mode_index; + /* New Hardware Mode */ + A_UINT32 new_hw_mode_index; + /* Number of Vdev to Mac entries */ + A_UINT32 num_vdev_mac_entries; - /** - * TLV (tag length value ) parameters follow the - * soc_set_hw_mode_response_event structure. The TLV's are: - * A_UINT32 wmi_soc_set_hw_mode_response_vdev_mac_entry[]; - */ +/** + * TLV (tag length value) parameters follow the soc_set_hw_mode_response_event + * structure. The TLV's are: + * A_UINT32 wmi_soc_set_hw_mode_response_vdev_mac_entry[]; + */ } wmi_pdev_hw_mode_transition_event_fixed_param; /** @@ -15982,33 +15324,24 @@ typedef struct { * plugging in reorder queue desc to lithium hw. * * Example: plug-in queue desc for TID 5 - * host->target: WMI_PEER_REORDER_QUEUE_SETUP_CMDID, - * (vdev_id = PEER vdev id, - * peer_macaddr = PEER mac addr, - * tid = 5, - * queue_ptr_lo = queue desc addr lower 32 bits, - * queue_ptr_hi = queue desc addr higher 32 bits, - * queue_no = 16-bit number assigned by host for queue, + * host->target: WMI_PEER_REORDER_QUEUE_SETUP_CMDID, + * (vdev_id = PEER vdev id, + * peer_macaddr = PEER mac addr, + * tid = 5, + * queue_ptr_lo = queue desc addr lower 32 bits, + * queue_ptr_hi = queue desc addr higher 32 bits, + * queue_no = 16-bit number assigned by host for queue, * stored in bits 15:0 of queue_no field) */ typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_reorder_queue_setup_cmd_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; - /* peer mac address */ - wmi_mac_addr peer_macaddr; - /* 0 to 15 = QoS TIDs, 16 = non-qos TID */ - A_UINT32 tid; - /* lower 32 bits of queue desc adddress */ - A_UINT32 queue_ptr_lo; - /* upper 32 bits of queue desc adddress */ - A_UINT32 queue_ptr_hi; - /* 16-bit number assigned by host for queue, - * stored in bits 15:0 of queue_no field - */ - A_UINT32 queue_no; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_reorder_queue_setup_cmd_fixed_param */ + A_UINT32 vdev_id; + wmi_mac_addr peer_macaddr; /* peer mac address */ + A_UINT32 tid; /* 0 to 15 = QoS TIDs, 16 = non-qos TID */ + A_UINT32 queue_ptr_lo; /* lower 32 bits of queue desc adddress */ + A_UINT32 queue_ptr_hi; /* upper 32 bits of queue desc adddress */ + A_UINT32 queue_no; /* 16-bit number assigned by host for queue, + stored in bits 15:0 of queue_no field */ } wmi_peer_reorder_queue_setup_cmd_fixed_param; /** @@ -16016,626 +15349,564 @@ typedef struct { * removing one or more reorder queue desc to lithium hw. * * Example: remove queue desc for all TIDs - * host->target: WMI_PEER_REORDER_REMOVE_CMDID, - * (vdev_id = PEER vdev id, - * peer_macaddr = PEER mac addr, - * tid = 0x1FFFF, + * host->target: WMI_PEER_REORDER_REMOVE_CMDID, + * (vdev_id = PEER vdev id, + * peer_macaddr = PEER mac addr, + * tid = 0x1FFFF, */ typedef struct { - /* TLV tag and len; - * tag equals - * WMITLV_TAG_STRUC_wmi_peer_reorder_queue_remove_cmd_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; - /* peer mac address */ - wmi_mac_addr peer_macaddr; - /* bits 0 to 15 = QoS TIDs, bit 16 = non-qos TID */ - A_UINT32 tid_mask; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_reorder_queue_remove_cmd_fixed_param */ + A_UINT32 vdev_id; + wmi_mac_addr peer_macaddr; /* peer mac address */ + A_UINT32 tid_mask; /* bits 0 to 15 = QoS TIDs, bit 16 = non-qos TID */ } wmi_peer_reorder_queue_remove_cmd_fixed_param; -/* DEPRECATED - use wmi_pdev_set_mac_config_response_event_fixed_param - * instead - */ +/* DEPRECATED - use wmi_pdev_set_mac_config_response_event_fixed_param instead */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_soc_set_dual_mac_config_response_event_fixed_param - * Set Dual MAC Config Response Event - */ - A_UINT32 tlv_header; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_soc_set_dual_mac_config_response_event_fixed_param */ + /** Set Dual MAC Config Response Event **/ + + /* Status for set_dual_mac_config command */ + /* + * Values for Status: + * 0 - OK; command successful + * 1 - EINVAL; Requested invalid hw_mode + * 3 - ENOTSUP; HW mode not supported + * 4 - EHARDWARE; HW mode change prevented by hardware + * 6 - ECOEX; HW mode change conflict with Coex + */ + A_UINT32 status; - /* Status for set_dual_mac_config command */ - /* - * Values for Status: - * 0 - OK; command successful - * 1 - EINVAL; Requested invalid hw_mode - * 3 - ENOTSUP; HW mode not supported - * 4 - EHARDWARE; HW mode change prevented by hardware - * 6 - ECOEX; HW mode change conflict with Coex - */ - A_UINT32 status; } wmi_soc_set_dual_mac_config_response_event_fixed_param; typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_set_mac_config_response_event_fixed_param - */ - A_UINT32 tlv_header; - /** Set Dual MAC Config Response Event **/ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_mac_config_response_event_fixed_param */ + /** Set Dual MAC Config Response Event **/ - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; - /* Status for set_dual_mac_config command */ - /* - * Values for Status: - * 0 - OK; command successful - * 1 - EINVAL; Requested invalid hw_mode - * 3 - ENOTSUP; HW mode not supported - * 4 - EHARDWARE; HW mode change prevented by hardware - * 6 - ECOEX; HW mode change conflict with Coex - */ - A_UINT32 status; + /* Status for set_dual_mac_config command */ + /* + * Values for Status: + * 0 - OK; command successful + * 1 - EINVAL; Requested invalid hw_mode + * 3 - ENOTSUP; HW mode not supported + * 4 - EHARDWARE; HW mode change prevented by hardware + * 6 - ECOEX; HW mode change conflict with Coex + */ + A_UINT32 status; } wmi_pdev_set_mac_config_response_event_fixed_param; typedef enum { - MAWC_MOTION_STATE_UNKNOWN, - MAWC_MOTION_STATE_STATIONARY, - MAWC_MOTION_STATE_WALK, - MAWC_MOTION_STATE_TRANSIT, + MAWC_MOTION_STATE_UNKNOWN, + MAWC_MOTION_STATE_STATIONARY, + MAWC_MOTION_STATE_WALK, + MAWC_MOTION_STATE_TRANSIT, } MAWC_MOTION_STATE; typedef enum { - MAWC_SENSOR_STATUS_OK, - MAWC_SENSOR_STATUS_FAILED_TO_ENABLE, - MAWC_SENSOR_STATUS_SHUTDOWN, + MAWC_SENSOR_STATUS_OK, + MAWC_SENSOR_STATUS_FAILED_TO_ENABLE, + MAWC_SENSOR_STATUS_SHUTDOWN, } MAWC_SENSOR_STATUS; typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_mawc_sensor_report_ind_cmd_fixed_param */ - A_UINT32 tlv_header; - /** new motion state, MAWC_MOTION_STATE */ - A_UINT32 motion_state; - /** status code of sensor, MAWC_SENSOR_STATUS */ - A_UINT32 sensor_status; + /* TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_mawc_sensor_report_ind_cmd_fixed_param */ + A_UINT32 tlv_header; + /** new motion state, MAWC_MOTION_STATE */ + A_UINT32 motion_state; + /** status code of sensor, MAWC_SENSOR_STATUS */ + A_UINT32 sensor_status; } wmi_mawc_sensor_report_ind_cmd_fixed_param; /* MBO flag field definition */ -/* - * Bit 0: 0 - Allow to connect to both MBO and non-MBO AP +/* Bit 0: 0 - Allow to connect to both MBO and non-MBO AP * 1 - Allow to connect to MBO AP only * Bit 1-31 : reserved. */ #define WMI_ROAM_MBO_FLAG_MBO_ONLY_MODE (1<<0) /* DEPRECATED */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_roam_set_mbo_fixed_param - */ - A_UINT32 tlv_header; - /** vdev id */ - A_UINT32 vdev_id; - /** enable or disable MBO */ - A_UINT32 enable; - /** MBO flags, refer to definition of MBO flags*/ - A_UINT32 flags; + /* TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_roam_set_mbo_fixed_param */ + A_UINT32 tlv_header; + /** vdev id */ + A_UINT32 vdev_id; + /** enable or disable MBO */ + A_UINT32 enable; + /** MBO flags, refer to definition of MBO flags*/ + A_UINT32 flags; } wmi_roam_set_mbo_fixed_param; /* DEPRECATED */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_ARRAY_STRUC - */ - A_UINT32 tlv_header; - /** Current operating class number */ - A_UINT32 cur_op_class; - /* - * Country string of current reg domain, - * the expected value should be same as country str defined - * in country IE. - * 3 octets (COUNTRY_STR) + 1 octet (always 0) - * The ordering of this array must be maintained, - * even when a big-endian host's WMI messages undergo - * automatic byte reordering for conversion to the - * little-endian ordering required by the target. - * On big-endian hosts, this array may need to be byte-swapped - * by the host, so the subsequent automatic byte-swap - * will result in the correct final byte order. - * global operating class: set country_str[0]=0 - */ - A_UINT8 country_str[4]; - /** Supported operating class number in current regdomain */ - A_UINT32 supp_op_class_num; - /* The TLVs will follow. */ - /* A_UINT32 supp_op_class_list[] */ + /* TLV tag and len; tag equals + * WMITLV_TAG_ARRAY_STRUC */ + A_UINT32 tlv_header; + /** Current operating class number */ + A_UINT32 cur_op_class; + /** Country string of current reg domain, + * the expected value should be same as country str defined + * in country IE. + * 3 octets (COUNTRY_STR) + 1 octet (always 0) + * The ordering of this array must be maintained, + * even when a big-endian host's WMI messages undergo + * automatic byte reordering for conversion to the + * little-endian ordering required by the target. + * On big-endian hosts, this array may need to be byte-swapped + * by the host, so the subsequent automatic byte-swap + * will result in the correct final byte order. + * global operating class: set country_str[0]=0 + */ + A_UINT8 country_str[4]; + /** Supported operating class number in current regdomain */ + A_UINT32 supp_op_class_num; + /* The TLVs will follow. */ + /* A_UINT32 supp_op_class_list[] */ } wmi_supported_operating_class_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_ARRAY_STRUC - */ - A_UINT32 tlv_header; - /** non preferred channel attribute length */ - A_UINT32 non_prefer_ch_attr_len; - /* The TLVs will follow. */ - /** A_UINT8 non_prefer_ch_attr[];*/ + /* TLV tag and len; tag equals + * WMITLV_TAG_ARRAY_STRUC */ + A_UINT32 tlv_header; + /** non preferred channel attribute length */ + A_UINT32 non_prefer_ch_attr_len; + /* The TLVs will follow. */ + /** A_UINT8 non_prefer_ch_attr[];*/ } wmi_mbo_non_preferred_channel_report_param; typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_mawc_enable_sensor_event_fixed_param */ - A_UINT32 tlv_header; - /* enable(1) or disable(0) */ - A_UINT32 enable; + /* TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_mawc_enable_sensor_event_fixed_param */ + A_UINT32 tlv_header; + /* enable(1) or disable(0) */ + A_UINT32 enable; } wmi_mawc_enable_sensor_event_fixed_param; typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_extscan_configure_mawc_cmd_fixed_param */ - A_UINT32 tlv_header; - /* Unique id identifying the VDEV */ - A_UINT32 vdev_id; - /* enable(1) or disable(0) MAWC */ - A_UINT32 enable; - /* ratio of skipping suppressing scan, skip one out of x */ - A_UINT32 suppress_ratio; + /* TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_extscan_configure_mawc_cmd_fixed_param */ + A_UINT32 tlv_header; + /* Unique id identifying the VDEV */ + A_UINT32 vdev_id; + /* enable(1) or disable(0) MAWC */ + A_UINT32 enable; + /* ratio of skipping suppressing scan, skip one out of x */ + A_UINT32 suppress_ratio; } wmi_extscan_configure_mawc_cmd_fixed_param; typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_nlo_configure_mawc_cmd_fixed_param */ - A_UINT32 tlv_header; - /* Unique id identifying the VDEV */ - A_UINT32 vdev_id; - /* enable(1) or disable(0) MAWC */ - A_UINT32 enable; - /* ratio of exponential backoff, next = current + current*ratio/100 */ - A_UINT32 exp_backoff_ratio; - /* initial scan interval(msec) */ - A_UINT32 init_scan_interval; - /* max scan interval(msec) */ - A_UINT32 max_scan_interval; + /* TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_nlo_configure_mawc_cmd_fixed_param */ + A_UINT32 tlv_header; + /* Unique id identifying the VDEV */ + A_UINT32 vdev_id; + /* enable(1) or disable(0) MAWC */ + A_UINT32 enable; + /* ratio of exponential backoff, next = current + current*ratio/100 */ + A_UINT32 exp_backoff_ratio; + /* initial scan interval(msec) */ + A_UINT32 init_scan_interval; + /* max scan interval(msec) */ + A_UINT32 max_scan_interval; } wmi_nlo_configure_mawc_cmd_fixed_param; typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_roam_configure_mawc_cmd_fixed_param */ - A_UINT32 tlv_header; - /* Unique id identifying the VDEV */ - A_UINT32 vdev_id; - /* enable(1) or disable(0) MAWC */ - A_UINT32 enable; - /* data traffic load (kBps) to register CMC */ - A_UINT32 traffic_load_threshold; - /* RSSI threshold (dBm) to scan for Best AP */ - A_UINT32 best_ap_rssi_threshold; - /* high RSSI threshold adjustment in Stationary to suppress scan */ - A_UINT32 rssi_stationary_high_adjust; - /* low RSSI threshold adjustment in Stationary to suppress scan */ - A_UINT32 rssi_stationary_low_adjust; + /* TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_roam_configure_mawc_cmd_fixed_param */ + A_UINT32 tlv_header; + /* Unique id identifying the VDEV */ + A_UINT32 vdev_id; + /* enable(1) or disable(0) MAWC */ + A_UINT32 enable; + /* data traffic load (kBps) to register CMC */ + A_UINT32 traffic_load_threshold; + /* RSSI threshold (dBm) to scan for Best AP */ + A_UINT32 best_ap_rssi_threshold; + /* high RSSI threshold adjustment in Stationary to suppress scan */ + A_UINT32 rssi_stationary_high_adjust; + /* low RSSI threshold adjustment in Stationary to suppress scan */ + A_UINT32 rssi_stationary_low_adjust; } wmi_roam_configure_mawc_cmd_fixed_param; #define WMI_PACKET_FILTER_COMPARE_DATA_LEN_DWORD 2 #define WMI_PACKET_FILTER_MAX_CMP_PER_PACKET_FILTER 5 typedef enum { - PACKET_FILTER_TYPE_INVALID = 0, - PACKET_FILTER_TYPE_FILTER_PKT, - PACKET_FILTER_TYPE_RESERVE_PKT, /* not used */ - PACKET_FILTER_TYPE_MAX_ENUM_SIZE + PACKET_FILTER_TYPE_INVALID = 0, + PACKET_FILTER_TYPE_FILTER_PKT, + PACKET_FILTER_TYPE_RESERVE_PKT, /* not used */ + PACKET_FILTER_TYPE_MAX_ENUM_SIZE } WMI_PACKET_FILTER_FILTER_TYPE; typedef enum { - PACKET_FILTER_PROTO_TYPE_INVALID = 0, + PACKET_FILTER_PROTO_TYPE_INVALID = 0, - /* L2 header */ - PACKET_FILTER_PROTO_TYPE_MAC, - PACKET_FILTER_PROTO_TYPE_SNAP, + /* L2 header */ + PACKET_FILTER_PROTO_TYPE_MAC, + PACKET_FILTER_PROTO_TYPE_SNAP, - /* L3 header (EtherType) */ - PACKET_FILTER_PROTO_TYPE_IPV4, - PACKET_FILTER_PROTO_TYPE_IPV6, + /* L3 header (EtherType) */ + PACKET_FILTER_PROTO_TYPE_IPV4, + PACKET_FILTER_PROTO_TYPE_IPV6, - /* L4 header (IP protocol) */ - PACKET_FILTER_PROTO_TYPE_UDP, - PACKET_FILTER_PROTO_TYPE_TCP, - PACKET_FILTER_PROTO_TYPE_ICMPV6, + /* L4 header (IP protocol) */ + PACKET_FILTER_PROTO_TYPE_UDP, + PACKET_FILTER_PROTO_TYPE_TCP, + PACKET_FILTER_PROTO_TYPE_ICMPV6, - PACKET_FILTER_PROTO_TYPE_MAX + PACKET_FILTER_PROTO_TYPE_MAX } WMI_PACKET_FILTER_PROTO_TYPE; typedef enum { - PACKET_FILTER_CMP_TYPE_INVALID = 0, - PACKET_FILTER_CMP_TYPE_EQUAL, - PACKET_FILTER_CMP_TYPE_MASK_EQUAL, - PACKET_FILTER_CMP_TYPE_NOT_EQUAL, - PACKET_FILTER_CMP_TYPE_MASK_NOT_EQUAL, - PACKET_FILTER_CMP_TYPE_ADDRTYPE, - PACKET_FILTER_CMP_TYPE_MAX + PACKET_FILTER_CMP_TYPE_INVALID = 0, + PACKET_FILTER_CMP_TYPE_EQUAL, + PACKET_FILTER_CMP_TYPE_MASK_EQUAL, + PACKET_FILTER_CMP_TYPE_NOT_EQUAL, + PACKET_FILTER_CMP_TYPE_MASK_NOT_EQUAL, + PACKET_FILTER_CMP_TYPE_ADDRTYPE, + PACKET_FILTER_CMP_TYPE_MAX } WMI_PACKET_FILTER_CMP_TYPE; typedef enum { - PACKET_FILTER_SET_INACTIVE = 0, - PACKET_FILTER_SET_ACTIVE + PACKET_FILTER_SET_INACTIVE = 0, + PACKET_FILTER_SET_ACTIVE } WMI_PACKET_FILTER_ACTION; typedef enum { - PACKET_FILTER_SET_DISABLE = 0, - PACKET_FILTER_SET_ENABLE + PACKET_FILTER_SET_DISABLE = 0, + PACKET_FILTER_SET_ENABLE } WMI_PACKET_FILTER_RUNTIME_ENABLE; typedef struct { - A_UINT32 proto_type; - A_UINT32 cmp_type; - A_UINT32 data_length; /* Length of the data to compare (units = bytes) */ - /* - * from start of the respective frame header ( - * units = bytes) - */ - A_UINT32 data_offset; - /* Data to compare, little-endian order */ - A_UINT32 compareData[WMI_PACKET_FILTER_COMPARE_DATA_LEN_DWORD]; - /* Mask to be applied on rcvd packet data before compare, little-endian order */ - A_UINT32 dataMask[WMI_PACKET_FILTER_COMPARE_DATA_LEN_DWORD]; + A_UINT32 proto_type; + A_UINT32 cmp_type; + A_UINT32 data_length; /* Length of the data to compare (units = bytes) */ + A_UINT32 data_offset; /* from start of the respective frame header (units = bytes) */ + A_UINT32 compareData[WMI_PACKET_FILTER_COMPARE_DATA_LEN_DWORD]; /* Data to compare, little-endian order */ + A_UINT32 dataMask[WMI_PACKET_FILTER_COMPARE_DATA_LEN_DWORD]; /* Mask to be applied on rcvd packet data before compare, little-endian order */ } WMI_PACKET_FILTER_PARAMS_TYPE; typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 filter_id; - A_UINT32 filter_action; /* WMI_PACKET_FILTER_ACTION */ - A_UINT32 filter_type; - A_UINT32 num_params; /* how many entries in paramsData are valid */ - A_UINT32 coalesce_time; /* not currently used - fill with 0x0 */ - WMI_PACKET_FILTER_PARAMS_TYPE paramsData[WMI_PACKET_FILTER_MAX_CMP_PER_PACKET_FILTER]; - /* - * deprecated0: - * This field simply provides filler space to retain the - * original message format while reducing - * WMI_PACKET_FILTER_MAX_CMP_PER_PACKET_FILTER from 10 to 5. - */ - WMI_PACKET_FILTER_PARAMS_TYPE deprecated0[5]; + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 filter_id; + A_UINT32 filter_action; /* WMI_PACKET_FILTER_ACTION */ + A_UINT32 filter_type; + A_UINT32 num_params; /* how many entries in paramsData are valid */ + A_UINT32 coalesce_time; /* not currently used - fill with 0x0 */ + WMI_PACKET_FILTER_PARAMS_TYPE paramsData[WMI_PACKET_FILTER_MAX_CMP_PER_PACKET_FILTER]; + /* deprecated0: + * This field simply provides filler space to retain the original message + * format while reducing WMI_PACKET_FILTER_MAX_CMP_PER_PACKET_FILTER + * from 10 to 5. + */ + WMI_PACKET_FILTER_PARAMS_TYPE deprecated0[5]; } WMI_PACKET_FILTER_CONFIG_CMD_fixed_param; /* enable / disable all filters within the specified vdev */ typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 enable; /* WMI_PACKET_FILTER_RUNTIME_ENABLE */ + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 enable; /* WMI_PACKET_FILTER_RUNTIME_ENABLE */ } WMI_PACKET_FILTER_ENABLE_CMD_fixed_param; - #define WMI_LRO_INFO_TCP_FLAG_VALS_BITPOS 0 #define WMI_LRO_INFO_TCP_FLAG_VALS_NUMBITS 9 #define WMI_LRO_INFO_TCP_FLAG_VALS_SET(tcp_flag_u32, tcp_flag_values) \ - WMI_SET_BITS(tcp_flag_u32, \ - WMI_LRO_INFO_TCP_FLAG_VALS_BITPOS, \ - WMI_LRO_INFO_TCP_FLAG_VALS_NUMBITS, \ - tcp_flag_values) + WMI_SET_BITS(tcp_flag_u32, \ + WMI_LRO_INFO_TCP_FLAG_VALS_BITPOS, \ + WMI_LRO_INFO_TCP_FLAG_VALS_NUMBITS, \ + tcp_flag_values) #define WMI_LRO_INFO_TCP_FLAG_VALS_GET(tcp_flag_u32) \ - WMI_GET_BITS(tcp_flag_u32, \ - WMI_LRO_INFO_TCP_FLAG_VALS_BITPOS, \ - WMI_LRO_INFO_TCP_FLAG_VALS_NUMBITS) + WMI_GET_BITS(tcp_flag_u32, \ + WMI_LRO_INFO_TCP_FLAG_VALS_BITPOS, \ + WMI_LRO_INFO_TCP_FLAG_VALS_NUMBITS) #define WMI_LRO_INFO_TCP_FLAGS_MASK_BITPOS 9 #define WMI_LRO_INFO_TCP_FLAGS_MASK_NUMBITS 9 #define WMI_LRO_INFO_TCP_FLAGS_MASK_SET(tcp_flag_u32, tcp_flags_mask) \ - WMI_SET_BITS(tcp_flag_u32, \ - WMI_LRO_INFO_TCP_FLAGS_MASK_BITPOS, \ - WMI_LRO_INFO_TCP_FLAGS_MASK_NUMBITS, \ - tcp_flags_mask) + WMI_SET_BITS(tcp_flag_u32, \ + WMI_LRO_INFO_TCP_FLAGS_MASK_BITPOS, \ + WMI_LRO_INFO_TCP_FLAGS_MASK_NUMBITS, \ + tcp_flags_mask) #define WMI_LRO_INFO_TCP_FLAGS_MASK_GET(tcp_flag_u32) \ - WMI_GET_BITS(tcp_flag_u32, \ - WMI_LRO_INFO_TCP_FLAGS_MASK_BITPOS, \ - WMI_LRO_INFO_TCP_FLAGS_MASK_NUMBITS) + WMI_GET_BITS(tcp_flag_u32, \ + WMI_LRO_INFO_TCP_FLAGS_MASK_BITPOS, \ + WMI_LRO_INFO_TCP_FLAGS_MASK_NUMBITS) typedef struct { - A_UINT32 tlv_header; - /** - * @brief lro_enable - indicates whether lro is enabled - * [0] LRO Enable - */ - A_UINT32 lro_enable; - /** - * @brief tcp_flag_u32 - mask of which TCP flags to check and - * values to check for - * [8:0] TCP flag values - If the TCP flags from the packet do not match - * the values in this field after masking with TCP flags mask - * below,LRO eligible will not be set - * [17:9] TCP flags mask - Mask field for comparing the TCP values - * provided above with the TCP flags field in the received packet - * Use WMI_LRO_INFO_TCP_FLAG_VALS and WMI_LRO_INFO_TCP_FLAGS_MASK - * macros to isolate the mask field and values field that are packed - * into this u32 "word". - */ - A_UINT32 tcp_flag_u32; - /** - * @brief toeplitz_hash_ipv4 - contains seed needed to compute - * the flow id 5-tuple toeplitz hash for IPv4 packets. Contains - * bytes 0 to 3 - * - * In this and all the below toeplitz_hash fields, the bytes are - * specified in little-endian order. For example: - * toeplitz_hash_ipv4_0_3 bits 7:0 holds seed byte 0 - * toeplitz_hash_ipv4_0_3 bits 15:8 holds seed byte 1 - * toeplitz_hash_ipv4_0_3 bits 23:16 holds seed byte 2 - * toeplitz_hash_ipv4_0_3 bits 31:24 holds seed byte 3 - */ - A_UINT32 toeplitz_hash_ipv4_0_3; + A_UINT32 tlv_header; + /** + * @brief lro_enable - indicates whether lro is enabled + * [0] LRO Enable + */ + A_UINT32 lro_enable; + /** + * @brief tcp_flag_u32 - mask of which TCP flags to check and + * values to check for + * [8:0] TCP flag values - If the TCP flags from the packet do not match + * the values in this field after masking with TCP flags mask below, + * LRO eligible will not be set + * [17:9] TCP flags mask - Mask field for comparing the TCP values + * provided above with the TCP flags field in the received packet + * Use WMI_LRO_INFO_TCP_FLAG_VALS and WMI_LRO_INFO_TCP_FLAGS_MASK + * macros to isolate the mask field and values field that are packed + * into this u32 "word". + */ + A_UINT32 tcp_flag_u32; + /** + * @brief toeplitz_hash_ipv4 - contains seed needed to compute + * the flow id 5-tuple toeplitz hash for IPv4 packets. Contains + * bytes 0 to 3 + * + * In this and all the below toeplitz_hash fields, the bytes are + * specified in little-endian order. For example: + * toeplitz_hash_ipv4_0_3 bits 7:0 holds seed byte 0 + * toeplitz_hash_ipv4_0_3 bits 15:8 holds seed byte 1 + * toeplitz_hash_ipv4_0_3 bits 23:16 holds seed byte 2 + * toeplitz_hash_ipv4_0_3 bits 31:24 holds seed byte 3 + */ + A_UINT32 toeplitz_hash_ipv4_0_3; - /** - * @brief toeplitz_hash_ipv4 - contains seed needed to compute - * the flow id 5-tuple toeplitz hash for IPv4 packets. Contains - * bytes 4 to 7 - */ - A_UINT32 toeplitz_hash_ipv4_4_7; + /** + * @brief toeplitz_hash_ipv4 - contains seed needed to compute + * the flow id 5-tuple toeplitz hash for IPv4 packets. Contains + * bytes 4 to 7 + */ + A_UINT32 toeplitz_hash_ipv4_4_7; - /** - * @brief toeplitz_hash_ipv4 - contains seed needed to compute - * the flow id 5-tuple toeplitz hash for IPv4 packets. Contains - * bytes 8 to 11 - */ - A_UINT32 toeplitz_hash_ipv4_8_11; + /** + * @brief toeplitz_hash_ipv4 - contains seed needed to compute + * the flow id 5-tuple toeplitz hash for IPv4 packets. Contains + * bytes 8 to 11 + */ + A_UINT32 toeplitz_hash_ipv4_8_11; - /** - * @brief toeplitz_hash_ipv4 - contains seed needed to compute - * the flow id 5-tuple toeplitz hash for IPv4 packets. Contains - * bytes 12 to 15 - */ - A_UINT32 toeplitz_hash_ipv4_12_15; + /** + * @brief toeplitz_hash_ipv4 - contains seed needed to compute + * the flow id 5-tuple toeplitz hash for IPv4 packets. Contains + * bytes 12 to 15 + */ + A_UINT32 toeplitz_hash_ipv4_12_15; - /** - * @brief toeplitz_hash_ipv4 - contains seed needed to compute - * the flow id 5-tuple toeplitz hash for IPv4 packets. Contains - * byte 16 - */ - A_UINT32 toeplitz_hash_ipv4_16; + /** + * @brief toeplitz_hash_ipv4 - contains seed needed to compute + * the flow id 5-tuple toeplitz hash for IPv4 packets. Contains + * byte 16 + */ + A_UINT32 toeplitz_hash_ipv4_16; - /** - * @brief toeplitz_hash_ipv6 - contains seed needed to compute - * the flow id 5-tuple toeplitz hash for IPv6 packets. Contains - * bytes 0 to 3 - */ - A_UINT32 toeplitz_hash_ipv6_0_3; + /** + * @brief toeplitz_hash_ipv6 - contains seed needed to compute + * the flow id 5-tuple toeplitz hash for IPv6 packets. Contains + * bytes 0 to 3 + */ + A_UINT32 toeplitz_hash_ipv6_0_3; - /** - * @brief toeplitz_hash_ipv6 - contains seed needed to compute - * the flow id 5-tuple toeplitz hash for IPv6 packets. Contains - * bytes 4 to 7 - */ - A_UINT32 toeplitz_hash_ipv6_4_7; + /** + * @brief toeplitz_hash_ipv6 - contains seed needed to compute + * the flow id 5-tuple toeplitz hash for IPv6 packets. Contains + * bytes 4 to 7 + */ + A_UINT32 toeplitz_hash_ipv6_4_7; - /** - * @brief toeplitz_hash_ipv6 - contains seed needed to compute - * the flow id 5-tuple toeplitz hash for IPv6 packets. Contains - * bytes 8 to 11 - */ - A_UINT32 toeplitz_hash_ipv6_8_11; + /** + * @brief toeplitz_hash_ipv6 - contains seed needed to compute + * the flow id 5-tuple toeplitz hash for IPv6 packets. Contains + * bytes 8 to 11 + */ + A_UINT32 toeplitz_hash_ipv6_8_11; - /** - * @brief toeplitz_hash_ipv6 - contains seed needed to compute - * the flow id 5-tuple toeplitz hash for IPv6 packets. Contains - * bytes 12 to 15 - */ - A_UINT32 toeplitz_hash_ipv6_12_15; + /** + * @brief toeplitz_hash_ipv6 - contains seed needed to compute + * the flow id 5-tuple toeplitz hash for IPv6 packets. Contains + * bytes 12 to 15 + */ + A_UINT32 toeplitz_hash_ipv6_12_15; - /** - * @brief toeplitz_hash_ipv6 - contains seed needed to compute - * the flow id 5-tuple toeplitz hash for IPv6 packets. Contains - * bytes 16 to 19 - */ - A_UINT32 toeplitz_hash_ipv6_16_19; + /** + * @brief toeplitz_hash_ipv6 - contains seed needed to compute + * the flow id 5-tuple toeplitz hash for IPv6 packets. Contains + * bytes 16 to 19 + */ + A_UINT32 toeplitz_hash_ipv6_16_19; - /** - * @brief toeplitz_hash_ipv6 - contains seed needed to compute - * the flow id 5-tuple toeplitz hash for IPv6 packets. Contains - * bytes 20 to 22 - */ - A_UINT32 toeplitz_hash_ipv6_20_23; + /** + * @brief toeplitz_hash_ipv6 - contains seed needed to compute + * the flow id 5-tuple toeplitz hash for IPv6 packets. Contains + * bytes 20 to 22 + */ + A_UINT32 toeplitz_hash_ipv6_20_23; - /** - * @brief toeplitz_hash_ipv6 - contains seed needed to compute - * the flow id 5-tuple toeplitz hash for IPv6 packets. Contains - * bytes 24 to 27 - */ - A_UINT32 toeplitz_hash_ipv6_24_27; + /** + * @brief toeplitz_hash_ipv6 - contains seed needed to compute + * the flow id 5-tuple toeplitz hash for IPv6 packets. Contains + * bytes 24 to 27 + */ + A_UINT32 toeplitz_hash_ipv6_24_27; - /** - * @brief toeplitz_hash_ipv6 - contains seed needed to compute - * the flow id 5-tuple toeplitz hash for IPv6 packets. Contains - * bytes 28 to 31 - */ - A_UINT32 toeplitz_hash_ipv6_28_31; + /** + * @brief toeplitz_hash_ipv6 - contains seed needed to compute + * the flow id 5-tuple toeplitz hash for IPv6 packets. Contains + * bytes 28 to 31 + */ + A_UINT32 toeplitz_hash_ipv6_28_31; - /** - * @brief toeplitz_hash_ipv6 - contains seed needed to compute - * the flow id 5-tuple toeplitz hash for IPv6 packets. Contains - * bytes 32 to 35 - */ - A_UINT32 toeplitz_hash_ipv6_32_35; + /** + * @brief toeplitz_hash_ipv6 - contains seed needed to compute + * the flow id 5-tuple toeplitz hash for IPv6 packets. Contains + * bytes 32 to 35 + */ + A_UINT32 toeplitz_hash_ipv6_32_35; - /** - * @brief toeplitz_hash_ipv6 - contains seed needed to compute - * the flow id 5-tuple toeplitz hash for IPv6 packets. Contains - * bytes 36 to 39 - */ - A_UINT32 toeplitz_hash_ipv6_36_39; + /** + * @brief toeplitz_hash_ipv6 - contains seed needed to compute + * the flow id 5-tuple toeplitz hash for IPv6 packets. Contains + * bytes 36 to 39 + */ + A_UINT32 toeplitz_hash_ipv6_36_39; - /** - * @brief toeplitz_hash_ipv6 - contains seed needed to compute - * the flow id 5-tuple toeplitz hash for IPv6 packets. Contains - * byte 40 - */ - A_UINT32 toeplitz_hash_ipv6_40; + /** + * @brief toeplitz_hash_ipv6 - contains seed needed to compute + * the flow id 5-tuple toeplitz hash for IPv6 packets. Contains + * byte 40 + */ + A_UINT32 toeplitz_hash_ipv6_40; } wmi_lro_info_cmd_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_transfer_data_to_flash_cmd_fixed_param - */ - A_UINT32 tlv_header; - /* flash offset to write, starting from 0 */ - A_UINT32 offset; - /* vaild data length in buffer, unit: byte */ - A_UINT32 length; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_transfer_data_to_flash_cmd_fixed_param */ + A_UINT32 offset; /* flash offset to write, starting from 0 */ + A_UINT32 length; /* vaild data length in buffer, unit: byte */ } wmi_transfer_data_to_flash_cmd_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_transfer_data_to_flash_complete_event_fixed_param - */ - A_UINT32 tlv_header; - /* Return status. 0 for success, non-zero otherwise */ - A_UINT32 status; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_transfer_data_to_flash_complete_event_fixed_param */ + /** Return status. 0 for success, non-zero otherwise */ + A_UINT32 status; } wmi_transfer_data_to_flash_complete_event_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_read_data_from_flash_cmd_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 offset; /* flash offset to read, starting from 0 */ - A_UINT32 length; /* data length to read, unit: byte */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_read_data_from_flash_cmd_fixed_param */ + A_UINT32 offset; /* flash offset to read, starting from 0 */ + A_UINT32 length; /* data length to read, unit: byte */ } wmi_read_data_from_flash_cmd_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_read_data_from_flash_event_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 status; /* Return status. 0 for success, non-zero otherwise */ - A_UINT32 offset; /* flash offset reading from, starting from 0 */ - A_UINT32 length; /* length of data being reported, unit: byte */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_read_data_from_flash_event_fixed_param */ + A_UINT32 status; /* Return status. 0 for success, non-zero otherwise */ + A_UINT32 offset; /* flash offset reading from, starting from 0 */ + A_UINT32 length; /* length of data being reported, unit: byte */ } wmi_read_data_from_flash_event_fixed_param; typedef enum { - ENHANCED_MCAST_FILTER_DISABLED, - ENHANCED_MCAST_FILTER_ENABLED + ENHANCED_MCAST_FILTER_DISABLED, + ENHANCED_MCAST_FILTER_ENABLED } ENHANCED_MCAST_FILTER_CONFIG; /* * Command to enable/disable filtering of multicast IP with unicast mac */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_config_enhanced_mcast_filter_fixed_param - */ - A_UINT32 tlv_header; - /* Unique id identifying the VDEV */ - A_UINT32 vdev_id; - /* 1 = enable 0 = disable (see ENHANCED_MCAST_FILTER_CONFIG) */ - A_UINT32 enable; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_config_enhanced_mcast_filter_fixed_param */ + /* Unique id identifying the VDEV */ + A_UINT32 vdev_id; + /* 1 = enable 0 = disable (see ENHANCED_MCAST_FILTER_CONFIG) */ + A_UINT32 enable; } wmi_config_enhanced_mcast_filter_cmd_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_vdev_wisa_cmd_fixed_param - */ - A_UINT32 tlv_header; - /* unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; - /* WISA enable / disable mode */ - A_UINT32 wisa_mode; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_wisa_cmd_fixed_param */ + A_UINT32 tlv_header; + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** WISA enable / disable mode */ + A_UINT32 wisa_mode; } wmi_vdev_wisa_cmd_fixed_param; /* * This structure is used to report SMPS force mode set complete to host. */ typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_sta_smps_force_mode_complete_event_fixed_param - */ - A_UINT32 tlv_header; - /* Unique id identifying the VDEV */ - A_UINT32 vdev_id; - /* Return status. 0 for success, non-zero otherwise */ - A_UINT32 status; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_sta_smps_force_mode_complete_event_fixed_param */ + /* Unique id identifying the VDEV */ + A_UINT32 vdev_id; + /* Return status. 0 for success, non-zero otherwise */ + A_UINT32 status; } wmi_sta_smps_force_mode_complete_event_fixed_param; /* * This structure is used to report SCPC calibrated data to host. */ typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_scpc_event_fixed_param - */ - A_UINT32 tlv_header; - /* number of BDF patches. Each patch contains offset, length and data */ - A_UINT32 num_patch; - /* This TLV is followed by another TLV of array of bytes - * A_UINT8 data[]; - * This data array contains, for example - * patch1 offset(byte3~0), patch1 data length(byte7~4), - * patch1 data(byte11~8) - * patch2 offset(byte15~12), patch2 data length(byte19~16), - * patch2 data(byte47~20) - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_scpc_event_fixed_param */ + /** number of BDF patches. Each patch contains offset, length and data */ + A_UINT32 num_patch; +/* This TLV is followed by another TLV of array of bytes + * A_UINT8 data[]; + * This data array contains, for example + * patch1 offset(byte3~0), patch1 data length(byte7~4), patch1 data(byte11~8) + * patch2 offset(byte15~12), patch2 data length(byte19~16), patch2 data(byte47~20) + * + */ } wmi_scpc_event_fixed_param; /* bpf interface structure */ typedef struct wmi_bpf_get_capability_cmd_s { - A_UINT32 tlv_header; - A_UINT32 reserved; /* reserved for future use - must be filled with 0x0 */ + A_UINT32 tlv_header; + A_UINT32 reserved; /* reserved for future use - must be filled with 0x0 */ } wmi_bpf_get_capability_cmd_fixed_param; typedef struct wmi_bpf_capability_info_evt_s { - A_UINT32 tlv_header; - A_UINT32 bpf_version; /* fw's implement version */ - A_UINT32 max_bpf_filters; /* max filters that fw supports */ - A_UINT32 max_bytes_for_bpf_inst; /* the maximum bytes that can be used as bpf instructions */ + A_UINT32 tlv_header; + A_UINT32 bpf_version; /* fw's implement version */ + A_UINT32 max_bpf_filters; /* max filters that fw supports */ + A_UINT32 max_bytes_for_bpf_inst; /* the maximum bytes that can be used as bpf instructions */ } wmi_bpf_capability_info_evt_fixed_param; /* bit 0 of flags: report counters */ #define WMI_BPF_GET_VDEV_STATS_FLAG_CTR_S 0 #define WMI_BPF_GET_VDEV_STATS_FLAG_CTR_M 0x1 typedef struct wmi_bpf_get_vdev_stats_cmd_s { - A_UINT32 tlv_header; - A_UINT32 flags; - A_UINT32 vdev_id; + A_UINT32 tlv_header; + A_UINT32 flags; + A_UINT32 vdev_id; } wmi_bpf_get_vdev_stats_cmd_fixed_param; typedef struct wmi_bpf_vdev_stats_info_evt_s { - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 num_filters; - A_UINT32 num_checked_pkts; - A_UINT32 num_dropped_pkts; - } wmi_bpf_vdev_stats_info_evt_fixed_param; + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 num_filters; + A_UINT32 num_checked_pkts; + A_UINT32 num_dropped_pkts; +} wmi_bpf_vdev_stats_info_evt_fixed_param; typedef struct wmi_bpf_set_vdev_instructions_cmd_s { - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 filter_id; - A_UINT32 bpf_version; /* host bpf version */ - A_UINT32 total_length; - A_UINT32 current_offset; - A_UINT32 current_length; - /* - * The TLV follows: - * A_UINT8 buf_inst[]; //Variable length buffer for the instuctions - */ + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 filter_id; + A_UINT32 bpf_version; /* host bpf version */ + A_UINT32 total_length; + A_UINT32 current_offset; + A_UINT32 current_length; +/* + * The TLV follows: + * A_UINT8 buf_inst[]; <-- Variable length buffer for the instuctions + */ } wmi_bpf_set_vdev_instructions_cmd_fixed_param; #define BPF_FILTER_ID_ALL 0xFFFFFFFF typedef struct wmi_bpf_del_vdev_instructions_cmd_s { - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 filter_id; /* BPF_FILTER_ID_ALL means delete all */ + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 filter_id; /* BPF_FILTER_ID_ALL means delete all */ } wmi_bpf_del_vdev_instructions_cmd_fixed_param; #define AES_BLOCK_LEN 16 /* in bytes */ @@ -16649,758 +15920,571 @@ typedef struct wmi_bpf_del_vdev_instructions_cmd_s { /* WMI_PDEV_FIPS_CMDID */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_fips_cmd_fixed_param - */ - A_UINT32 tlv_header; - union { - /* OBSOLETE - will be removed once all refs are gone */ - A_UINT32 mac_id; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - }; - A_UINT32 fips_cmd; /* FIPS_ENCRYPT or FIPS_DECRYPT */ - /* FIPS_ENGINE_AES_CTR or FIPS_ENGINE_AES_MIC */ - A_UINT32 mode; - /* FIPS_KEY_LENGTH_128 or FIPS_KEY_LENGTH_256 (units = bytes) */ - A_UINT32 key_len; - A_UINT8 key[WMI_MAX_KEY_LEN]; /* Key */ - A_UINT32 data_len; /* data length */ - /* - * Following this structure is the TLV: - * A_UINT32 data[1]; - In Data (keep this in the end) - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_fips_cmd_fixed_param */ + + union { + A_UINT32 mac_id; /* OBSOLETE - will be removed once all refs are gone */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + }; + + A_UINT32 fips_cmd; /* FIPS_ENCRYPT or FIPS_DECRYPT */ + A_UINT32 mode; /* FIPS_ENGINE_AES_CTR or FIPS_ENGINE_AES_MIC */ + A_UINT32 key_len; /* FIPS_KEY_LENGTH_128 or FIPS_KEY_LENGTH_256 (units = bytes) */ + A_UINT8 key[WMI_MAX_KEY_LEN]; /* Key */ + A_UINT32 data_len; /* data length */ +/* + * Following this structure is the TLV: + * A_UINT32 data[1]; <-- In Data (keep this in the end) + */ } wmi_pdev_fips_cmd_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_smart_ant_enable_cmd_fixed_param - */ - A_UINT32 tlv_header; - union { - /* OBSOLETE - will be removed once all refs are gone */ - A_UINT32 mac_id; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - }; - A_UINT32 enable; /* 1:enable, 0:disable */ - /* 1:GPIO parallel mode, 0:GPIO serial mode */ - A_UINT32 mode; - A_UINT32 rx_antenna; /* rx antenna */ - A_UINT32 tx_default_antenna; /* tx default antenna */ - /* - * Following this structure is the TLV: - * wmi_pdev_smart_ant_gpio_handle - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_smart_ant_enable_cmd_fixed_param */ + union { + A_UINT32 mac_id; /* OBSOLETE - will be removed once all refs are gone */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + }; + A_UINT32 enable; /* 1:enable, 0:disable */ + A_UINT32 mode; /* 1:GPIO parallel mode, 0:GPIO serial mode */ + A_UINT32 rx_antenna; /* rx antenna */ + A_UINT32 tx_default_antenna; /* tx default antenna */ + /* + * Following this structure is the TLV: + * wmi_pdev_smart_ant_gpio_handle + */ } wmi_pdev_smart_ant_enable_cmd_fixed_param; /** GPIO pins/function values to control antennas */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_smart_ant_gpio_handle - */ - A_UINT32 tlv_header; - /* For serial: index 0-strobe index 1-data, For Parallel: per stream */ - A_UINT32 gpio_pin; - A_UINT32 gpio_func; /* GPIO function values for Smart Antenna */ - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_smart_ant_gpio_handle */ + A_UINT32 gpio_pin; /* For serial: index 0-strobe index 1-data, For Parallel: per stream */ + A_UINT32 gpio_func; /* GPIO function values for Smart Antenna */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; } wmi_pdev_smart_ant_gpio_handle; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_smart_ant_set_rx_antenna_cmd_fixed_param - */ - A_UINT32 tlv_header; - union { - /* OBSOLETE - will be removed once all refs are gone */ - A_UINT32 mac_id; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - }; - A_UINT32 rx_antenna; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_smart_ant_set_rx_antenna_cmd_fixed_param */ + union { + A_UINT32 mac_id; /* OBSOLETE - will be removed once all refs are gone */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + }; + A_UINT32 rx_antenna; } wmi_pdev_smart_ant_set_rx_antenna_cmd_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_tx_antenna_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** unique id identifying the vdev, generated by the caller */ - A_UINT32 vdev_id; /* ID of the vdev this peer belongs to */ - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /* - * Following this structure is the TLV: - * wmi_peer_smart_ant_set_tx_antenna_series - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_tx_antenna_cmd_fixed_param */ + /** unique id identifying the vdev, generated by the caller */ + A_UINT32 vdev_id; /* ID of the vdev this peer belongs to */ + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /* + * Following this structure is the TLV: + * wmi_peer_smart_ant_set_tx_antenna_series + */ } wmi_peer_smart_ant_set_tx_antenna_cmd_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_tx_antenna_series - */ - A_UINT32 tlv_header; - /* antenna array */ - A_UINT32 antenna_series; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_tx_antenna_series */ + /* antenna array */ + A_UINT32 antenna_series; } wmi_peer_smart_ant_set_tx_antenna_series; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_train_antenna_param - */ - A_UINT32 tlv_header; - /* rate array */ - A_UINT32 train_rate_series; - /* antenna array */ - A_UINT32 train_antenna_series; - /* Rate flags */ - /* TODO: For future use? */ - A_UINT32 rc_flags; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_train_antenna_param */ + /* rate array */ + A_UINT32 train_rate_series; + /* antenna array */ + A_UINT32 train_antenna_series; + /* Rate flags */ + /* TODO: For future use? */ + A_UINT32 rc_flags; } wmi_peer_smart_ant_set_train_antenna_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_train_antenna_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** unique id identifying the VDEV, generated by the caller */ - A_UINT32 vdev_id; /* ID of the vdev this peer belongs to */ - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /* num packets; 0-stop training */ - A_UINT32 num_pkts; - /* - * Following this structure is the TLV: - * wmi_peer_smart_ant_set_train_antenna_param - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_train_antenna_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; /* ID of the vdev this peer belongs to */ + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /* num packets; 0-stop training */ + A_UINT32 num_pkts; + /* + * Following this structure is the TLV: + * wmi_peer_smart_ant_set_train_antenna_param + */ } wmi_peer_smart_ant_set_train_antenna_cmd_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_node_config_ops_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** unique id identifying the vdev, generated by the caller */ - A_UINT32 vdev_id; /* ID of the vdev this peer belongs to */ - /** peer MAC address */ - wmi_mac_addr peer_macaddr; - /* command id*/ - A_UINT32 cmd_id; - /* number of arguments passed */ - A_UINT32 args_count; - /* - * Following this structure is the TLV: - * A_UINT32 args[]; // argument list - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_smart_ant_set_node_config_ops_cmd_fixed_param */ + /** unique id identifying the vdev, generated by the caller */ + A_UINT32 vdev_id; /* ID of the vdev this peer belongs to */ + /** peer MAC address */ + wmi_mac_addr peer_macaddr; + /* command id*/ + A_UINT32 cmd_id; + /* number of arguments passed */ + A_UINT32 args_count; +/* + * Following this structure is the TLV: + * A_UINT32 args[]; <-- argument list + */ } wmi_peer_smart_ant_set_node_config_ops_cmd_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_set_ant_ctrl_chain - */ - A_UINT32 tlv_header; - A_UINT32 antCtrlChain; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_ant_ctrl_chain */ + A_UINT32 antCtrlChain; + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; } wmi_pdev_set_ant_ctrl_chain; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_set_ant_switch_tbl_cmd_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 mac_id; /* MAC ID */ - A_UINT32 antCtrlCommon1; - A_UINT32 antCtrlCommon2; - /* - * Following this structure is the TLV: - * wmi_pdev_set_ant_ctrl_chain - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_ant_switch_tbl_cmd_fixed_param */ + A_UINT32 mac_id; /* MAC ID */ + A_UINT32 antCtrlCommon1; + A_UINT32 antCtrlCommon2; + /* + * Following this structure is the TLV: + * wmi_pdev_set_ant_ctrl_chain + */ } wmi_pdev_set_ant_switch_tbl_cmd_fixed_param; typedef struct { - /* TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_set_ctl_table_cmd_fixed_param - */ - A_UINT32 tlv_header; - union { - /* OBSOLETE - will be removed once all refs are gone */ - A_UINT32 mac_id; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - }; - /** len of CTL info */ - A_UINT32 ctl_len; - /* ctl array (len adjusted to number of words) - * Following this structure is the TLV: - * A_UINT32 ctl_info[1]; - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_ctl_table_cmd_fixed_param */ + union { + A_UINT32 mac_id; /* OBSOLETE - will be removed once all refs are gone */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + }; + /** len of CTL info */ + A_UINT32 ctl_len; + /* ctl array (len adjusted to number of words). + * Following this structure is the TLV: + * A_UINT32 ctl_info[1]; + */ } wmi_pdev_set_ctl_table_cmd_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_set_mimogain_table_cmd_fixed_param - */ - A_UINT32 tlv_header; - union { - /* OBSOLETE - will be removed once all refs are gone */ - A_UINT32 mac_id; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - }; - A_UINT32 mimogain_info; /* see WMI_MIMOGAIN macros */ - /* - * Bit 7:0 len of array gain table - * Bit 8 bypass multi chain gain or not - */ - /* - * array gain table(s) (len adjusted to number of words). - * Following this structure is the TLV: - * A_UINT32 arraygain_tbl[1]; - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_mimogain_table_cmd_fixed_param */ + union { + A_UINT32 mac_id; /* OBSOLETE - will be removed once all refs are gone */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + }; + A_UINT32 mimogain_info; /* see WMI_MIMOGAIN macros */ + /* + * Bit 7:0 len of array gain table + * Bit 8 bypass multi chain gain or not + */ + /* array gain table(s) (len adjusted to number of words). + * Following this structure is the TLV: + * A_UINT32 arraygain_tbl[1]; + */ } wmi_pdev_set_mimogain_table_cmd_fixed_param; #define WMI_MIMOGAIN_ARRAY_GAIN_LEN_S 0 #define WMI_MIMOGAIN_ARRAY_GAIN_LEN (0xff << WMI_MIMOGAIN_ARRAY_GAIN_LEN_S) -#define WMI_MIMOGAIN_ARRAY_GAIN_LEN_GET(x) WMI_F_MS(x, WMI_MIMOGAIN_ARRAY_GAIN_LEN) -#define WMI_MIMOGAIN_ARRAY_GAIN_LEN_SET(x, z) WMI_F_RMW(x, z, WMI_MIMOGAIN_ARRAY_GAIN_LEN) +#define WMI_MIMOGAIN_ARRAY_GAIN_LEN_GET(x) WMI_F_MS(x,WMI_MIMOGAIN_ARRAY_GAIN_LEN) +#define WMI_MIMOGAIN_ARRAY_GAIN_LEN_SET(x,z) WMI_F_RMW(x,z,WMI_MIMOGAIN_ARRAY_GAIN_LEN) #define WMI_MIMOGAIN_MULTI_CHAIN_BYPASS_S 8 #define WMI_MIMOGAIN_MULTI_CHAIN_BYPASS (0x1 << WMI_MIMOGAIN_MULTI_CHAIN_BYPASS_S) -#define WMI_MIMOGAIN_MULTI_CHAIN_BYPASS_GET(x) WMI_F_MS(x, WMI_MIMOGAIN_MULTI_CHAIN_BYPASS) -#define WMI_MIMOGAIN_MULTI_CHAIN_BYPASS_SET(x, z) WMI_F_RMW(x, z, WMI_MIMOGAIN_MULTI_CHAIN_BYPASS) +#define WMI_MIMOGAIN_MULTI_CHAIN_BYPASS_GET(x) WMI_F_MS(x,WMI_MIMOGAIN_MULTI_CHAIN_BYPASS) +#define WMI_MIMOGAIN_MULTI_CHAIN_BYPASS_SET(x,z) WMI_F_RMW(x,z,WMI_MIMOGAIN_MULTI_CHAIN_BYPASS) typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_fwtest_set_param_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** parameter id */ - A_UINT32 param_id; - /** parameter value */ - A_UINT32 param_value; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_fwtest_set_param_cmd_fixed_param */ + /** parameter id */ + A_UINT32 param_id; + /** parameter value */ + A_UINT32 param_value; } wmi_fwtest_set_param_cmd_fixed_param; -/* Expressed in 1 part in 1000 (permille) */ -#define WMI_ATF_DENOMINATION 1000 +#define WMI_ATF_DENOMINATION 1000 /* Expressed in 1 part in 1000 (permille) */ -#define WMI_ATF_SSID_FAIR_SCHED 0 /** Fair ATF scheduling for vdev */ -#define WMI_ATF_SSID_STRICT_SCHED 1 /** Strict ATF scheduling for vdev */ +#define WMI_ATF_SSID_FAIR_SCHED 0 /** fair ATF scheduling for vdev */ +#define WMI_ATF_SSID_STRICT_SCHED 1 /** strict ATF scheduling for vdev */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_atf_peer_info - */ - A_UINT32 tlv_header; - wmi_mac_addr peer_macaddr; - A_UINT32 atf_units; /* Based on 1 part in 1000 (per mille) */ - A_UINT32 atf_groupid; /* Group Id of the peers for ATF SSID grouping */ - /* Peer congestion threshold for future use */ - A_UINT32 atf_units_reserved; + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_atf_peer_info */ + A_UINT32 tlv_header; + wmi_mac_addr peer_macaddr; + A_UINT32 atf_units; /* Based on 1 part in 1000 (per mille) */ + A_UINT32 atf_groupid; /* Group Id of the peers for ATF SSID grouping */ + A_UINT32 atf_units_reserved; /* Peer congestion threshold for future use */ } wmi_atf_peer_info; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_atf_request_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 num_peers; - /* - * Following this structure is the TLV: - * struct wmi_atf_peer_info peer_info[num_peers]; - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_atf_request_fixed_param */ + A_UINT32 num_peers; + /* + * Following this structure is the TLV: + * struct wmi_atf_peer_info peer_info[num_peers]; + */ } wmi_peer_atf_request_fixed_param; /* Structure for Bandwidth Fairness peer information */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_bwf_peer_info - */ - A_UINT32 tlv_header; - wmi_mac_addr peer_macaddr; - /* BWF guaranteed_bandwidth for the peers in mbps */ - A_UINT32 bwf_guaranteed_bandwidth; - /* - * BWF Maximum airtime percentage that can be allocated - * to the peer to meet the guaranteed_bandwidth - */ - A_UINT32 bwf_max_airtime; - /* BWF priority of the peer to allocate the tokens dynamically */ - A_UINT32 bwf_peer_priority; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_bwf_peer_info */ + A_UINT32 tlv_header; + wmi_mac_addr peer_macaddr; + A_UINT32 bwf_guaranteed_bandwidth; /* BWF guaranteed_bandwidth for the peers in mbps */ + A_UINT32 bwf_max_airtime; /* BWF Maximum airtime percentage that can be allocated to the peer to meet the guaranteed_bandwidth */ + A_UINT32 bwf_peer_priority; /* BWF priority of the peer to allocate the tokens dynamically */ } wmi_bwf_peer_info; /* Structure for Bandwidth Fairness peer request */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_bwf_request_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 num_peers; - /* - * Following this structure is the TLV: - * struct wmi_bwf_peer_info peer_info[num_peers]; - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_bwf_request_fixed_param */ + A_UINT32 num_peers; + /* + * Following this structure is the TLV: + * struct wmi_bwf_peer_info peer_info[num_peers]; + */ } wmi_peer_bwf_request_fixed_param; - /* Equal distribution of ATF air time within an VDEV. */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_vdev_atf_request_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; - A_UINT32 peer_atf_units; /* Per peer ATF units (per mille). */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_atf_request_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 peer_atf_units; /* Per peer ATF units (per mille). */ } wmi_vdev_atf_request_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_get_ani_cck_config_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - /** parameter */ - A_UINT32 param; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_get_ani_cck_config_cmd_fixed_param */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + /** parameter */ + A_UINT32 param; } wmi_pdev_get_ani_cck_config_cmd_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_get_ani_ofdm_config_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - /** parameter */ - A_UINT32 param; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_get_ani_ofdm_config_cmd_fixed_param */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + /** parameter */ + A_UINT32 param; } wmi_pdev_get_ani_ofdm_config_cmd_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_WMI_QBOOST_CFG_CMD_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 vdev_id; /* ID of the vdev this peer belongs to */ - A_UINT32 qb_enable; - wmi_mac_addr peer_macaddr; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_QBOOST_CFG_CMD_fixed_param */ + A_UINT32 vdev_id; /* ID of the vdev this peer belongs to */ + A_UINT32 qb_enable; + wmi_mac_addr peer_macaddr; } WMI_QBOOST_CFG_CMD_fixed_param; #define WMI_INST_STATS_INVALID_RSSI 0 typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_inst_rssi_stats_resp_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 iRSSI; /* dBm above the noise floor */ - /* peer MAC address */ - wmi_mac_addr peer_macaddr; - A_UINT32 vdev_id; /* ID of the vdev this peer belongs to */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_inst_rssi_stats_resp_fixed_param */ + A_UINT32 iRSSI; /* dBm above the noise floor */ + /* peer MAC address */ + wmi_mac_addr peer_macaddr; + A_UINT32 vdev_id; /* ID of the vdev this peer belongs to */ } wmi_inst_rssi_stats_resp_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_cck_ofdm_rate_info - */ - A_UINT32 tlv_header; - A_UINT32 ratecode_legacy; /* Rate code for CCK OFDM */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_cck_ofdm_rate_info */ + A_UINT32 ratecode_legacy; /* Rate code for CCK OFDM */ } wmi_peer_cck_ofdm_rate_info; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_mcs_rate_info - */ - A_UINT32 tlv_header; - A_UINT32 ratecode_20; /* Rate code for 20MHz BW */ - A_UINT32 ratecode_40; /* Rate code for 40MHz BW */ - A_UINT32 ratecode_80; /* Rate code for 80MHz BW */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_mcs_rate_info */ + A_UINT32 ratecode_20; /* Rate code for 20MHz BW */ + A_UINT32 ratecode_40; /* Rate code for 40MHz BW */ + A_UINT32 ratecode_80; /* Rate code for 80MHz BW */ } wmi_peer_mcs_rate_info; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_ratecode_list_event_fixed_param - */ - A_UINT32 tlv_header; - wmi_mac_addr peer_macaddr; - A_UINT32 ratecount; /* Max Rate count for each mode */ - A_UINT32 vdev_id; /* ID of the vdev this peer belongs to */ - /* - * Following this structure are the TLV - * struct wmi_peer_cck_ofdm_rate_info; - * struct wmi_peer_mcs_rate_info; - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_ratecode_list_event_fixed_param */ + wmi_mac_addr peer_macaddr; + A_UINT32 ratecount; /* Max Rate count for each mode */ + A_UINT32 vdev_id; /* ID of the vdev this peer belongs to */ + /* + * Following this structure are the TLV: + * struct wmi_peer_cck_ofdm_rate_info; + * struct wmi_peer_mcs_rate_info; + */ } wmi_peer_ratecode_list_event_fixed_param; typedef struct wmi_wds_addr_event { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_wds_addr_event_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 event_type[4]; - wmi_mac_addr peer_mac; - wmi_mac_addr dest_mac; - A_UINT32 vdev_id; /* ID of the vdev this peer belongs to */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wds_addr_event_fixed_param */ + A_UINT32 event_type[4]; + wmi_mac_addr peer_mac; + wmi_mac_addr dest_mac; + A_UINT32 vdev_id; /* ID of the vdev this peer belongs to */ } wmi_wds_addr_event_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_peer_sta_ps_statechange_event_fixed_param - */ - A_UINT32 tlv_header; - wmi_mac_addr peer_macaddr; - A_UINT32 peer_ps_state; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_sta_ps_statechange_event_fixed_param */ + wmi_mac_addr peer_macaddr; + A_UINT32 peer_ps_state; } wmi_peer_sta_ps_statechange_event_fixed_param; /* WMI_PDEV_FIPS_EVENTID */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_fips_event_fixed_param - */ - A_UINT32 tlv_header; - union { - /* OBSOLETE - will be removed once all refs are gone */ - A_UINT32 mac_id; - /** pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - }; - /* Error status: 0 (no err), 1, or OPER_TIMEOUT */ - A_UINT32 error_status; - A_UINT32 data_len; /* Data length */ - /* - * Following this structure is the TLV: - * A_UINT32 data[1]; // Out Data (keep this in the end) - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_fips_event_fixed_param */ + union { + A_UINT32 mac_id; /* OBSOLETE - will be removed once all refs are gone */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + }; + A_UINT32 error_status; /* Error status: 0 (no err), 1, or OPER_TIMEOUT */ + A_UINT32 data_len; /* Data length */ +/* + * Following this structure is the TLV: + * A_UINT32 data[1]; <-- Out Data (keep this in the end) + */ } wmi_pdev_fips_event_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_channel_hopping_event_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 mac_id; /* MAC ID */ - /* Noise threshold iterations with high values */ - A_UINT32 noise_floor_report_iter; - /* Total noise threshold iterations */ - A_UINT32 noise_floor_total_iter; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_channel_hopping_event_fixed_param */ + union { + A_UINT32 mac_id; /* OBSOLETE - will be removed once all refs are gone */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + }; + /* Noise threshold iterations with high values */ + A_UINT32 noise_floor_report_iter; + /* Total noise threshold iterations */ + A_UINT32 noise_floor_total_iter; } wmi_pdev_channel_hopping_event_fixed_param; enum { - WMI_PDEV_RESERVE_AST_ENTRY_OK, - WMI_PDEV_RESERVE_AST_ENTRY_HASH_COLLISION, - WMI_PDEV_RESERVE_AST_ENTRY_CROSSING_AXI_BOUNDARY, + WMI_PDEV_RESERVE_AST_ENTRY_OK, + WMI_PDEV_RESERVE_AST_ENTRY_HASH_COLLISION, + WMI_PDEV_RESERVE_AST_ENTRY_CROSSING_AXI_BOUNDARY, }; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_get_tpc_cmd_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 mac_id; /* MAC ID */ - A_UINT32 rate_flags; - /** - * FLAG_ONE_CHAIN 0x001 - one chain mask - * FLAG_TWO_CHAIN 0x005 - two chain mask - * FLAG_THREE_CHAIN 0x007 - three chain mask - * FLAG_FOUR_CHAIN 0x00F - four chain mask - * FLAG_STBC 0x010 - STBC is set - * FLAG_40MHZ 0x020 - * FLAG_80MHZ 0x040 - * FLAG_160MHZ 0x080 - * FLAG_TXBF 0x0100 - Tx Bf enabled - * FLAG_RTSENA 0x0200 - RTS enabled - * FLAG_CTSENA 0x0400 - CTS enabled - * FLAG_LDPC 0x0800 - LDPC set - * FLAG_SERIES1 0x1000 - - * FLAG_SGI 0x2000 - Short gaurd interval - * FLAG_MU2 0x4000 - MU2 data - * FLAG_MU3 0x8000 - MU3 data - * */ - A_UINT32 nss; - /** - * NSS 0x0 - 0x3 - * */ - A_UINT32 preamble; - /** - * PREAM_OFDM - 0x0 - * PREAM_CCK - 0x1 - * PREAM_HT - 0x2 - * PREAM_VHT - 0x3 - * */ - A_UINT32 hw_rate; - /** - * *** HW_OFDM_RATE *** - * OFDM_48_MBPS - 0x0 - * OFDM_24_MBPS - 0x1 - * OFDM_12_MBPS - 0x2 - * OFDM_6_MBPS - 0x3 - * OFDM_54_MBPS - 0x4 - * OFDM_36_MBPS - 0x5 - * OFDM_18_MBPS - 0x6 - * OFDM_9_MBPS - 0x7 - * - * *** HW_CCK_RATE *** - * CCK_11_LONG_MBPS - 0x0 - * CCK_5_5_LONG_MBPS - 0x1 - * CCK_2_LONG_MBPS - 0x2 - * CCK_1_LONG_MBPS - 0x3 - * CCK_11_SHORT_MBPS - 0x4 - * CCK_5_5_SHORT_MBPS - 0x5 - * CCK_2_SHORT_MBPS - 0x6 - * - * *** HW_HT / VHT_RATE *** - * MCS 0x0 - 0x9 - * */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_get_tpc_cmd_fixed_param */ + union { + A_UINT32 mac_id; /* OBSOLETE - will be removed once all refs are gone */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + }; + A_UINT32 rate_flags; + /** + * FLAG_ONE_CHAIN 0x001 - one chain mask + * FLAG_TWO_CHAIN 0x005 - two chain mask + * FLAG_THREE_CHAIN 0x007 - three chain mask + * FLAG_FOUR_CHAIN 0x00F - four chain mask + * FLAG_STBC 0x010 - STBC is set + * FLAG_40MHZ 0x020 + * FLAG_80MHZ 0x040 + * FLAG_160MHZ 0x080 + * FLAG_TXBF 0x0100 - Tx Bf enabled + * FLAG_RTSENA 0x0200 - RTS enabled + * FLAG_CTSENA 0x0400 - CTS enabled + * FLAG_LDPC 0x0800 - LDPC set + * FLAG_SERIES1 0x1000 - + * FLAG_SGI 0x2000 - Short gaurd interval + * FLAG_MU2 0x4000 - MU2 data + * FLAG_MU3 0x8000 - MU3 data + * */ + A_UINT32 nss; + /** + * NSS 0x0 - 0x3 + * */ + A_UINT32 preamble; + /** + * PREAM_OFDM - 0x0 + * PREAM_CCK - 0x1 + * PREAM_HT - 0x2 + * PREAM_VHT - 0x3 + * */ + A_UINT32 hw_rate; + /** + * *** HW_OFDM_RATE *** + * OFDM_48_MBPS - 0x0 + * OFDM_24_MBPS - 0x1 + * OFDM_12_MBPS - 0x2 + * OFDM_6_MBPS - 0x3 + * OFDM_54_MBPS - 0x4 + * OFDM_36_MBPS - 0x5 + * OFDM_18_MBPS - 0x6 + * OFDM_9_MBPS - 0x7 + * + * *** HW_CCK_RATE *** + * CCK_11_LONG_MBPS - 0x0 + * CCK_5_5_LONG_MBPS - 0x1 + * CCK_2_LONG_MBPS - 0x2 + * CCK_1_LONG_MBPS - 0x3 + * CCK_11_SHORT_MBPS - 0x4 + * CCK_5_5_SHORT_MBPS - 0x5 + * CCK_2_SHORT_MBPS - 0x6 + * + * *** HW_HT / VHT_RATE *** + * MCS 0x0 - 0x9 + * */ } wmi_pdev_get_tpc_cmd_fixed_param; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals - WMITLV_TAG_STRUC_wmi_pdev_get_chip_power_stats_cmd_fixed_param */ - /** - * pdev_id for identifying the MAC See macros - * starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_get_chip_power_stats_cmd_fixed_param */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; } wmi_pdev_get_chip_power_stats_cmd_fixed_param; - typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_tpc_event_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 reserved0; /* for future need */ - /* - * Following this structure is the TLV: - * A_UINT32 tpc[1]; - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_tpc_event_fixed_param */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + /* + * Following this structure is the TLV: + * A_UINT32 tpc[1]; + */ } wmi_pdev_tpc_event_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_event_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 mac_id; /* MAC ID */ - A_UINT32 nfdBr_len; - A_UINT32 nfdBm_len; - A_UINT32 freqNum_len; - /* - * Following this structure is the TLV: - * WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_nfdBr; - * WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_nfdBm; - * WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_freqNum; - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_event_fixed_param */ + union { + A_UINT32 mac_id; /* OBSOLETE - will be removed once all refs are gone */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + }; + A_UINT32 nfdBr_len; + A_UINT32 nfdBm_len; + A_UINT32 freqNum_len; + /* + * Following this structure is the TLV: + * WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_nfdBr; + * WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_nfdBm; + * WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_freqNum; + */ } wmi_pdev_nfcal_power_all_channels_event_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_nfdBr - */ - A_UINT32 tlv_header; - A_UINT32 nfdBr; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_nfdBr */ + A_UINT32 nfdBr; } wmi_pdev_nfcal_power_all_channels_nfdBr; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_nfdBm - */ - A_UINT32 tlv_header; - A_UINT32 nfdBm; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_nfdBm */ + A_UINT32 nfdBm; } wmi_pdev_nfcal_power_all_channels_nfdBm; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_freqNum - */ - A_UINT32 tlv_header; - A_UINT32 freqNum; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_freqNum */ + A_UINT32 freqNum; } wmi_pdev_nfcal_power_all_channels_freqNum; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ani_cck_event_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 cck_level; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ani_cck_event_fixed_param */ + A_UINT32 cck_level; } wmi_ani_cck_event_fixed_param; typedef enum wmi_power_debug_reg_fmt_type { - /* WMI_POWER_DEBUG_REG_FMT_TYPE_ROME -> Dumps following 12 Registers - * SOC_SYSTEM_SLEEP - * WLAN_SYSTEM_SLEEP - * RTC_SYNC_FORCE_WAKE - * MAC_DMA_ISR - * MAC_DMA_TXRX_ISR - * MAC_DMA_ISR_S1 - * MAC_DMA_ISR_S2 - * MAC_DMA_ISR_S3 - * MAC_DMA_ISR_S4 - * MAC_DMA_ISR_S5 - * MAC_DMA_ISR_S6 - * MAC_DMA_ISR_S7 - */ - WMI_POWER_DEBUG_REG_FMT_TYPE_ROME, - WMI_POWER_DEBUG_REG_FMT_TYPE_MAX = 0xf, + /* WMI_POWER_DEBUG_REG_FMT_TYPE_ROME -> Dumps following 12 Registers + * SOC_SYSTEM_SLEEP + * WLAN_SYSTEM_SLEEP + * RTC_SYNC_FORCE_WAKE + * MAC_DMA_ISR + * MAC_DMA_TXRX_ISR + * MAC_DMA_ISR_S1 + * MAC_DMA_ISR_S2 + * MAC_DMA_ISR_S3 + * MAC_DMA_ISR_S4 + * MAC_DMA_ISR_S5 + * MAC_DMA_ISR_S6 + * MAC_DMA_ISR_S7 + */ + WMI_POWER_DEBUG_REG_FMT_TYPE_ROME, + + WMI_POWER_DEBUG_REG_FMT_TYPE_MAX = 0xf, } WMI_POWER_DEBUG_REG_FMT_TYPE; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals - WMITLV_TAG_STRUC_wmi_chip_power_stats_event_fixed_param */ - /* - * maximum range is 35 hours, due to conversion from internal - * 0.03215 ms units to ms - */ - A_UINT32 cumulative_sleep_time_ms; - /* - * maximum range is 35 hours, due to conversion from internal - * 0.03215 ms units to ms - */ - A_UINT32 cumulative_total_on_time_ms; - /* count of number of times chip enterred deep sleep */ - A_UINT32 deep_sleep_enter_counter; - /* Last Timestamp when Chip went to deep sleep */ - A_UINT32 last_deep_sleep_enter_tstamp_ms; - /* - * WMI_POWER_DEBUG_REG_FMT_TYPE enum, describes debug registers - * being dumped as part of the event - */ - A_UINT32 debug_register_fmt; - /* number of debug registers being sent to host */ - A_UINT32 num_debug_register; - /* - * Following this structure is the TLV: - * A_UINT32 debug_registers[num_debug_registers]; - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_chip_power_stats_event_fixed_param */ + A_UINT32 cumulative_sleep_time_ms; /* maximum range is 35 hours, due to conversion from internal 0.03215 ms units to ms */ + A_UINT32 cumulative_total_on_time_ms; /* maximum range is 35 hours, due to conversion from internal 0.03215 ms units to ms */ + A_UINT32 deep_sleep_enter_counter; /* count of number of times chip enterred deep sleep */ + A_UINT32 last_deep_sleep_enter_tstamp_ms; /* Last Timestamp when Chip went to deep sleep */ + A_UINT32 debug_register_fmt; /* WMI_POWER_DEBUG_REG_FMT_TYPE enum, describes debug registers being dumped as part of the event */ + A_UINT32 num_debug_register; /* number of debug registers being sent to host */ + /* + * Following this structure is the TLV: + * A_UINT32 debug_registers[num_debug_registers]; + */ } wmi_pdev_chip_power_stats_event_fixed_param; - typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ani_ofdm_event_fixed_param - */ - A_UINT32 tlv_header; - A_UINT32 ofdm_level; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ani_ofdm_event_fixed_param */ + A_UINT32 ofdm_level; } wmi_ani_ofdm_event_fixed_param; typedef enum wmi_coex_config_type { - /* config interval (arg1 BT, arg2 WLAN) for P2P + PAGE */ - WMI_COEX_CONFIG_PAGE_P2P_TDM = 1, - /* config interval (arg1 BT, arg2 WLAN) for STA + PAGE */ - WMI_COEX_CONFIG_PAGE_STA_TDM = 2, - /* config interval (arg1 BT, arg2 WLAN) for SAP + PAGE */ - WMI_COEX_CONFIG_PAGE_SAP_TDM = 3, - /* config during WLAN connection */ - WMI_COEX_CONFIG_DURING_WLAN_CONN = 4, - /* config to enable/disable BTC */ - WMI_COEX_CONFIG_BTC_ENABLE = 5, - /* config of COEX debug setting */ - WMI_COEX_CONFIG_COEX_DBG = 6, - /* - * config interval (ms units) (arg1 BT, arg2 WLAN) - * for P2P + STA + PAGE - */ - WMI_COEX_CONFIG_PAGE_P2P_STA_TDM = 7, - /* config interval (ms units) (arg1 BT, arg2 WLAN) for P2P + INQUIRY */ - WMI_COEX_CONFIG_INQUIRY_P2P_TDM = 8, - /* config interval (ms units) (arg1 BT, arg2 WLAN) for STA + INQUIRY */ - WMI_COEX_CONFIG_INQUIRY_STA_TDM = 9, - /* config interval (ms units) (arg1 BT, arg2 WLAN) for SAP + INQUIRY */ - WMI_COEX_CONFIG_INQUIRY_SAP_TDM = 10, - /* - * config interval (ms units) (arg1 BT, arg2 WLAN) for P2P + STA + - * INQUIRY - */ - WMI_COEX_CONFIG_INQUIRY_P2P_STA_TDM = 11, - /* config wlan total tx power when bt coex (arg1 is wlan_tx_power_limit, in 0.5dbm units) */ - WMI_COEX_CONFIG_TX_POWER = 12, + WMI_COEX_CONFIG_PAGE_P2P_TDM = 1, /* config interval (arg1 BT, arg2 WLAN) for P2P + PAGE */ + WMI_COEX_CONFIG_PAGE_STA_TDM = 2, /* config interval (arg1 BT, arg2 WLAN) for STA + PAGE */ + WMI_COEX_CONFIG_PAGE_SAP_TDM = 3, /* config interval (arg1 BT, arg2 WLAN) for SAP + PAGE */ + WMI_COEX_CONFIG_DURING_WLAN_CONN = 4, /* config during WLAN connection */ + WMI_COEX_CONFIG_BTC_ENABLE = 5, /* config to enable/disable BTC */ + WMI_COEX_CONFIG_COEX_DBG = 6, /* config of COEX debug setting */ + WMI_COEX_CONFIG_PAGE_P2P_STA_TDM = 7, /* config interval (ms units) (arg1 BT, arg2 WLAN) for P2P + STA + PAGE */ + WMI_COEX_CONFIG_INQUIRY_P2P_TDM = 8, /* config interval (ms units) (arg1 BT, arg2 WLAN) for P2P + INQUIRY */ + WMI_COEX_CONFIG_INQUIRY_STA_TDM = 9, /* config interval (ms units) (arg1 BT, arg2 WLAN) for STA + INQUIRY */ + WMI_COEX_CONFIG_INQUIRY_SAP_TDM = 10, /* config interval (ms units) (arg1 BT, arg2 WLAN) for SAP + INQUIRY */ + WMI_COEX_CONFIG_INQUIRY_P2P_STA_TDM = 11, /* config interval (ms units) (arg1 BT, arg2 WLAN) for P2P + STA + INQUIRY */ + WMI_COEX_CONFIG_TX_POWER = 12, /* config wlan total tx power when bt coex (arg1 is wlan_tx_power_limit, in 0.5dbm units) */ } WMI_COEX_CONFIG_TYPE; typedef struct { - A_UINT32 tlv_header; - A_UINT32 vdev_id; - /* wmi_coex_config_type enum */ - A_UINT32 config_type; - A_UINT32 config_arg1; - A_UINT32 config_arg2; + A_UINT32 tlv_header; + A_UINT32 vdev_id; + A_UINT32 config_type; /* wmi_coex_config_type enum */ + A_UINT32 config_arg1; + A_UINT32 config_arg2; } WMI_COEX_CONFIG_CMD_fixed_param; /** * This command is sent from WLAN host driver to firmware to * request firmware to enable/disable channel avoidance report * to host. + * */ enum { - WMI_MWSCOEX_CHAN_AVD_RPT_DISALLOW = 0, - WMI_MWSCOEX_CHAN_AVD_RPT_ALLOW = 1 + WMI_MWSCOEX_CHAN_AVD_RPT_DISALLOW = 0, + WMI_MWSCOEX_CHAN_AVD_RPT_ALLOW = 1 }; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_WMI_CHAN_AVOID_RPT_ALLOW_CMD_fixed_param - */ - A_UINT32 tlv_header; - /* Allow/disallow flag - see WMI_MWSCOEX_CHAN_AVD_RPT enum */ - A_UINT32 rpt_allow; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_CHAN_AVOID_RPT_ALLOW_CMD_fixed_param */ + /** Allow/disallow flag - see WMI_MWSCOEX_CHAN_AVD_RPT enum */ + A_UINT32 rpt_allow; } WMI_CHAN_AVOID_RPT_ALLOW_CMD_fixed_param; /* @@ -17408,32 +16492,23 @@ typedef struct { * WMI_SET_PERIODIC_CHANNEL_STATS_CONFIG_CMDID */ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_set_periodic_channel_stats_config_fixed_param - */ - A_UINT32 tlv_header; - /** 1 = enable, 0 = disable */ - A_UINT32 enable; - /** periodic stats duration (units are milliseconds) */ - A_UINT32 stats_period; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_set_periodic_channel_stats_config_fixed_param */ + /** 1 = enable, 0 = disable */ + A_UINT32 enable; + /** periodic stats duration (units are milliseconds) */ + A_UINT32 stats_period; } wmi_set_periodic_channel_stats_config_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_wal_power_debug_cmd_fixed_param - */ - A_UINT32 tlv_header; - /* - * pdev_id for identifying the MAC - * See macros starting with WMI_PDEV_ID_ for values. - */ - A_UINT32 pdev_id; - /* Identify the wlan module */ - A_UINT32 module_id; - /* Num of elements in the following args[] array */ - A_UINT32 num_args; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_wal_power_debug_cmd_fixed_param */ + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + */ + A_UINT32 pdev_id; + /* Identify the wlan module */ + A_UINT32 module_id; + /* Num of elements in the following args[] array */ + A_UINT32 num_args; /** * Following this structure are the TLVs: * A_UINT32 args[]; @@ -17441,27 +16516,20 @@ typedef struct { } wmi_pdev_wal_power_debug_cmd_fixed_param; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_pdev_set_reorder_timeout_val_cmd_fixed_param - */ - A_UINT32 tlv_header; - /** - * @brief rx_timeout_pri - what rx reorder timeout (ms) to use - * for the AC - * @details - * Each WMM access category (voice, video, best-effort, - * background) will have its own timeout value to dictate - * how long to wait for missing rx MPDUs to arrive before - * releasing subsequent MPDUs that have already been - * received. - * This parameter specifies the timeout in milliseconds - * for each access category. - * The array elements are indexed by the WMI_AC enum to - * identify which array element corresponds to which AC / - * traffic type. - */ - A_UINT32 rx_timeout_pri[WMI_AC_MAX]; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_reorder_timeout_val_cmd_fixed_param */ + /** + * @brief rx_timeout_pri - what rx reorder timeout (ms) to use for the AC + * @details + * Each WMM access category (voice, video, best-effort, background) + * will have its own timeout value to dictate how long to wait for + * missing rx MPDUs to arrive before releasing subsequent MPDUs that + * have already been received. + * This parameter specifies the timeout in milliseconds for each + * access category. + * The array elements are indexed by the WMI_AC enum to identify + * which array element corresponds to which AC / traffic type. + */ + A_UINT32 rx_timeout_pri[WMI_AC_MAX]; } wmi_pdev_set_reorder_timeout_val_cmd_fixed_param; /** @@ -17482,81 +16550,117 @@ typedef struct { * FW will generate and send out a wlan stats event immediately. */ typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_stats_threshold_cmd_fixed_param */ - /** Indicate if threshold mechnism is enabled or disabled. - * It is disabled by default. - * Host can enable and disable it dynamically. - */ - A_UINT32 enable_thresh; - /** use_thresh_bitmap equals 0 means gbl_thresh is used. - * when use_thresh_bitmap equals 1, ignore gbl_thresh and use stats bitmap indicated thresholds. - */ - A_UINT32 use_thresh_bitmap; - /** global threshold, valid when use_thresh_bitmap equals 0. - * It takes effect for all counters. - * If use_thresh_bitmap ==0 && gbl_thresh == 0, disable threshold mechanism. - */ - A_UINT32 gbl_thresh; - /** Enable/disable bitmap for threshold mechanism of CCA stats */ - A_UINT32 cca_thresh_enable_bitmap; - /** Enable/disable bitmap for threshold mechanism of signal stats */ - A_UINT32 signal_thresh_enable_bitmap; - /** Enable/disable bitmap for threshold mechanism of TX stats */ - A_UINT32 tx_thresh_enable_bitmap; - /** Enable/disable bitmap for threshold mechanism of RX stats */ - A_UINT32 rx_thresh_enable_bitmap; - /* This TLV is followed by TLVs below: - * wmi_chan_cca_stats_thresh cca_thresh; - * wmi_peer_signal_stats_thresh signal_thresh; - * wmi_tx_stats_thresh tx_thresh; - * wmi_rx_stats_thresh rx_thresh; - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_stats_threshold_cmd_fixed_param */ + /** Indicate if threshold mechnism is enabled or disabled. + * It is disabled by default. + * Host can enable and disable it dynamically. + */ + A_UINT32 enable_thresh; + /** use_thresh_bitmap equals 0 means gbl_thresh is used. + * when use_thresh_bitmap equals 1, ignore gbl_thresh and use stats bitmap indicated thresholds. + */ + A_UINT32 use_thresh_bitmap; + /** global threshold, valid when use_thresh_bitmap equals 0. + * It takes effect for all counters. + * If use_thresh_bitmap ==0 && gbl_thresh == 0, disable threshold mechanism. + */ + A_UINT32 gbl_thresh; + /** Enable/disable bitmap for threshold mechanism of CCA stats */ + A_UINT32 cca_thresh_enable_bitmap; + /** Enable/disable bitmap for threshold mechanism of signal stats */ + A_UINT32 signal_thresh_enable_bitmap; + /** Enable/disable bitmap for threshold mechanism of TX stats */ + A_UINT32 tx_thresh_enable_bitmap; + /** Enable/disable bitmap for threshold mechanism of RX stats */ + A_UINT32 rx_thresh_enable_bitmap; + /* This TLV is followed by TLVs below: + * wmi_chan_cca_stats_thresh cca_thresh; + * wmi_peer_signal_stats_thresh signal_thresh; + * wmi_tx_stats_thresh tx_thresh; + * wmi_rx_stats_thresh rx_thresh; + */ } wmi_pdev_set_stats_threshold_cmd_fixed_param; typedef enum { - WMI_REQUEST_WLAN_TX_STAT = 0x01, - WMI_REQUEST_WLAN_RX_STAT = 0x02, - WMI_REQUEST_WLAN_CCA_STAT = 0x04, - WMI_REQUEST_WLAN_SIGNAL_STAT = 0x08, + WMI_REQUEST_WLAN_TX_STAT = 0x01, + WMI_REQUEST_WLAN_RX_STAT = 0x02, + WMI_REQUEST_WLAN_CCA_STAT = 0x04, + WMI_REQUEST_WLAN_SIGNAL_STAT = 0x08, } wmi_wlan_stats_id; typedef struct { - A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_request_wlan_stats_cmd_fixed_param */ - wmi_wlan_stats_id stats_id; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_request_wlan_stats_cmd_fixed_param */ + wmi_wlan_stats_id stats_id; } wmi_request_wlan_stats_cmd_fixed_param; typedef enum { - WLAN_2G_CAPABILITY = 0x1, - WLAN_5G_CAPABILITY = 0x2, + WMI_REQUEST_ONE_PEER_STATS_INFO = 0x01, /* request stats of one specified peer */ + WMI_REQUEST_VDEV_ALL_PEER_STATS_INFO = 0x02, /* request stats of all peers belong to specified VDEV */ +} wmi_peer_stats_info_request_type; + +/** It is required to issue WMI_PDEV_PARAM_PEER_STATS_INFO_ENABLE + * (with a non-zero value) before issuing the first REQUEST_PEER_STATS_INFO. + */ +typedef struct { + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_request_peer_stats_info_cmd_fixed_param */ + A_UINT32 tlv_header; + /** request_type to indicate if only stats of + * one peer or all peers of the VDEV are requested, + * see wmi_peer_stats_info_request_type. + */ + A_UINT32 request_type; + /** VDEV identifier */ + A_UINT32 vdev_id; + /** this peer_macaddr is only used if request_type == ONE_PEER_STATS_INFO */ + wmi_mac_addr peer_macaddr; + /** flag to indicate if FW needs to reset requested peers stats */ + A_UINT32 reset_after_request; +} wmi_request_peer_stats_info_cmd_fixed_param; + +typedef struct { + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_rmc_set_leader_cmd_fixed_param */ + A_UINT32 tlv_header; + /* VDEV identifier */ + A_UINT32 vdev_id; + /* Leader's mac address */ + wmi_mac_addr leader_mac_addr; +} wmi_rmc_set_leader_cmd_fixed_param; + +typedef struct { + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_rmc_manual_leader_event_fixed_param */ + A_UINT32 tlv_header; + /* VDEV identifier */ + A_UINT32 vdev_id; + /* 0: success + * 1: selected leader not found in network, able to find using auto selection + * -1: error + * non zero value should be return to userspace in case of failure */ + A_INT32 status; + /* bssid of new leader */ + wmi_mac_addr leader_mac_addr; +} wmi_rmc_manual_leader_event_fixed_param; + +typedef enum { + WLAN_2G_CAPABILITY = 0x1, + WLAN_5G_CAPABILITY = 0x2, } WLAN_BAND_CAPABILITY; typedef enum wmi_hw_mode_config_type { - /* Only one PHY is active. */ - WMI_HW_MODE_SINGLE = 0, - /** - * Both PHYs are active in different bands, one in 2G - * and another in 5G. - */ - WMI_HW_MODE_DBS = 1, - /** - * Both PHYs are in passive mode (only rx) in same band; - * no tx allowed. - */ - WMI_HW_MODE_SBS_PASSIVE = 2, - /** - * Both PHYs are active in the same band. - * Support for both PHYs within one band is planned for 5G only - * (as indicated in WMI_MAC_PHY_CAPABILITIES), - * but could be extended to other bands in the future. - * The separation of the band between the two PHYs needs to be - * communicated separately. - */ - WMI_HW_MODE_SBS = 3, - /** - * 3 PHYs, with 2 on the same band doing SBS - * as in WMI_HW_MODE_SBS, and 3rd on the other band - */ - WMI_HW_MODE_DBS_SBS = 4, + WMI_HW_MODE_SINGLE = 0, /* Only one PHY is active. */ + WMI_HW_MODE_DBS = 1, /* Both PHYs are active in different bands, one in 2G and another in 5G. */ + WMI_HW_MODE_SBS_PASSIVE = 2, /* Both PHYs are in passive mode (only rx) in same band; no tx allowed. */ + WMI_HW_MODE_SBS = 3, /* Both PHYs are active in the same band. + * Support for both PHYs within one band is planned for 5G only + * (as indicated in WMI_MAC_PHY_CAPABILITIES), + * but could be extended to other bands in the future. + * The separation of the band between the two PHYs needs to be communicated separately. + */ + WMI_HW_MODE_DBS_SBS = 4, /* 3 PHYs, with 2 on the same band doing SBS + * as in WMI_HW_MODE_SBS, and 3rd on the other band + */ } WMI_HW_MODE_CONFIG_TYPE; #define WMI_SUPPORT_11B_GET(flags) WMI_GET_BITS(flags, 0, 1) @@ -17581,349 +16685,1002 @@ typedef enum wmi_hw_mode_config_type { #define WMI_MAX_MUBFEE_SET(flags, value) WMI_SET_BITS(flags, 28, 4, value) typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_WMI_MAC_PHY_CAPABILITIES - */ - A_UINT32 tlv_header; - /* - * hw_mode_id - identify a particular set of HW characteristics, as - * specified by the subsequent fields. WMI_MAC_PHY_CAPABILITIES element - * must be mapped to its parent WMI_HW_MODE_CAPABILITIES element using - * hw_mode_id. No particular ordering of WMI_MAC_PHY_CAPABILITIES - * elements should be assumed, though in practice the elements may - * always be ordered by hw_mode_id - */ - A_UINT32 hw_mode_id; - /* - * pdev_id starts with 1. pdev_id 1 => phy_id 0, - * pdev_id 2 => phy_id 1 - */ - A_UINT32 pdev_id; - /* phy id. Starts with 0 */ - A_UINT32 phy_id; - /* supported modulations and number of MU beamformees */ - union { - struct { - A_UINT32 supports_11b:1, - supports_11g:1, - supports_11a:1, - supports_11n:1, - supports_11ac:1, - supports_11ax:1, + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_MAC_PHY_CAPABILITIES */ + /* hw_mode_id - identify a particular set of HW characteristics, as specified + * by the subsequent fields. WMI_MAC_PHY_CAPABILITIES element must be mapped + * to its parent WMI_HW_MODE_CAPABILITIES element using hw_mode_id. + * No particular ordering of WMI_MAC_PHY_CAPABILITIES elements should be assumed, + * though in practice the elements may always be ordered by hw_mode_id */ + A_UINT32 hw_mode_id; + /* pdev_id starts with 1. pdev_id 1 => phy_id 0, pdev_id 2 => phy_id 1 */ + A_UINT32 pdev_id; + /* phy id. Starts with 0 */ + A_UINT32 phy_id; + /* supported modulations and number of MU beamformees */ + union { + struct { + A_UINT32 supports_11b:1, + supports_11g:1, + supports_11a:1, + supports_11n:1, + supports_11ac:1, + supports_11ax:1, - unused:22, + unused: 22, - /* max MU beamformees supported per MAC */ - max_mubfee:4; - }; - A_UINT32 supported_flags; - }; - /* supported bands, enum WLAN_BAND_CAPABILITY */ - A_UINT32 supported_bands; - /* - * ampdu density 0 for no restriction, 1 for 1/4 us, 2 for 1/2 us, - * 3 for 1 us,4 for 2 us, 5 for 4 us, 6 for 8 us,7 for 16 us - */ - A_UINT32 ampdu_density; - /* max bw supported 2G, enum wmi_channel_width */ - A_UINT32 max_bw_supported_2G; - /* WMI HT Capability, WMI_HT_CAP defines */ - A_UINT32 ht_cap_info_2G; - /* VHT capability info field of 802.11ac, WMI_VHT_CAP defines */ - A_UINT32 vht_cap_info_2G; - /* - * VHT Supported MCS Set field Rx/Tx same - * The max VHT-MCS for n SS subfield (where n = 1,...,8) is encoded as - * follows - * - 0 indicates support for VHT-MCS 0-7 for n spatial streams - * - 1 indicates support for VHT-MCS 0-8 for n spatial streams - * - 2 indicates support for VHT-MCS 0-9 for n spatial streams - * - 3 indicates that n spatial streams is not supported - */ - A_UINT32 vht_supp_mcs_2G; - /* HE capability info field of 802.11ax, WMI_HE_CAP defines */ - A_UINT32 he_cap_info_2G; - /* HE Supported MCS Set field Rx/Tx same */ - A_UINT32 he_supp_mcs_2G; - /* Valid Transmit chain mask */ - A_UINT32 tx_chain_mask_2G; - /* Valid Receive chain mask */ - A_UINT32 rx_chain_mask_2G; - /* max bw supported 5G, enum wmi_channel_width */ - A_UINT32 max_bw_supported_5G; - /* WMI HT Capability, WMI_HT_CAP defines */ - A_UINT32 ht_cap_info_5G; - /* VHT capability info field of 802.11ac, WMI_VHT_CAP defines */ - A_UINT32 vht_cap_info_5G; - /* - * VHT Supported MCS Set field Rx/Tx same - * The max VHT-MCS for n SS subfield (where n = 1,...,8) is encoded as - * follows - * - 0 indicates support for VHT-MCS 0-7 for n spatial streams - * - 1 indicates support for VHT-MCS 0-8 for n spatial streams - * - 2 indicates support for VHT-MCS 0-9 for n spatial streams - * - 3 indicates that n spatial streams is not supported - */ - A_UINT32 vht_supp_mcs_5G; - /* HE capability info field of 802.11ax, WMI_HE_CAP defines */ - A_UINT32 he_cap_info_5G; - /* HE Supported MCS Set field Rx/Tx same */ - A_UINT32 he_supp_mcs_5G; - /* Valid Transmit chain mask */ - A_UINT32 tx_chain_mask_5G; - /* Valid Receive chain mask */ - A_UINT32 rx_chain_mask_5G; - /* HE capability phy field of 802.11ax, WMI_HE_CAP defines */ - A_UINT32 he_cap_phy_info_2G[WMI_MAX_HECAP_PHY_SIZE]; - A_UINT32 he_cap_phy_info_5G[WMI_MAX_HECAP_PHY_SIZE]; - wmi_ppe_threshold he_ppet2G; - wmi_ppe_threshold he_ppet5G; + max_mubfee: 4; /* max MU beamformees supported per MAC */ + }; + A_UINT32 supported_flags; + }; + /* supported bands, enum WLAN_BAND_CAPABILITY */ + A_UINT32 supported_bands; + /* ampdu density 0 for no restriction, 1 for 1/4 us, 2 for 1/2 us, + * 3 for 1 us,4 for 2 us, 5 for 4 us, 6 for 8 us,7 for 16 us */ + A_UINT32 ampdu_density; + /* max bw supported 2G, enum wmi_channel_width */ + A_UINT32 max_bw_supported_2G; + /* WMI HT Capability, WMI_HT_CAP defines */ + A_UINT32 ht_cap_info_2G; + /* VHT capability info field of 802.11ac, WMI_VHT_CAP defines */ + A_UINT32 vht_cap_info_2G; + /* VHT Supported MCS Set field Rx/Tx same + * The max VHT-MCS for n SS subfield (where n = 1,...,8) is encoded as follows + * - 0 indicates support for VHT-MCS 0-7 for n spatial streams + * - 1 indicates support for VHT-MCS 0-8 for n spatial streams + * - 2 indicates support for VHT-MCS 0-9 for n spatial streams + * - 3 indicates that n spatial streams is not supported */ + A_UINT32 vht_supp_mcs_2G; + /*HE capability info field of 802.11ax, WMI_HE_CAP defines */ + A_UINT32 he_cap_info_2G; + /* HE Supported MCS Set field Rx/Tx same */ + A_UINT32 he_supp_mcs_2G; + /* Valid Transmit chain mask */ + A_UINT32 tx_chain_mask_2G; + /* Valid Receive chain mask */ + A_UINT32 rx_chain_mask_2G; + /* max bw supported 5G, enum wmi_channel_width */ + A_UINT32 max_bw_supported_5G; + /* WMI HT Capability, WMI_HT_CAP defines */ + A_UINT32 ht_cap_info_5G; + /* VHT capability info field of 802.11ac, WMI_VHT_CAP defines */ + A_UINT32 vht_cap_info_5G; + /* VHT Supported MCS Set field Rx/Tx same + * The max VHT-MCS for n SS subfield (where n = 1,...,8) is encoded as follows + * - 0 indicates support for VHT-MCS 0-7 for n spatial streams + * - 1 indicates support for VHT-MCS 0-8 for n spatial streams + * - 2 indicates support for VHT-MCS 0-9 for n spatial streams + * - 3 indicates that n spatial streams is not supported */ + A_UINT32 vht_supp_mcs_5G; + /*HE capability info field of 802.11ax, WMI_HE_CAP defines */ + A_UINT32 he_cap_info_5G; + /* HE Supported MCS Set field Rx/Tx same */ + A_UINT32 he_supp_mcs_5G; + /* Valid Transmit chain mask */ + A_UINT32 tx_chain_mask_5G; + /* Valid Receive chain mask */ + A_UINT32 rx_chain_mask_5G; + /* HE capability phy field of 802.11ax, WMI_HE_CAP defines */ + A_UINT32 he_cap_phy_info_2G[WMI_MAX_HECAP_PHY_SIZE]; + A_UINT32 he_cap_phy_info_5G[WMI_MAX_HECAP_PHY_SIZE]; + wmi_ppe_threshold he_ppet2G; + wmi_ppe_threshold he_ppet5G; } WMI_MAC_PHY_CAPABILITIES; typedef struct { - /* - * TLV tag and len; tag equal - * WMITLV_TAG_STRUC_WMI_HW_MODE_CAPABILITIES - */ - A_UINT32 tlv_header; - /* - * hw_mode_id - identify a particular set of HW characteristics, - * as specified by the subsequent fields - */ - A_UINT32 hw_mode_id; - /** - * BIT0 represents phy_id 0, BIT1 represent phy_id 1 and so on. - * Number of bits set in phy_id_map represents number of - * WMI_MAC_PHY_CAPABILITIES TLV's - * one for each active PHY for current HW mode - * identified by hw_mode_id. For example for - * DBS/SBS mode there will be 2 - * WMI_MAC_PHY_CAPABILITIES TLVs and for - * single MAC modes it - * will be 1 WMI_MAC_PHY_CAPABILITIES - * TLVs - */ - A_UINT32 phy_id_map; - /** - * hw_mode_config_type - * Identify a particular type of HW mode such as SBS, DBS etc. - * Refer to WMI_HW_MODE_CONFIG_TYPE values. - */ - A_UINT32 hw_mode_config_type; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_HW_MODE_CAPABILITIES */ + /* hw_mode_id - identify a particular set of HW characteristics, + * as specified by the subsequent fields */ + A_UINT32 hw_mode_id; + /* BIT0 represents phy_id 0, BIT1 represent phy_id 1 and so on + * number of bits set in phy_id_map represents number of WMI_MAC_PHY_CAPABILITIES TLV's + * one for each active PHY for current HW mode identified by hw_mode_id. For example for + * DBS/SBS mode there will be 2 WMI_MAC_PHY_CAPABILITIES TLVs and for single MAC modes it + * will be 1 WMI_MAC_PHY_CAPABILITIES TLVs */ + A_UINT32 phy_id_map; + /* hw_mode_config_type + * Identify a particular type of HW mode such as SBS, DBS etc. + * Refer to WMI_HW_MODE_CONFIG_TYPE values. + */ + A_UINT32 hw_mode_config_type; } WMI_HW_MODE_CAPABILITIES; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_WMI_SOC_MAC_PHY_HW_MODE_CAPS - */ - A_UINT32 tlv_header; - /* num HW modes */ - A_UINT32 num_hw_modes; - /* num_hw_modes WMI_HW_MODE_CAPABILITIES TLV's */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_SOC_MAC_PHY_HW_MODE_CAPS */ + /* num HW modes */ + A_UINT32 num_hw_modes; + /* num_hw_modes WMI_HW_MODE_CAPABILITIES TLV's */ } WMI_SOC_MAC_PHY_HW_MODE_CAPS; /*Below are Reg caps per PHY. Please note PHY ID starts with 0.*/ typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_WMI_HAL_REG_CAPABILITIES_EXT - */ - A_UINT32 tlv_header; - /* phy id */ - A_UINT32 phy_id; - /* regdomain value specified in EEPROM */ - A_UINT32 eeprom_reg_domain; - /* regdomain */ - A_UINT32 eeprom_reg_domain_ext; - /* - * CAP1 capabilities bit map, see REGDMN_CAP1_ - * defines - */ - A_UINT32 regcap1; - /* - * REGDMN EEPROM CAP, see - * REGDMN_EEPROM_EEREGCAP_ defines - */ - A_UINT32 regcap2; - /* REGDMN MODE, see REGDMN_MODE_ enum */ - A_UINT32 wireless_modes; - A_UINT32 low_2ghz_chan; - A_UINT32 high_2ghz_chan; - A_UINT32 low_5ghz_chan; - A_UINT32 high_5ghz_chan; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_HAL_REG_CAPABILITIES_EXT */ + /* phy id */ + A_UINT32 phy_id; + /* regdomain value specified in EEPROM */ + A_UINT32 eeprom_reg_domain; + /* regdomain */ + A_UINT32 eeprom_reg_domain_ext; + /* CAP1 capabilities bit map, see REGDMN_CAP1_ defines */ + A_UINT32 regcap1; + /* REGDMN EEPROM CAP, see REGDMN_EEPROM_EEREGCAP_ defines */ + A_UINT32 regcap2; + /* REGDMN MODE, see REGDMN_MODE_ enum */ + A_UINT32 wireless_modes; + A_UINT32 low_2ghz_chan; + A_UINT32 high_2ghz_chan; + A_UINT32 low_5ghz_chan; + A_UINT32 high_5ghz_chan; } WMI_HAL_REG_CAPABILITIES_EXT; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_WMI_SOC_HAL_REG_CAPABILITIES - */ - A_UINT32 tlv_header; - /* num_phy WMI_HAL_REG_CAPABILITIES_EXT TLV's */ - A_UINT32 num_phy; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_SOC_HAL_REG_CAPABILITIES */ + A_UINT32 num_phy; + /* num_phy WMI_HAL_REG_CAPABILITIES_EXT TLV's */ } WMI_SOC_HAL_REG_CAPABILITIES; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_scan_adaptive_dwell_parameters_tlv - */ - A_UINT32 tlv_header; - /* - * global default adaptive dwell mode, - * used when WMI_SCAN_DWELL_MODE_DEFAULT - */ - A_UINT32 default_adaptive_dwell_mode; - /* - * the weight to calculate the average low pass filter for - * channel congestion. 0-100 - */ - A_UINT32 adapative_lpf_weight; - /* interval to monitor passive scan in msec */ - A_UINT32 passive_monitor_interval_ms; - /* % of wifi activity to switch from passive to active 0-100 */ - A_UINT32 wifi_activity_threshold_pct; + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_scan_adaptive_dwell_parameters_tlv */ + /** global default adaptive dwell mode, used when WMI_SCAN_DWELL_MODE_DEFAULT */ + A_UINT32 default_adaptive_dwell_mode; + /** the weight to calculate the average low pass filter for channel congestion. 0-100 */ + A_UINT32 adapative_lpf_weight; + /** interval to monitor passive scan in msec */ + A_UINT32 passive_monitor_interval_ms; + /** % of wifi activity to switch from passive to active 0-100 */ + A_UINT32 wifi_activity_threshold_pct; } wmi_scan_adaptive_dwell_parameters_tlv; typedef struct { - /* - * TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_scan_adaptive_dwell_config_fixed_param - */ - A_UINT32 tlv_header; - /* globally enable/disable adaptive dwell */ - A_UINT32 enable; - /* - * followed by TLV (tag length value) parameters array - * The TLV's are: - * wmi_scan_adaptive_dwell_parameters_tlv param[]; (0 or 1 elements) - */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_scan_adaptive_dwell_config_fixed_param */ + /* globally enable/disable adaptive dwell */ + A_UINT32 enable; + /** pdev_id for identifying the MAC + * See macros starting with WMI_PDEV_ID_ for values. + * In non-DBDC case host should set it to 0 + */ + A_UINT32 pdev_id; +/** + * followed by TLV (tag length value) parameters array + * The TLV's are: + * wmi_scan_adaptive_dwell_parameters_tlv param[]; (0 or 1 elements) + */ } wmi_scan_adaptive_dwell_config_fixed_param; +typedef enum { + WMI_REG_EXT_FCC_MIDBAND = 0, + WMI_REG_EXT_JAPAN_MIDBAND = 1, + WMI_REG_EXT_FCC_DFS_HT40 = 2, + WMI_REG_EXT_JAPAN_NONDFS_HT40 = 3, + WMI_REG_EXT_JAPAN_DFS_HT40 = 4, + WMI_REG_EXT_FCC_CH_144 = 5, +} WMI_REG_EXT_BITMAP; + +#ifdef WMI_CMD_STRINGS +static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) +{ + switch (wmi_command) { + /* initialize the wlan sub system */ + WMI_RETURN_STRING(WMI_INIT_CMDID); + + /* Scan specific commands */ + + /* start scan request to FW */ + WMI_RETURN_STRING(WMI_START_SCAN_CMDID); + /* stop scan request to FW */ + WMI_RETURN_STRING(WMI_STOP_SCAN_CMDID); + /* full list of channels as defined by the regulatory + * that will be used by scanner */ + WMI_RETURN_STRING(WMI_SCAN_CHAN_LIST_CMDID); + /* overwrite default priority table in scan scheduler */ + WMI_RETURN_STRING(WMI_SCAN_SCH_PRIO_TBL_CMDID); + /* This command to adjust the priority and min.max_rest_time + * of an on ongoing scan request. + */ + WMI_RETURN_STRING(WMI_SCAN_UPDATE_REQUEST_CMDID); + + /* PDEV(physical device) specific commands */ + /* set regulatorty ctl id used by FW to determine the exact + * ctl power limits */ + WMI_RETURN_STRING(WMI_PDEV_SET_REGDOMAIN_CMDID); + /* set channel. mainly used for supporting monitor mode */ + WMI_RETURN_STRING(WMI_PDEV_SET_CHANNEL_CMDID); + /* set pdev specific parameters */ + WMI_RETURN_STRING(WMI_PDEV_SET_PARAM_CMDID); + /* enable packet log */ + WMI_RETURN_STRING(WMI_PDEV_PKTLOG_ENABLE_CMDID); + /* disable packet log*/ + WMI_RETURN_STRING(WMI_PDEV_PKTLOG_DISABLE_CMDID); + /* set wmm parameters */ + WMI_RETURN_STRING(WMI_PDEV_SET_WMM_PARAMS_CMDID); + /* set HT cap ie that needs to be carried probe requests + * HT/VHT channels */ + WMI_RETURN_STRING(WMI_PDEV_SET_HT_CAP_IE_CMDID); + /* set VHT cap ie that needs to be carried on probe + * requests on VHT channels */ + WMI_RETURN_STRING(WMI_PDEV_SET_VHT_CAP_IE_CMDID); + + /* Command to send the DSCP-to-TID map to the target */ + WMI_RETURN_STRING(WMI_PDEV_SET_DSCP_TID_MAP_CMDID); + /* set quiet ie parameters. primarily used in AP mode */ + WMI_RETURN_STRING(WMI_PDEV_SET_QUIET_MODE_CMDID); + /* Enable/Disable Green AP Power Save */ + WMI_RETURN_STRING(WMI_PDEV_GREEN_AP_PS_ENABLE_CMDID); + /* get TPC config for the current operating channel */ + WMI_RETURN_STRING(WMI_PDEV_GET_TPC_CONFIG_CMDID); + + /* set the base MAC address for the physical device before + * a VDEV is created. For firmware that does not support + * this feature and this command, the pdev MAC address will + * not be changed. */ + WMI_RETURN_STRING(WMI_PDEV_SET_BASE_MACADDR_CMDID); + + /* eeprom content dump , the same to bdboard data */ + WMI_RETURN_STRING(WMI_PDEV_DUMP_CMDID); + + /* VDEV(virtual device) specific commands */ + /* vdev create */ + WMI_RETURN_STRING(WMI_VDEV_CREATE_CMDID); + /* vdev delete */ + WMI_RETURN_STRING(WMI_VDEV_DELETE_CMDID); + /* vdev start request */ + WMI_RETURN_STRING(WMI_VDEV_START_REQUEST_CMDID); + /* vdev restart request (RX only, NO TX, used for CAC period)*/ + WMI_RETURN_STRING(WMI_VDEV_RESTART_REQUEST_CMDID); + /* vdev up request */ + WMI_RETURN_STRING(WMI_VDEV_UP_CMDID); + /* vdev stop request */ + WMI_RETURN_STRING(WMI_VDEV_STOP_CMDID); + /* vdev down request */ + WMI_RETURN_STRING(WMI_VDEV_DOWN_CMDID); + /* set a vdev param */ + WMI_RETURN_STRING(WMI_VDEV_SET_PARAM_CMDID); + /* set a key (used for setting per peer unicast + * and per vdev multicast) */ + WMI_RETURN_STRING(WMI_VDEV_INSTALL_KEY_CMDID); + + /* wnm sleep mode command */ + WMI_RETURN_STRING(WMI_VDEV_WNM_SLEEPMODE_CMDID); + WMI_RETURN_STRING(WMI_VDEV_WMM_ADDTS_CMDID); + WMI_RETURN_STRING(WMI_VDEV_WMM_DELTS_CMDID); + WMI_RETURN_STRING(WMI_VDEV_SET_WMM_PARAMS_CMDID); + WMI_RETURN_STRING(WMI_VDEV_SET_GTX_PARAMS_CMDID); + WMI_RETURN_STRING(WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMDID); + + WMI_RETURN_STRING(WMI_VDEV_PLMREQ_START_CMDID); + WMI_RETURN_STRING(WMI_VDEV_PLMREQ_STOP_CMDID); + WMI_RETURN_STRING(WMI_VDEV_TSF_TSTAMP_ACTION_CMDID); + WMI_RETURN_STRING(WMI_VDEV_SET_IE_CMDID); + + /* peer specific commands */ + + /** create a peer */ + WMI_RETURN_STRING(WMI_PEER_CREATE_CMDID); + /** delete a peer */ + WMI_RETURN_STRING(WMI_PEER_DELETE_CMDID); + /** flush specific tid queues of a peer */ + WMI_RETURN_STRING(WMI_PEER_FLUSH_TIDS_CMDID); + /** set a parameter of a peer */ + WMI_RETURN_STRING(WMI_PEER_SET_PARAM_CMDID); + /* set peer to associated state. will cary all parameters + * determined during assocication time */ + WMI_RETURN_STRING(WMI_PEER_ASSOC_CMDID); + /* add a wds (4 address ) entry. used only for testing + * WDS feature on AP products */ + WMI_RETURN_STRING(WMI_PEER_ADD_WDS_ENTRY_CMDID); + /* remove wds (4 address ) entry. used only for testing WDS + * feature on AP products */ + WMI_RETURN_STRING(WMI_PEER_REMOVE_WDS_ENTRY_CMDID); + /* set up mcast info for multicast to unicast conversion */ + WMI_RETURN_STRING(WMI_PEER_MCAST_GROUP_CMDID); + /* request peer info from FW to get PEER_INFO_EVENTID */ + WMI_RETURN_STRING(WMI_PEER_INFO_REQ_CMDID); + + /* beacon/management specific commands */ + + /* transmit beacon by reference. used for transmitting beacon + * on low latency interface like pcie */ + WMI_RETURN_STRING(WMI_BCN_TX_CMDID); + /* transmit beacon by value */ + WMI_RETURN_STRING(WMI_PDEV_SEND_BCN_CMDID); + /* set the beacon template. used in beacon offload mode to setup + * the common beacon template with the FW to be used by FW to + * generate beacons */ + WMI_RETURN_STRING(WMI_BCN_TMPL_CMDID); + /* set beacon filter with FW */ + WMI_RETURN_STRING(WMI_BCN_FILTER_RX_CMDID); + /* enable/disable filtering of probe requests in the firmware */ + WMI_RETURN_STRING(WMI_PRB_REQ_FILTER_RX_CMDID); + /* transmit management frame by value. will be deprecated */ + WMI_RETURN_STRING(WMI_MGMT_TX_CMDID); + /* set the probe response template. used in beacon offload mode + * to setup the common probe response template with the FW to + * be used by FW to generate probe responses */ + WMI_RETURN_STRING(WMI_PRB_TMPL_CMDID); + + /* commands to directly control ba negotiation directly from + * host. only used in test mode */ + + /* turn off FW Auto addba mode and let host control addba */ + WMI_RETURN_STRING(WMI_ADDBA_CLEAR_RESP_CMDID); + /* send add ba request */ + WMI_RETURN_STRING(WMI_ADDBA_SEND_CMDID); + WMI_RETURN_STRING(WMI_ADDBA_STATUS_CMDID); + /* send del ba */ + WMI_RETURN_STRING(WMI_DELBA_SEND_CMDID); + /* set add ba response will be used by FW to generate + * addba response*/ + WMI_RETURN_STRING(WMI_ADDBA_SET_RESP_CMDID); + /* send single VHT MPDU with AMSDU */ + WMI_RETURN_STRING(WMI_SEND_SINGLEAMSDU_CMDID); + + /* Station power save specific config */ + /* enable/disable station powersave */ + WMI_RETURN_STRING(WMI_STA_POWERSAVE_MODE_CMDID); + /* set station power save specific parameter */ + WMI_RETURN_STRING(WMI_STA_POWERSAVE_PARAM_CMDID); + /* set station mimo powersave mode */ + WMI_RETURN_STRING(WMI_STA_MIMO_PS_MODE_CMDID); + + /* DFS-specific commands */ + /* enable DFS (radar detection)*/ + WMI_RETURN_STRING(WMI_PDEV_DFS_ENABLE_CMDID); + /* disable DFS (radar detection)*/ + WMI_RETURN_STRING(WMI_PDEV_DFS_DISABLE_CMDID); + /* enable DFS phyerr/parse filter offload */ + WMI_RETURN_STRING(WMI_DFS_PHYERR_FILTER_ENA_CMDID); + /* enable DFS phyerr/parse filter offload */ + WMI_RETURN_STRING(WMI_DFS_PHYERR_FILTER_DIS_CMDID); + + /* Roaming specific commands */ + /* set roam scan mode */ + WMI_RETURN_STRING(WMI_ROAM_SCAN_MODE); + /* set roam scan rssi threshold below which roam + * scan is enabled */ + WMI_RETURN_STRING(WMI_ROAM_SCAN_RSSI_THRESHOLD); + /* set roam scan period for periodic roam scan mode */ + WMI_RETURN_STRING(WMI_ROAM_SCAN_PERIOD); + /* set roam scan trigger rssi change threshold */ + WMI_RETURN_STRING(WMI_ROAM_SCAN_RSSI_CHANGE_THRESHOLD); + /* set roam AP profile */ + WMI_RETURN_STRING(WMI_ROAM_AP_PROFILE); + /* set channel list for roam scans */ + WMI_RETURN_STRING(WMI_ROAM_CHAN_LIST); + /* offload scan specific commands */ + /* set offload scan AP profile */ + WMI_RETURN_STRING(WMI_OFL_SCAN_ADD_AP_PROFILE); + /* remove offload scan AP profile */ + WMI_RETURN_STRING(WMI_OFL_SCAN_REMOVE_AP_PROFILE); + /* set offload scan period */ + WMI_RETURN_STRING(WMI_OFL_SCAN_PERIOD); + + /* P2P specific commands */ + /* set P2P device info. FW will used by FW to create P2P IE + * to be carried in probe response generated during p2p listen + * and for p2p discoverability */ + WMI_RETURN_STRING(WMI_P2P_DEV_SET_DEVICE_INFO); + /* enable/disable p2p discoverability on STA/AP VDEVs */ + WMI_RETURN_STRING(WMI_P2P_DEV_SET_DISCOVERABILITY); + /* set p2p ie to be carried in beacons generated by FW for GO */ + WMI_RETURN_STRING(WMI_P2P_GO_SET_BEACON_IE); + /* set p2p ie to be carried in probe response frames generated + * by FW for GO */ + WMI_RETURN_STRING(WMI_P2P_GO_SET_PROBE_RESP_IE); + /* set the vendor specific p2p ie data. + * FW will use this to parse the P2P NoA + * attribute in the beacons/probe responses received. + */ + WMI_RETURN_STRING(WMI_P2P_SET_VENDOR_IE_DATA_CMDID); + /* set the configure of p2p find offload */ + WMI_RETURN_STRING(WMI_P2P_DISC_OFFLOAD_CONFIG_CMDID); + /* set the vendor specific p2p ie data for p2p find offload */ + WMI_RETURN_STRING(WMI_P2P_DISC_OFFLOAD_APPIE_CMDID); + /* set the BSSID/device name pattern of p2p find offload */ + WMI_RETURN_STRING(WMI_P2P_DISC_OFFLOAD_PATTERN_CMDID); + /* set OppPS related parameters **/ + WMI_RETURN_STRING(WMI_P2P_SET_OPPPS_PARAM_CMDID); + + /* AP power save specific config + * set AP power save specific param */ + WMI_RETURN_STRING(WMI_AP_PS_PEER_PARAM_CMDID); + /* set AP UAPSD coex pecific param */ + WMI_RETURN_STRING(WMI_AP_PS_PEER_UAPSD_COEX_CMDID); + + /* Rate-control specific commands */ + WMI_RETURN_STRING(WMI_PEER_RATE_RETRY_SCHED_CMDID); + + /* WLAN Profiling commands. */ + WMI_RETURN_STRING(WMI_WLAN_PROFILE_TRIGGER_CMDID); + WMI_RETURN_STRING(WMI_WLAN_PROFILE_SET_HIST_INTVL_CMDID); + WMI_RETURN_STRING(WMI_WLAN_PROFILE_GET_PROFILE_DATA_CMDID); + WMI_RETURN_STRING(WMI_WLAN_PROFILE_ENABLE_PROFILE_ID_CMDID); + WMI_RETURN_STRING(WMI_WLAN_PROFILE_LIST_PROFILE_ID_CMDID); + + /* Suspend resume command Ids */ + WMI_RETURN_STRING(WMI_PDEV_SUSPEND_CMDID); + WMI_RETURN_STRING(WMI_PDEV_RESUME_CMDID); + + /* Beacon filter commands */ + /* add a beacon filter */ + WMI_RETURN_STRING(WMI_ADD_BCN_FILTER_CMDID); + /* remove a beacon filter */ + WMI_RETURN_STRING(WMI_RMV_BCN_FILTER_CMDID); + + /* WOW Specific WMI commands */ + /* add pattern for awake */ + WMI_RETURN_STRING(WMI_WOW_ADD_WAKE_PATTERN_CMDID); + /* deleta a wake pattern */ + WMI_RETURN_STRING(WMI_WOW_DEL_WAKE_PATTERN_CMDID); + /* enable/deisable wake event */ + WMI_RETURN_STRING(WMI_WOW_ENABLE_DISABLE_WAKE_EVENT_CMDID); + /* enable WOW */ + WMI_RETURN_STRING(WMI_WOW_ENABLE_CMDID); + /* host woke up from sleep event to FW. Generated in response + * to WOW Hardware event */ + WMI_RETURN_STRING(WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID); + + /* RTT measurement related cmd */ + /* reques to make an RTT measurement */ + WMI_RETURN_STRING(WMI_RTT_MEASREQ_CMDID); + /* reques to report a tsf measurement */ + WMI_RETURN_STRING(WMI_RTT_TSF_CMDID); + + /* spectral scan command */ + /* configure spectral scan */ + WMI_RETURN_STRING(WMI_VDEV_SPECTRAL_SCAN_CONFIGURE_CMDID); + /* enable/disable spectral scan and trigger */ + WMI_RETURN_STRING(WMI_VDEV_SPECTRAL_SCAN_ENABLE_CMDID); + + /* F/W stats */ + /* one time request for stats */ + WMI_RETURN_STRING(WMI_REQUEST_STATS_CMDID); + /* Push MCC Adaptive Scheduler Stats to Firmware */ + WMI_RETURN_STRING(WMI_MCC_SCHED_TRAFFIC_STATS_CMDID); + + /* ARP OFFLOAD REQUEST*/ + WMI_RETURN_STRING(WMI_SET_ARP_NS_OFFLOAD_CMDID); + + /* Proactive ARP Response Add Pattern Command*/ + WMI_RETURN_STRING(WMI_ADD_PROACTIVE_ARP_RSP_PATTERN_CMDID); + + /* Proactive ARP Response Del Pattern Command*/ + WMI_RETURN_STRING(WMI_DEL_PROACTIVE_ARP_RSP_PATTERN_CMDID); + + /* NS offload confid*/ + WMI_RETURN_STRING(WMI_NETWORK_LIST_OFFLOAD_CONFIG_CMDID); + + /* GTK offload Specific WMI commands */ + WMI_RETURN_STRING(WMI_GTK_OFFLOAD_CMDID); + + /* CSA offload Specific WMI commands */ + /* csa offload enable */ + WMI_RETURN_STRING(WMI_CSA_OFFLOAD_ENABLE_CMDID); + /* chan switch command */ + WMI_RETURN_STRING(WMI_CSA_OFFLOAD_CHANSWITCH_CMDID); + + /* Chatter commands */ + /* Change chatter mode of operation */ + WMI_RETURN_STRING(WMI_CHATTER_SET_MODE_CMDID); + /* chatter add coalescing filter command */ + WMI_RETURN_STRING(WMI_CHATTER_ADD_COALESCING_FILTER_CMDID); + /* chatter delete coalescing filter command */ + WMI_RETURN_STRING(WMI_CHATTER_DELETE_COALESCING_FILTER_CMDID); + /* chatter coalecing query command */ + WMI_RETURN_STRING(WMI_CHATTER_COALESCING_QUERY_CMDID); + + /* addba specific commands */ + /* start the aggregation on this TID */ + WMI_RETURN_STRING(WMI_PEER_TID_ADDBA_CMDID); + /* stop the aggregation on this TID */ + WMI_RETURN_STRING(WMI_PEER_TID_DELBA_CMDID); + + /* set station mimo powersave method */ + WMI_RETURN_STRING(WMI_STA_DTIM_PS_METHOD_CMDID); + /* Configure the Station UAPSD AC Auto Trigger Parameters */ + WMI_RETURN_STRING(WMI_STA_UAPSD_AUTO_TRIG_CMDID); + /* Configure the Keep Alive Parameters */ + WMI_RETURN_STRING(WMI_STA_KEEPALIVE_CMDID); + + /* Request ssn from target for a sta/tid pair */ + WMI_RETURN_STRING(WMI_BA_REQ_SSN_CMDID); + /* misc command group */ + /* echo command mainly used for testing */ + WMI_RETURN_STRING(WMI_ECHO_CMDID); + + /* !!IMPORTANT!! + * If you need to add a new WMI command to the + * WMI_RETURN_STRING(WMI_GRP_MISC) sub-group, + * please make sure you add it BEHIND + * WMI_RETURN_STRING(WMI_PDEV_UTF_CMDID); + * as we MUST have a fixed value here to maintain compatibility between + * UTF and the ART2 driver + */ + /* UTF WMI commands */ + WMI_RETURN_STRING(WMI_PDEV_UTF_CMDID); + + /* set debug log config */ + WMI_RETURN_STRING(WMI_DBGLOG_CFG_CMDID); + /* QVIT specific command id */ + WMI_RETURN_STRING(WMI_PDEV_QVIT_CMDID); + /* Factory Testing Mode request command + * used for integrated chipsets */ + WMI_RETURN_STRING(WMI_PDEV_FTM_INTG_CMDID); + /* set and get keepalive parameters command */ + WMI_RETURN_STRING(WMI_VDEV_SET_KEEPALIVE_CMDID); + WMI_RETURN_STRING(WMI_VDEV_GET_KEEPALIVE_CMDID); + /* For fw recovery test command */ + WMI_RETURN_STRING(WMI_FORCE_FW_HANG_CMDID); + /* Set Mcast/Bdcast filter */ + WMI_RETURN_STRING(WMI_SET_MCASTBCAST_FILTER_CMDID); + /* set thermal management params */ + WMI_RETURN_STRING(WMI_THERMAL_MGMT_CMDID); + WMI_RETURN_STRING(WMI_RSSI_BREACH_MONITOR_CONFIG_CMDID); + WMI_RETURN_STRING(WMI_LRO_CONFIG_CMDID); + WMI_RETURN_STRING(WMI_TRANSFER_DATA_TO_FLASH_CMDID); + WMI_RETURN_STRING(WMI_CONFIG_ENHANCED_MCAST_FILTER_CMDID); + WMI_RETURN_STRING(WMI_VDEV_WISA_CMDID); + WMI_RETURN_STRING(WMI_SCAN_ADAPTIVE_DWELL_CONFIG_CMDID); + WMI_RETURN_STRING(WMI_WOW_SET_ACTION_WAKE_UP_CMDID); + WMI_RETURN_STRING(WMI_MAWC_SENSOR_REPORT_IND_CMDID); + WMI_RETURN_STRING(WMI_ROAM_CONFIGURE_MAWC_CMDID); + WMI_RETURN_STRING(WMI_NLO_CONFIGURE_MAWC_CMDID); + WMI_RETURN_STRING(WMI_EXTSCAN_CONFIGURE_MAWC_CMDID); + /* GPIO Configuration */ + WMI_RETURN_STRING(WMI_GPIO_CONFIG_CMDID); + WMI_RETURN_STRING(WMI_GPIO_OUTPUT_CMDID); + + /* Txbf configuration command */ + WMI_RETURN_STRING(WMI_TXBF_CMDID); + + /* FWTEST Commands */ + WMI_RETURN_STRING(WMI_FWTEST_VDEV_MCC_SET_TBTT_MODE_CMDID); + /* set NoA descs */ + WMI_RETURN_STRING(WMI_FWTEST_P2P_SET_NOA_PARAM_CMDID); + + /* TDLS Configuration */ + /* enable/disable TDLS */ + WMI_RETURN_STRING(WMI_TDLS_SET_STATE_CMDID); + /* set tdls peer state */ + WMI_RETURN_STRING(WMI_TDLS_PEER_UPDATE_CMDID); + + /* Resmgr Configuration */ + /* Adaptive OCS is enabled by default in the FW. + * This command is used to disable FW based adaptive OCS. + */ + WMI_RETURN_STRING + (WMI_RESMGR_ADAPTIVE_OCS_ENABLE_DISABLE_CMDID); + /* set the requested channel time quota for the home channels */ + WMI_RETURN_STRING(WMI_RESMGR_SET_CHAN_TIME_QUOTA_CMDID); + /* set the requested latency for the home channels */ + WMI_RETURN_STRING(WMI_RESMGR_SET_CHAN_LATENCY_CMDID); + + /* STA SMPS Configuration */ + /* force SMPS mode */ + WMI_RETURN_STRING(WMI_STA_SMPS_FORCE_MODE_CMDID); + /* set SMPS parameters */ + WMI_RETURN_STRING(WMI_STA_SMPS_PARAM_CMDID); + + /* Wlan HB commands */ + /* enalbe/disable wlan HB */ + WMI_RETURN_STRING(WMI_HB_SET_ENABLE_CMDID); + /* set tcp parameters for wlan HB */ + WMI_RETURN_STRING(WMI_HB_SET_TCP_PARAMS_CMDID); + /* set tcp pkt filter for wlan HB */ + WMI_RETURN_STRING(WMI_HB_SET_TCP_PKT_FILTER_CMDID); + /* set udp parameters for wlan HB */ + WMI_RETURN_STRING(WMI_HB_SET_UDP_PARAMS_CMDID); + /* set udp pkt filter for wlan HB */ + WMI_RETURN_STRING(WMI_HB_SET_UDP_PKT_FILTER_CMDID); + + /* Wlan RMC commands*/ + /* enable/disable RMC */ + WMI_RETURN_STRING(WMI_RMC_SET_MODE_CMDID); + /* configure action frame period */ + WMI_RETURN_STRING(WMI_RMC_SET_ACTION_PERIOD_CMDID); + /* For debug/future enhancement purposes only, + * configures/finetunes RMC algorithms */ + WMI_RETURN_STRING(WMI_RMC_CONFIG_CMDID); + + /* WLAN MHF offload commands */ + /* enable/disable MHF offload */ + WMI_RETURN_STRING(WMI_MHF_OFFLOAD_SET_MODE_CMDID); + /* Plumb routing table for MHF offload */ + WMI_RETURN_STRING(WMI_MHF_OFFLOAD_PLUMB_ROUTING_TBL_CMDID); + + /* location scan commands */ + /* start batch scan */ + WMI_RETURN_STRING(WMI_BATCH_SCAN_ENABLE_CMDID); + /* stop batch scan */ + WMI_RETURN_STRING(WMI_BATCH_SCAN_DISABLE_CMDID); + /* get batch scan result */ + WMI_RETURN_STRING(WMI_BATCH_SCAN_TRIGGER_RESULT_CMDID); + /* OEM related cmd */ + WMI_RETURN_STRING(WMI_OEM_REQ_CMDID); + WMI_RETURN_STRING(WMI_OEM_REQUEST_CMDID); + /* NAN request cmd */ + WMI_RETURN_STRING(WMI_NAN_CMDID); + /* Modem power state cmd */ + WMI_RETURN_STRING(WMI_MODEM_POWER_STATE_CMDID); + WMI_RETURN_STRING(WMI_REQUEST_STATS_EXT_CMDID); + WMI_RETURN_STRING(WMI_OBSS_SCAN_ENABLE_CMDID); + WMI_RETURN_STRING(WMI_OBSS_SCAN_DISABLE_CMDID); + WMI_RETURN_STRING(WMI_PEER_GET_ESTIMATED_LINKSPEED_CMDID); + WMI_RETURN_STRING(WMI_ROAM_SCAN_CMD); + WMI_RETURN_STRING(WMI_PDEV_SET_LED_CONFIG_CMDID); + WMI_RETURN_STRING(WMI_HOST_AUTO_SHUTDOWN_CFG_CMDID); + WMI_RETURN_STRING(WMI_CHAN_AVOID_UPDATE_CMDID); + WMI_RETURN_STRING(WMI_COEX_CONFIG_CMDID); + WMI_RETURN_STRING(WMI_WOW_IOAC_ADD_KEEPALIVE_CMDID); + WMI_RETURN_STRING(WMI_WOW_IOAC_DEL_KEEPALIVE_CMDID); + WMI_RETURN_STRING(WMI_WOW_IOAC_ADD_WAKE_PATTERN_CMDID); + WMI_RETURN_STRING(WMI_WOW_IOAC_DEL_WAKE_PATTERN_CMDID); + WMI_RETURN_STRING(WMI_REQUEST_LINK_STATS_CMDID); + WMI_RETURN_STRING(WMI_START_LINK_STATS_CMDID); + WMI_RETURN_STRING(WMI_CLEAR_LINK_STATS_CMDID); + WMI_RETURN_STRING(WMI_GET_FW_MEM_DUMP_CMDID); + WMI_RETURN_STRING(WMI_LPI_MGMT_SNOOPING_CONFIG_CMDID); + WMI_RETURN_STRING(WMI_LPI_START_SCAN_CMDID); + WMI_RETURN_STRING(WMI_LPI_STOP_SCAN_CMDID); + WMI_RETURN_STRING(WMI_EXTSCAN_START_CMDID); + WMI_RETURN_STRING(WMI_EXTSCAN_STOP_CMDID); + WMI_RETURN_STRING(WMI_EXTSCAN_CONFIGURE_WLAN_CHANGE_MONITOR_CMDID); + WMI_RETURN_STRING(WMI_EXTSCAN_CONFIGURE_HOTLIST_MONITOR_CMDID); + WMI_RETURN_STRING(WMI_EXTSCAN_GET_CACHED_RESULTS_CMDID); + WMI_RETURN_STRING(WMI_EXTSCAN_GET_WLAN_CHANGE_RESULTS_CMDID); + WMI_RETURN_STRING(WMI_EXTSCAN_SET_CAPABILITIES_CMDID); + WMI_RETURN_STRING(WMI_EXTSCAN_GET_CAPABILITIES_CMDID); + WMI_RETURN_STRING(WMI_EXTSCAN_CONFIGURE_HOTLIST_SSID_MONITOR_CMDID); + WMI_RETURN_STRING(WMI_ROAM_SYNCH_COMPLETE); + WMI_RETURN_STRING(WMI_D0_WOW_ENABLE_DISABLE_CMDID); + WMI_RETURN_STRING(WMI_EXTWOW_ENABLE_CMDID); + WMI_RETURN_STRING(WMI_EXTWOW_SET_APP_TYPE1_PARAMS_CMDID); + WMI_RETURN_STRING(WMI_EXTWOW_SET_APP_TYPE2_PARAMS_CMDID); + WMI_RETURN_STRING(WMI_UNIT_TEST_CMDID); + WMI_RETURN_STRING(WMI_ROAM_SET_RIC_REQUEST_CMDID); + WMI_RETURN_STRING(WMI_PDEV_GET_TEMPERATURE_CMDID); + WMI_RETURN_STRING(WMI_SET_DHCP_SERVER_OFFLOAD_CMDID); + WMI_RETURN_STRING(WMI_TPC_CHAINMASK_CONFIG_CMDID); + WMI_RETURN_STRING(WMI_IPA_OFFLOAD_ENABLE_DISABLE_CMDID); + WMI_RETURN_STRING(WMI_SCAN_PROB_REQ_OUI_CMDID); + WMI_RETURN_STRING(WMI_TDLS_SET_OFFCHAN_MODE_CMDID); + WMI_RETURN_STRING(WMI_PDEV_SET_LED_FLASHING_CMDID); + WMI_RETURN_STRING(WMI_MDNS_OFFLOAD_ENABLE_CMDID); + WMI_RETURN_STRING(WMI_MDNS_SET_FQDN_CMDID); + WMI_RETURN_STRING(WMI_MDNS_SET_RESPONSE_CMDID); + WMI_RETURN_STRING(WMI_MDNS_GET_STATS_CMDID); + WMI_RETURN_STRING(WMI_ROAM_INVOKE_CMDID); + WMI_RETURN_STRING(WMI_SET_ANTENNA_DIVERSITY_CMDID); + WMI_RETURN_STRING(WMI_SAP_OFL_ENABLE_CMDID); + WMI_RETURN_STRING(WMI_APFIND_CMDID); + WMI_RETURN_STRING(WMI_PASSPOINT_LIST_CONFIG_CMDID); + WMI_RETURN_STRING(WMI_OCB_SET_SCHED_CMDID); + WMI_RETURN_STRING(WMI_OCB_SET_CONFIG_CMDID); + WMI_RETURN_STRING(WMI_OCB_SET_UTC_TIME_CMDID); + WMI_RETURN_STRING(WMI_OCB_START_TIMING_ADVERT_CMDID); + WMI_RETURN_STRING(WMI_OCB_STOP_TIMING_ADVERT_CMDID); + WMI_RETURN_STRING(WMI_OCB_GET_TSF_TIMER_CMDID); + WMI_RETURN_STRING(WMI_DCC_GET_STATS_CMDID); + WMI_RETURN_STRING(WMI_DCC_CLEAR_STATS_CMDID); + WMI_RETURN_STRING(WMI_DCC_UPDATE_NDL_CMDID); + WMI_RETURN_STRING(WMI_ROAM_FILTER_CMDID); + WMI_RETURN_STRING(WMI_ROAM_SUBNET_CHANGE_CONFIG_CMDID); + WMI_RETURN_STRING(WMI_DEBUG_MESG_FLUSH_CMDID); + WMI_RETURN_STRING(WMI_PEER_SET_RATE_REPORT_CONDITION_CMDID); + WMI_RETURN_STRING(WMI_SOC_SET_PCL_CMDID); + WMI_RETURN_STRING(WMI_SOC_SET_HW_MODE_CMDID); + WMI_RETURN_STRING(WMI_SOC_SET_DUAL_MAC_CONFIG_CMDID); + WMI_RETURN_STRING(WMI_WOW_ENABLE_ICMPV6_NA_FLT_CMDID); + WMI_RETURN_STRING(WMI_DIAG_EVENT_LOG_CONFIG_CMDID); + WMI_RETURN_STRING(WMI_PACKET_FILTER_CONFIG_CMDID); + WMI_RETURN_STRING(WMI_PACKET_FILTER_ENABLE_CMDID); + WMI_RETURN_STRING(WMI_SAP_SET_BLACKLIST_PARAM_CMDID); + WMI_RETURN_STRING(WMI_WOW_UDP_SVC_OFLD_CMDID); + WMI_RETURN_STRING(WMI_MGMT_TX_SEND_CMDID); + WMI_RETURN_STRING(WMI_SOC_SET_ANTENNA_MODE_CMDID); + WMI_RETURN_STRING(WMI_WOW_HOSTWAKEUP_GPIO_PIN_PATTERN_CONFIG_CMDID); + WMI_RETURN_STRING(WMI_AP_PS_EGAP_PARAM_CMDID); + WMI_RETURN_STRING(WMI_PMF_OFFLOAD_SET_SA_QUERY_CMDID); + WMI_RETURN_STRING(WMI_BPF_GET_CAPABILITY_CMDID); + WMI_RETURN_STRING(WMI_BPF_GET_VDEV_STATS_CMDID); + WMI_RETURN_STRING(WMI_BPF_SET_VDEV_INSTRUCTIONS_CMDID); + WMI_RETURN_STRING(WMI_BPF_DEL_VDEV_INSTRUCTIONS_CMDID); + WMI_RETURN_STRING(WMI_NDI_GET_CAP_REQ_CMDID); + WMI_RETURN_STRING(WMI_NDP_INITIATOR_REQ_CMDID); + WMI_RETURN_STRING(WMI_NDP_RESPONDER_REQ_CMDID); + WMI_RETURN_STRING(WMI_NDP_END_REQ_CMDID); + WMI_RETURN_STRING(WMI_PEER_UPDATE_WDS_ENTRY_CMDID); + WMI_RETURN_STRING(WMI_PEER_ADD_PROXY_STA_ENTRY_CMDID); + WMI_RETURN_STRING(WMI_PDEV_FIPS_CMDID); + WMI_RETURN_STRING(WMI_PDEV_SMART_ANT_ENABLE_CMDID); + WMI_RETURN_STRING(WMI_PDEV_SMART_ANT_SET_RX_ANTENNA_CMDID); + WMI_RETURN_STRING(WMI_PDEV_SET_ANTENNA_SWITCH_TABLE_CMDID); + WMI_RETURN_STRING(WMI_PDEV_SET_CTL_TABLE_CMDID); + WMI_RETURN_STRING(WMI_PDEV_SET_MIMOGAIN_TABLE_CMDID); + WMI_RETURN_STRING(WMI_PDEV_GET_TPC_CMDID); + WMI_RETURN_STRING(WMI_MIB_STATS_ENABLE_CMDID); + WMI_RETURN_STRING(WMI_PDEV_GET_ANI_CCK_CONFIG_CMDID); + WMI_RETURN_STRING(WMI_PDEV_GET_ANI_OFDM_CONFIG_CMDID); + WMI_RETURN_STRING(WMI_VDEV_RATEMASK_CMDID); + WMI_RETURN_STRING(WMI_VDEV_ATF_REQUEST_CMDID); + WMI_RETURN_STRING(WMI_VDEV_SET_DSCP_TID_MAP_CMDID); + WMI_RETURN_STRING(WMI_VDEV_FILTER_NEIGHBOR_RX_PACKETS_CMDID); + WMI_RETURN_STRING(WMI_VDEV_SET_QUIET_MODE_CMDID); + WMI_RETURN_STRING(WMI_PEER_SMART_ANT_SET_TX_ANTENNA_CMDID); + WMI_RETURN_STRING(WMI_PEER_SMART_ANT_SET_TRAIN_INFO_CMDID); + WMI_RETURN_STRING(WMI_PEER_SMART_ANT_SET_NODE_CONFIG_OPS_CMDID); + WMI_RETURN_STRING(WMI_PEER_ATF_REQUEST_CMDID); + WMI_RETURN_STRING(WMI_FWTEST_CMDID); + WMI_RETURN_STRING(WMI_QBOOST_CFG_CMDID); + WMI_RETURN_STRING(WMI_PDEV_GET_NFCAL_POWER_CMDID); + WMI_RETURN_STRING(WMI_PDEV_SET_PCL_CMDID); + WMI_RETURN_STRING(WMI_PDEV_SET_HW_MODE_CMDID); + WMI_RETURN_STRING(WMI_PDEV_SET_MAC_CONFIG_CMDID); + WMI_RETURN_STRING(WMI_PDEV_SET_ANTENNA_MODE_CMDID); + WMI_RETURN_STRING(WMI_ROAM_SET_MBO_PARAM_CMDID); + WMI_RETURN_STRING(WMI_CHAN_AVOID_RPT_ALLOW_CMDID); + WMI_RETURN_STRING(WMI_SET_PERIODIC_CHANNEL_STATS_CONFIG_CMDID); + WMI_RETURN_STRING(WMI_VDEV_SET_CUSTOM_AGGR_SIZE_CMDID); + WMI_RETURN_STRING(WMI_PDEV_WAL_POWER_DEBUG_CMDID); + WMI_RETURN_STRING(WMI_PEER_BWF_REQUEST_CMDID); + WMI_RETURN_STRING(WMI_DBGLOG_TIME_STAMP_SYNC_CMDID); + WMI_RETURN_STRING(WMI_P2P_LISTEN_OFFLOAD_START_CMDID); + WMI_RETURN_STRING(WMI_P2P_LISTEN_OFFLOAD_STOP_CMDID); + WMI_RETURN_STRING(WMI_PEER_REORDER_QUEUE_SETUP_CMDID); + WMI_RETURN_STRING(WMI_PEER_REORDER_QUEUE_REMOVE_CMDID); + WMI_RETURN_STRING(WMI_SET_MULTIPLE_MCAST_FILTER_CMDID); + WMI_RETURN_STRING(WMI_READ_DATA_FROM_FLASH_CMDID); + WMI_RETURN_STRING(WMI_PDEV_SET_REORDER_TIMEOUT_VAL_CMDID); + WMI_RETURN_STRING(WMI_PEER_SET_RX_BLOCKSIZE_CMDID); + WMI_RETURN_STRING(WMI_PDEV_SET_WAKEUP_CONFIG_CMDID); + WMI_RETURN_STRING(WMI_PDEV_GET_ANTDIV_STATUS_CMDID); + WMI_RETURN_STRING(WMI_PEER_ANTDIV_INFO_REQ_CMDID); + WMI_RETURN_STRING(WMI_MNT_FILTER_CMDID); + WMI_RETURN_STRING(WMI_PDEV_GET_CHIP_POWER_STATS_CMDID); + WMI_RETURN_STRING(WMI_COEX_GET_ANTENNA_ISOLATION_CMDID); + WMI_RETURN_STRING(WMI_PDEV_SET_STATS_THRESHOLD_CMDID); + WMI_RETURN_STRING(WMI_REQUEST_WLAN_STATS_CMDID); + WMI_RETURN_STRING(WMI_VDEV_ENCRYPT_DECRYPT_DATA_REQ_CMDID); + } + + return "Invalid WMI cmd"; +} +#endif /* WMI_CMD_STRINGS */ + +/** WMI commands/events for the regulatory offload */ + +/** Host indicating current country code to FW */ typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_coex_get_antenna_isolation_cmd_fixed_param */ - A_UINT32 tlv_header; - /* Currently there are no parameters for this message. */ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_set_current_country_cmd_fixed_param */ + A_UINT32 new_alpha2; /** alpha2 characters representing the country code */ +} wmi_set_current_country_cmd_fixed_param; + +/* Freq units in MHz */ +#define WMI_REG_RULE_START_FREQ_GET(freq_info) WMI_GET_BITS(freq_info, 0, 16) +#define WMI_REG_RULE_START_FREQ_SET(freq_info, value) WMI_SET_BITS(freq_info, 0, 16, value) +#define WMI_REG_RULE_END_FREQ_GET(freq_info) WMI_GET_BITS(freq_info, 16, 16) +#define WMI_REG_RULE_END_FREQ_SET(freq_info, value) WMI_SET_BITS(freq_info, 16, 16, value) + +/* BW in MHz */ +#define WMI_REG_RULE_MAX_BW_GET(bw_info) WMI_GET_BITS(bw_info, 0, 16) +#define WMI_REG_RULE_MAX_BW_SET(bw_info, value) WMI_SET_BITS(bw_info, 0, 16, value) +/* regpower in dBm */ +#define WMI_REG_RULE_REG_POWER_GET(bw_info) WMI_GET_BITS(bw_info, 16, 8) +#define WMI_REG_RULE_REG_POWER_SET(bw_info, value) WMI_SET_BITS(bw_info, 16, 8, value) + +typedef enum { + WMI_REG_FLAG_CHAN_NO_IR = 0x0001, /* passive channel */ + WMI_REG_FLAG_CHAN_RADAR = 0x0002, /* dfs channel */ + WMI_REG_FLAG_CHAN_NO_OFDM = 0x0004, /* no ofdm channel */ + WMI_REG_FLAG_CHAN_INDOOR_ONLY = 0x0008, /* indoor only channel */ +} WMI_REGULATORY_FLAGS; + +#define WMI_REG_RULE_FLAGS_GET(flag_info) WMI_GET_BITS(flag_info, 0, 16) +#define WMI_REG_RULE_FLAGS_SET(flag_info, value) WMI_SET_BITS(flag_info, 0, 16, value) + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_regulatory_rule_struct */ + A_UINT32 freq_info; /* u16 start_freq, u16 end_freq */ + A_UINT32 bw_info; /* u16 max_bw, u8 reg_power, u8 reserved */ + A_UINT32 power_flag_info; /* u16 flags, u16 reserved */ +} wmi_regulatory_rule_struct; + +typedef enum { + WMI_REG_DFS_UNINIT_REGION = 0, + WMI_REG_DFS_FCC_REGION = 1, + WMI_REG_DFS_ETSI_REGION = 2, + WMI_REG_DFS_MKK_REGION = 3, + WMI_REG_DFS_CN_REGION = 4, + WMI_REG_DFS_KR_REGION = 5, + + /* Add new items above */ + WMI_REG_DFS_UNDEF_REGION = 0xFFFF, +} WMI_REG_DFS_REGION; + +typedef enum { + WMI_REGULATORY_PHYMODE_NO11A = 0x0001, /* NO 11A */ + WMI_REGULATORY_PHYMODE_NO11B = 0x0002, /* NO 11B */ + WMI_REGULATORY_PHYMODE_NO11G = 0x0004, /* NO 11G */ + WMI_REGULATORY_PHYMODE_NO11N = 0x0008, /* NO 11N */ + WMI_REGULATORY_PHYMODE_NO11AC = 0x0010, /* NO 11AC */ + WMI_REGULATORY_PHYMODE_NO11AX = 0x0020, /* NO 11AX */ +} WMI_REGULATORY_PHYBITMAP; + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_reg_chan_list_cc_event_fixed_param */ + A_UINT32 alpha2; + A_UINT32 dfs_region; /* WMI_REG_DFS_REGION */ + A_UINT32 phybitmap; /* WMI_REGULATORY_PHYBITMAP */ + A_UINT32 min_bw_2g; /* BW in MHz */ + A_UINT32 max_bw_2g; /* BW in MHz */ + A_UINT32 min_bw_5g; /* BW in MHz */ + A_UINT32 max_bw_5g; /* BW in MHz */ + A_UINT32 num_2g_reg_rules; + A_UINT32 num_5g_reg_rules; +/* followed by wmi_regulatory_rule_struct TLV array. First 2G and then 5G */ +} wmi_reg_chan_list_cc_event_fixed_param; + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_11d_scan_start_cmd_fixed_param */ + A_UINT32 vdev_id; + A_UINT32 scan_period_msec; /** scan duration in milli-seconds */ + A_UINT32 start_interval_msec; /** offset duration to start the scan in milli-seconds */ +} wmi_11d_scan_start_cmd_fixed_param; + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_11d_scan_stop_cmd_fixed_param */ + A_UINT32 vdev_id; +} wmi_11d_scan_stop_cmd_fixed_param; + +/** FW indicating new current country code to Host */ +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_11d_new_country_event_fixed_param */ + A_UINT32 new_alpha2; /** alpha2 characters representing the country code */ +} wmi_11d_new_country_event_fixed_param; + +typedef struct { + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_coex_get_antenna_isolation_cmd_fixed_param */ + A_UINT32 tlv_header; + /* Currently there are no parameters for this message. */ } wmi_coex_get_antenna_isolation_cmd_fixed_param; typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_coex_report_isolation_event_fixed_param */ - A_UINT32 tlv_header; - /** Antenna isolation value in dB units, none zero value is valid while 0 means failed to do isolation measurement or corresponding chain is not active. - * Currently the HW descriptor only supports 4 chains at most. - * Further isolation_chainX elements can be added in the future - * for additional chains, if needed. - */ - A_UINT32 isolation_chain0:8, /* [7:0], isolation value for chain 0 */ - isolation_chain1:8, /* [15:8], isolation value for chain 1 */ - isolation_chain2:8, /* [23:16], isolation value for chain 2 */ - isolation_chain3:8; /* [31:24], isolation value for chain 3 */ + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_coex_report_isolation_event_fixed_param */ + A_UINT32 tlv_header; + /** Antenna isolation value in dB units, none zero value is valid while 0 means failed to do isolation measurement or corresponding chain is not active. + * Currently the HW descriptor only supports 4 chains at most. + * Further isolation_chainX elements can be added in the future + * for additional chains, if needed. + */ + A_UINT32 isolation_chain0:8, /* [7:0], isolation value for chain 0 */ + isolation_chain1:8, /* [15:8], isolation value for chain 1 */ + isolation_chain2:8, /* [23:16], isolation value for chain 2 */ + isolation_chain3:8; /* [31:24], isolation value for chain 3 */ } wmi_coex_report_isolation_event_fixed_param; typedef enum { - WMI_RCPI_MEASUREMENT_TYPE_AVG_MGMT = 1, - WMI_RCPI_MEASUREMENT_TYPE_AVG_DATA = 2, - WMI_RCPI_MEASUREMENT_TYPE_LAST_MGMT = 3, - WMI_RCPI_MEASUREMENT_TYPE_LAST_DATA = 4, + WMI_RCPI_MEASUREMENT_TYPE_AVG_MGMT = 1, + WMI_RCPI_MEASUREMENT_TYPE_AVG_DATA = 2, + WMI_RCPI_MEASUREMENT_TYPE_LAST_MGMT = 3, + WMI_RCPI_MEASUREMENT_TYPE_LAST_DATA = 4, } wmi_rcpi_measurement_type; typedef struct { - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_request_rcpi_cmd_fixed_param */ - A_UINT32 tlv_header; - /* VDEV identifier */ - A_UINT32 vdev_id; - /* peer MAC address */ - wmi_mac_addr peer_macaddr; - /* measurement type - defined in enum wmi_rcpi_measurement_type */ - A_UINT32 measurement_type; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_request_rcpi_cmd_fixed_param */ + A_UINT32 tlv_header; + /* VDEV identifier */ + A_UINT32 vdev_id; + /* peer MAC address */ + wmi_mac_addr peer_macaddr; + /* measurement type - defined in enum wmi_rcpi_measurement_type */ + A_UINT32 measurement_type; } wmi_request_rcpi_cmd_fixed_param; typedef struct { - /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_update_rcpi_event_fixed_param */ - A_UINT32 tlv_header; - /* VDEV identifier */ - A_UINT32 vdev_id; - /* peer MAC address */ - wmi_mac_addr peer_macaddr; - /* measurement type - defined in enum wmi_rcpi_measurement_type */ - A_UINT32 measurement_type; - /* Measured RCPI in dBm of the peer requested by host */ - A_INT32 rcpi; - /** status - * 0 - Requested peer RCPI available - * 1 - Requested peer RCPI not available - */ - A_UINT32 status; + /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_update_rcpi_event_fixed_param */ + A_UINT32 tlv_header; + /* VDEV identifier */ + A_UINT32 vdev_id; + /* peer MAC address */ + wmi_mac_addr peer_macaddr; + /* measurement type - defined in enum wmi_rcpi_measurement_type */ + A_UINT32 measurement_type; + /* Measured RCPI in dBm of the peer requested by host */ + A_INT32 rcpi; + /** status + * 0 - Requested peer RCPI available + * 1 - Requested peer RCPI not available + */ + A_UINT32 status; } wmi_update_rcpi_event_fixed_param; +/* Definition of mask for various package id */ +#define WMI_PKGID_MASK_AUTO 0x00000080 + +typedef struct { + /** TLV tag and len; tag equals*/ + A_UINT32 tlv_header; + /** + * The value field is filled with WMI_PKGID_MASK values. + * Currently, the only flag used within values is + * WMI_PKGID_MASK_AUTO, where bit7=1 for automotive systems. + */ + A_UINT32 value; +} wmi_pkgid_event_fixed_param; + + /* ADD NEW DEFS HERE */ + /***************************************************************************** * The following structures are deprecated. DO NOT USE THEM! */ - /** Max number of channels in the schedule. */ #define OCB_CHANNEL_MAX (5) -/* NOTE: Make sure these data structures are identical to those 9235 +/* NOTE: Make sure these data structures are identical to those * defined in sirApi.h */ -typedef struct { - /** Arbitration Inter-Frame Spacing. Range: 2-15 */ - A_UINT32 aifsn; - /** Contention Window minimum. Range: 1 - 10 */ - A_UINT32 cwmin; - /** Contention Window maximum. Range: 1 - 10 */ - A_UINT32 cwmax; +typedef struct +{ + /** Arbitration Inter-Frame Spacing. Range: 2-15 */ + A_UINT32 aifsn; + /** Contention Window minimum. Range: 1 - 10 */ + A_UINT32 cwmin; + /** Contention Window maximum. Range: 1 - 10 */ + A_UINT32 cwmax; } wmi_qos_params_t; -typedef struct { - /** Channel frequency in MHz */ - A_UINT32 chan_freq; - /** Channel duration in ms */ - A_UINT32 duration; - /** Start guard interval in ms */ - A_UINT32 start_guard_interval; - /** End guard interval in ms */ - A_UINT32 end_guard_interval; - /** Transmit power in dBm, range 0 - 23 */ - A_UINT32 tx_power; - /** Transmit datarate in Mbps */ - A_UINT32 tx_rate; - /** QoS parameters for each AC */ - wmi_qos_params_t qos_params[WLAN_MAX_AC]; - /** 1 to enable RX stats for this channel, 0 otherwise */ - A_UINT32 rx_stats; +typedef struct +{ + /** Channel frequency in MHz */ + A_UINT32 chan_freq; + /** Channel duration in ms */ + A_UINT32 duration; + /** Start guard interval in ms */ + A_UINT32 start_guard_interval; + /** End guard interval in ms */ + A_UINT32 end_guard_interval; + /** Transmit power in dBm, range 0 - 23 */ + A_UINT32 tx_power; + /** Transmit datarate in Mbps */ + A_UINT32 tx_rate; + /** QoS parameters for each AC */ + wmi_qos_params_t qos_params[WLAN_MAX_AC]; + /** 1 to enable RX stats for this channel, 0 otherwise */ + A_UINT32 rx_stats; } wmi_ocb_channel_t; typedef struct { - /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_ocb_set_sched_cmd_fixed_param */ - A_UINT32 tlv_header; - /* VDEV identifier */ - A_UINT32 vdev_id; - /** Number of valid channels in the channels array */ - A_UINT32 num_channels; - /** The array of channels */ - wmi_ocb_channel_t channels[OCB_CHANNEL_MAX]; - /** 1 to allow off-channel tx, 0 otherwise */ - A_UINT32 off_channel_tx; /* Not supported */ + /** TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_ocb_set_sched_cmd_fixed_param */ + A_UINT32 tlv_header; + /* VDEV identifier */ + A_UINT32 vdev_id; + /** Number of valid channels in the channels array */ + A_UINT32 num_channels; + /** The array of channels */ + wmi_ocb_channel_t channels[OCB_CHANNEL_MAX]; + /** 1 to allow off-channel tx, 0 otherwise */ + A_UINT32 off_channel_tx; /* Not supported */ } wmi_ocb_set_sched_cmd_fixed_param; typedef struct { - /** Return status. 0 for success, non-zero otherwise */ - A_UINT32 status; + /** Return status. 0 for success, non-zero otherwise */ + A_UINT32 status; } wmi_ocb_set_sched_event_fixed_param; -/** -* END DEPRECATED -*/ +/***************************************************************************** + * END DEPRECATED + */ + +/* ADD NEW DEFS ABOVE THIS DEPRECATED SECTION */ + + #ifdef __cplusplus } #endif + #endif /*_WMI_UNIFIED_H_*/ + /**@}*/ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 8886a362530e..eddf30f0765e 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -35,8 +35,8 @@ * compatibility. */ #define __WMI_VER_MINOR_ 0 /** WMI revision number has to be incremented when there is a - * change that may or may not break compatibility */ -#define __WMI_REVISION_ 320 + * change that may or may not break compatibility. */ +#define __WMI_REVISION_ 329 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work @@ -78,3 +78,4 @@ #define WMI_ABI_VERSION_NS_1 __NAMESPACE_1_ #define WMI_ABI_VERSION_NS_2 __NAMESPACE_2_ #define WMI_ABI_VERSION_NS_3 __NAMESPACE_3_ + diff --git a/fw/wmix.h b/fw/wmix.h index e7c7934b6739..243478299ef3 100644 --- a/fw/wmix.h +++ b/fw/wmix.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2014 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2016 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -53,29 +53,29 @@ extern "C" { * WMI_EVENT_ID=WMI_EXTENSION_EVENTID. */ typedef struct { - A_UINT32 commandId; + A_UINT32 commandId; } POSTPACK WMIX_CMD_HDR; typedef enum { - WMIX_DSETOPEN_REPLY_CMDID = 0x2001, - WMIX_DSETDATA_REPLY_CMDID, - WMIX_HB_CHALLENGE_RESP_CMDID, - WMIX_DBGLOG_CFG_MODULE_CMDID, - WMIX_PROF_CFG_CMDID, /* 0x200a */ - WMIX_PROF_ADDR_SET_CMDID, - WMIX_PROF_START_CMDID, - WMIX_PROF_STOP_CMDID, - WMIX_PROF_COUNT_GET_CMDID, + WMIX_DSETOPEN_REPLY_CMDID = 0x2001, + WMIX_DSETDATA_REPLY_CMDID, + WMIX_HB_CHALLENGE_RESP_CMDID, + WMIX_DBGLOG_CFG_MODULE_CMDID, + WMIX_PROF_CFG_CMDID, /* 0x200a */ + WMIX_PROF_ADDR_SET_CMDID, + WMIX_PROF_START_CMDID, + WMIX_PROF_STOP_CMDID, + WMIX_PROF_COUNT_GET_CMDID, } WMIX_COMMAND_ID; typedef enum { - WMIX_DSETOPENREQ_EVENTID = 0x3001, - WMIX_DSETCLOSE_EVENTID, - WMIX_DSETDATAREQ_EVENTID, - WMIX_HB_CHALLENGE_RESP_EVENTID, - WMIX_DBGLOG_EVENTID, - WMIX_PROF_COUNT_EVENTID, - WMIX_PKTLOG_EVENTID, + WMIX_DSETOPENREQ_EVENTID = 0x3001, + WMIX_DSETCLOSE_EVENTID, + WMIX_DSETDATAREQ_EVENTID, + WMIX_HB_CHALLENGE_RESP_EVENTID, + WMIX_DBGLOG_EVENTID, + WMIX_PROF_COUNT_EVENTID, + WMIX_PKTLOG_EVENTID, } WMIX_EVENT_ID; /* @@ -87,10 +87,10 @@ typedef enum { * DataSet Open Request Event */ typedef struct { - A_UINT32 dset_id; - A_UINT32 targ_dset_handle; /* echo'ed, not used by Host, */ - A_UINT32 targ_reply_fn; /* echo'ed, not used by Host, */ - A_UINT32 targ_reply_arg; /* echo'ed, not used by Host, */ + A_UINT32 dset_id; + A_UINT32 targ_dset_handle; /* echo'ed, not used by Host, */ + A_UINT32 targ_reply_fn; /* echo'ed, not used by Host, */ + A_UINT32 targ_reply_arg; /* echo'ed, not used by Host, */ } POSTPACK WMIX_DSETOPENREQ_EVENT; /* @@ -98,7 +98,7 @@ typedef struct { * DataSet Close Event */ typedef struct { - A_UINT32 access_cookie; + A_UINT32 access_cookie; } POSTPACK WMIX_DSETCLOSE_EVENT; /* @@ -106,32 +106,33 @@ typedef struct { * DataSet Data Request Event */ typedef struct { - A_UINT32 access_cookie; - A_UINT32 offset; - A_UINT32 length; - A_UINT32 targ_buf; /* echo'ed, not used by Host, */ - A_UINT32 targ_reply_fn; /* echo'ed, not used by Host, */ - A_UINT32 targ_reply_arg; /* echo'ed, not used by Host, */ + A_UINT32 access_cookie; + A_UINT32 offset; + A_UINT32 length; + A_UINT32 targ_buf; /* echo'ed, not used by Host, */ + A_UINT32 targ_reply_fn; /* echo'ed, not used by Host, */ + A_UINT32 targ_reply_arg; /* echo'ed, not used by Host, */ } WMIX_DSETDATAREQ_EVENT; typedef struct { - A_UINT32 status; - A_UINT32 targ_dset_handle; - A_UINT32 targ_reply_fn; - A_UINT32 targ_reply_arg; - A_UINT32 access_cookie; - A_UINT32 size; - A_UINT32 version; -} WMIX_DSETOPEN_REPLY_CMD; + A_UINT32 status; + A_UINT32 targ_dset_handle; + A_UINT32 targ_reply_fn; + A_UINT32 targ_reply_arg; + A_UINT32 access_cookie; + A_UINT32 size; + A_UINT32 version; +} WMIX_DSETOPEN_REPLY_CMD; typedef struct { - A_UINT32 status; - A_UINT32 targ_buf; - A_UINT32 targ_reply_fn; - A_UINT32 targ_reply_arg; - A_UINT32 length; - A_UINT8 buf[1]; -} WMIX_DSETDATA_REPLY_CMD; + A_UINT32 status; + A_UINT32 targ_buf; + A_UINT32 targ_reply_fn; + A_UINT32 targ_reply_arg; + A_UINT32 length; + A_UINT8 buf[1]; +} WMIX_DSETDATA_REPLY_CMD; + /* * =============Error Detection support================= @@ -142,9 +143,9 @@ typedef struct { * Heartbeat Challenge Response command */ typedef struct { - A_UINT32 cookie; - A_UINT32 source; -} WMIX_HB_CHALLENGE_RESP_CMD; + A_UINT32 cookie; + A_UINT32 source; +} WMIX_HB_CHALLENGE_RESP_CMD; /* * WMIX_HB_CHALLENGE_RESP_EVENTID @@ -157,13 +158,13 @@ typedef struct { */ typedef struct { - A_UINT32 period; /* Time (in 30.5us ticks) between samples */ - A_UINT32 nbins; -} WMIX_PROF_CFG_CMD; + A_UINT32 period; /* Time (in 30.5us ticks) between samples */ + A_UINT32 nbins; +} WMIX_PROF_CFG_CMD; typedef struct { - A_UINT32 addr; -} WMIX_PROF_ADDR_SET_CMD; + A_UINT32 addr; +} WMIX_PROF_ADDR_SET_CMD; /* * Target responds to Hosts's earlier WMIX_PROF_COUNT_GET_CMDID request @@ -172,11 +173,13 @@ typedef struct { * count set to the corresponding count */ typedef struct { - A_UINT32 addr; - A_UINT32 count; -} WMIX_PROF_COUNT_EVENT; + A_UINT32 addr; + A_UINT32 count; +} WMIX_PROF_COUNT_EVENT; + #ifdef __cplusplus } #endif + #endif /* _WMIX_H_ */