diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2018-09-16 06:48:41 -0700 |
|---|---|---|
| committer | Linux Build Service Account <lnxbuild@localhost> | 2018-09-16 06:48:41 -0700 |
| commit | 76a3a8856b7c6d26b8d61abcdb186fe528b88495 (patch) | |
| tree | 04e02c4b9754f04d83be1fd6fae5c6bb6152d829 | |
| parent | 8bf061fe0acfb81880f6ceb39957284485921c60 (diff) | |
| parent | 134733eeadff834aa482bb6747c364be6bb4f327 (diff) | |
Merge 134733eeadff834aa482bb6747c364be6bb4f327 on remote branch
Change-Id: I30ee2a26f04ab01fa608965f9d3d2b89484661a6
| -rw-r--r-- | fw/htt.h | 57 | ||||
| -rw-r--r-- | fw/htt_stats.h | 4 | ||||
| -rwxr-xr-x | fw/wmi_services.h | 5 | ||||
| -rwxr-xr-x | fw/wmi_tlv_defs.h | 16 | ||||
| -rwxr-xr-x | fw/wmi_unified.h | 112 | ||||
| -rwxr-xr-x | fw/wmi_version.h | 2 |
6 files changed, 185 insertions, 11 deletions
@@ -168,9 +168,11 @@ * 3.51 Add SW peer ID and TID num to HTT TX WBM COMPLETION * 3.52 Add HTT_T2H FLOW_POOL_RESIZE msg def * 3.53 Update HTT_T2H FLOW_POOL_RESIZE msg def + * 3.54 Define mcast and mcast_valid flags within htt_tx_wbm_transmit_status + * 3.55 Add initiator / responder flags to RX_DELBA indication */ #define HTT_CURRENT_VERSION_MAJOR 3 -#define HTT_CURRENT_VERSION_MINOR 53 +#define HTT_CURRENT_VERSION_MINOR 55 #define HTT_NUM_TX_FRAG_DESC 1024 @@ -2341,7 +2343,11 @@ PREPACK struct htt_tx_wbm_transmit_status { * If this "valid" flag is not set, the * sw_peer_id and tid_num fields must be ignored. */ - reserved0: 10; + mcast: 1, + mcast_valid: 1, /* If this "mcast_valid" is set, the mcast field + * contains valid data. + */ + reserved0: 8; A_UINT32 reserved1: 32; } POSTPACK; @@ -2359,6 +2365,10 @@ PREPACK struct htt_tx_wbm_transmit_status { #define HTT_TX_WBM_COMPLETION_V2_TID_NUM_S 16 #define HTT_TX_WBM_COMPLETION_V2_VALID_M 0x00200000 #define HTT_TX_WBM_COMPLETION_V2_VALID_S 21 +#define HTT_TX_WBM_COMPLETION_V2_MCAST_M 0x00400000 +#define HTT_TX_WBM_COMPLETION_V2_MCAST_S 22 +#define HTT_TX_WBM_COMPLETION_V2_MCAST_VALID_M 0x00800000 +#define HTT_TX_WBM_COMPLETION_V2_MCAST_VALID_S 23 /* DWORD 4 */ #define HTT_TX_WBM_COMPLETION_V2_SCH_CMD_ID_GET(_var) \ @@ -2412,6 +2422,26 @@ PREPACK struct htt_tx_wbm_transmit_status { ((_var) |= ((_val) << HTT_TX_WBM_COMPLETION_V2_VALID_S)); \ } while (0) +#define HTT_TX_WBM_COMPLETION_V2_MCAST_GET(_var) \ + (((_var) & HTT_TX_WBM_COMPLETION_V2_MCAST_M) >> \ + HTT_TX_WBM_COMPLETION_V2_MCAST_S) + +#define HTT_TX_WBM_COMPLETION_V2_MCAST_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_TX_WBM_COMPLETION_V2_MCAST, _val); \ + ((_var) |= ((_val) << HTT_TX_WBM_COMPLETION_V2_MCAST_S)); \ + } while (0) + +#define HTT_TX_WBM_COMPLETION_V2_MCAST_VALID_GET(_var) \ + (((_var) & HTT_TX_WBM_COMPLETION_V2_MCAST_VALID_M) >> \ + HTT_TX_WBM_COMPLETION_V2_MCAST_VALID_S) + +#define HTT_TX_WBM_COMPLETION_V2_MCAST_VALID_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_TX_WBM_COMPLETION_V2_MCAST_VALID, _val); \ + ((_var) |= ((_val) << HTT_TX_WBM_COMPLETION_V2_MCAST_VALID_S)); \ + } while (0) + /** * @brief HTT TX WBM reinject status from firmware to host * @details @@ -7780,9 +7810,9 @@ PREPACK struct htt_chan_info_t * The following diagram shows the format of the rx DELBA message sent * from the target to the host: * - * |31 20|19 16|15 8|7 0| + * |31 20|19 16|15 10|9 8|7 0| * |---------------------------------------------------------------------| - * | peer ID | TID | reserved | msg type | + * | peer ID | TID | reserved | IR| msg type | * |---------------------------------------------------------------------| * * The following field definitions describe the format of the rx ADDBA @@ -7791,6 +7821,15 @@ PREPACK struct htt_chan_info_t * Bits 7:0 * Purpose: identifies this as an rx ADDBA or DELBA message * Value: ADDBA -> 0x5, DELBA -> 0x6 + * - IR (initiator / recipient) + * Bits 9:8 (DELBA only) + * Purpose: specify whether the DELBA handshake was initiated by the + * local STA/AP, or by the peer STA/AP + * Value: + * 0 - unspecified + * 1 - initiator (a.k.a. originator) + * 2 - recipient (a.k.a. responder) + * 3 - unused / reserved * - WIN_SIZE * Bits 15:8 (ADDBA only) * Purpose: Specifies the length of the block ack window (max = 64). @@ -7843,6 +7882,8 @@ PREPACK struct htt_chan_info_t #define HTT_RX_ADDBA_BYTES 4 +#define HTT_RX_DELBA_INITIATOR_M 0x00000300 +#define HTT_RX_DELBA_INITIATOR_S 8 #define HTT_RX_DELBA_TID_M HTT_RX_ADDBA_TID_M #define HTT_RX_DELBA_TID_S HTT_RX_ADDBA_TID_S #define HTT_RX_DELBA_PEER_ID_M HTT_RX_ADDBA_PEER_ID_M @@ -7853,6 +7894,14 @@ PREPACK struct htt_chan_info_t #define HTT_RX_DELBA_PEER_ID_SET HTT_RX_ADDBA_PEER_ID_SET #define HTT_RX_DELBA_PEER_ID_GET HTT_RX_ADDBA_PEER_ID_GET +#define HTT_RX_DELBA_INITIATOR_SET(word, value) \ + do { \ + HTT_CHECK_SET_VAL(HTT_RX_DELBA_INITIATOR, value); \ + (word) |= (value) << HTT_RX_DELBA_INITIATOR_S; \ + } while (0) +#define HTT_RX_DELBA_INITIATOR_GET(word) \ + (((word) & HTT_RX_DELBA_INITIATOR_M) >> HTT_RX_DELBA_INITIATOR_S) + #define HTT_RX_DELBA_BYTES 4 /** diff --git a/fw/htt_stats.h b/fw/htt_stats.h index 447d0f0b36ef..1da4a55e849b 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -613,8 +613,8 @@ typedef struct { */ typedef struct { htt_tlv_hdr_t tlv_hdr; - A_UINT32 tried_mpdu_cnt_hist[1]; /* HTT_TX_PDEV_TRIED_MPDU_CNT_HIST */ A_UINT32 hist_bin_size; + A_UINT32 tried_mpdu_cnt_hist[1]; /* HTT_TX_PDEV_TRIED_MPDU_CNT_HIST */ } htt_tx_pdev_stats_tried_mpdu_cnt_hist_tlv_v; /* STATS_TYPE: HTT_DBG_EXT_STATS_PDEV_TX @@ -1384,9 +1384,9 @@ typedef struct { * */ typedef struct { htt_tlv_hdr_t tlv_hdr; + A_UINT32 hist_bin_size; /* Histogram of number of mpdus on tried mpdu */ A_UINT32 tried_mpdu_cnt_hist[1]; /* HTT_TX_HWQ_TRIED_MPDU_CNT_HIST */ - A_UINT32 hist_bin_size; } htt_tx_hwq_tried_mpdu_cnt_hist_tlv_v; #define HTT_TX_HWQ_TXOP_USED_CNT_HIST_TLV_SZ(_num_elems) (sizeof(A_UINT32) * (_num_elems)) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index cd02da96c3e9..49e8623ad25d 100755 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -257,7 +257,10 @@ typedef enum { WMI_SERVICE_INFRA_MBSSID=161, /* support infra multi-BSSID feature */ WMI_SERVICE_OBSS_SPATIAL_REUSE=162, /* support spatial reuse feature */ WMI_SERVICE_VDEV_DIFFERENT_BEACON_INTERVAL_SUPPORT=163, /* Support different beacon intervals on different VDEVs */ - + WMI_SERVICE_NAN_DBS_SUPPORT=164, /* Support DBS for NAN discovery interface */ + WMI_SERVICE_NDI_DBS_SUPPORT=165, /* Support DBS for NAN data interface */ + WMI_SERVICE_NAN_SAP_SUPPORT=166, /* Support SAP Concurrency for NAN Discovery interface */ + WMI_SERVICE_NDI_SAP_SUPPORT=167, /* Support SAP Concurrency for NAN Data interface */ /******* ADD NEW SERVICES HERE *******/ diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index dfe45b4ef8b2..44ac30532a07 100755 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -924,6 +924,9 @@ typedef enum { WMITLV_TAG_STRUC_wmi_motion_det_base_line_event, WMITLV_TAG_STRUC_wmi_ndp_transport_ip_param, WMITLV_TAG_STRUC_wmi_obss_spatial_reuse_set_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_esp_estimate_event_fixed_param, + WMITLV_TAG_STRUC_wmi_nan_host_config_param, + WMITLV_TAG_STRUC_wmi_spectral_bin_scaling_params, } WMITLV_TAG_ID; /* @@ -1511,6 +1514,7 @@ typedef enum { OP(WMI_GET_TPC_POWER_EVENTID) \ OP(WMI_MOTION_DET_HOST_EVENTID) \ OP(WMI_MOTION_DET_BASE_LINE_HOST_EVENTID) \ + OP(WMI_ESP_ESTIMATE_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -2932,7 +2936,8 @@ 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_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_nan_host_config_param, host_config, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_NAN_CMDID); /* NAN Data Get Capabilities Cmd */ @@ -3782,7 +3787,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_AVAILABLE_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_MAC_PHY_CHAINMASK_CAPABILITY, mac_phy_chainmask_caps, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_OEM_DMA_RING_CAPABILITIES, oem_dma_ring_caps, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_SAR_CAPABILITIES, WMI_SAR_CAPABILITIES, sar_caps, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_DMA_RING_CAPABILITIES, dma_ring_caps, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_DMA_RING_CAPABILITIES, dma_ring_caps, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_spectral_bin_scaling_params, wmi_bin_scaling_params, WMITLV_SIZE_VAR) + WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_READY_EXT_EVENTID); /* Ready event */ @@ -5052,6 +5059,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MOTION_DET_HOST_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_motion_det_base_line_event, wmi_motion_det_base_line_event, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_MOTION_DET_BASE_LINE_HOST_EVENTID); +#define WMITLV_TABLE_WMI_ESP_ESTIMATE_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_esp_estimate_event_fixed_param, wmi_esp_estimate_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_ESP_ESTIMATE_EVENTID); + + #ifdef __cplusplus } #endif diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 7ff381b07919..17027f23574d 100755 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -150,7 +150,7 @@ static INLINE void wmi_packed_arr_set_bits(A_UINT32 *arr, A_UINT32 entry_index, } /** 2 word representation of MAC addr */ -typedef struct { +typedef struct _wmi_mac_addr { /** upper 4 bytes of MAC address */ A_UINT32 mac_addr31to0; /** lower 2 bytes of MAC address */ @@ -178,6 +178,16 @@ typedef struct { } while (0) /* + * The below function declarations are for implementations on some + * platforms of the above macros, but in function form, to save code + * memory by avoiding macro-inlining of a non-trivial amount of code. + * These function versions of the above macros may not be available + * on all host and target platforms. + */ +void wmi_mac_addr_to_char_array(wmi_mac_addr *pwmi_mac_addr, A_UINT8 *c_macaddr); +void wmi_char_array_to_mac_addr(A_UINT8 *c_macaddr, wmi_mac_addr *pwmi_mac_addr); + +/* * wmi command groups. */ typedef enum { @@ -245,6 +255,7 @@ typedef enum { WMI_GRP_TWT, /* 0x3e TWT (Target Wake Time) for STA and AP */ WMI_GRP_MOTION_DET, /* 0x3f */ WMI_GRP_SPATIAL_REUSE, /* 0x40 */ + WMI_GRP_ESP, /* 0x41 Estimate Service Parameters (802.11mc) */ } WMI_GRP_ID; #define WMI_CMD_GRP_START_ID(grp_id) (((grp_id) << 12) | 0x1) @@ -1704,6 +1715,9 @@ typedef enum { /** WMI events related to motion detection */ WMI_MOTION_DET_HOST_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_MOTION_DET), WMI_MOTION_DET_BASE_LINE_HOST_EVENTID, + + /** WMI events related to Estimation of Service Parameters (802.11mc) */ + WMI_ESP_ESTIMATE_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_ESP), } WMI_EVT_ID; /* defines for OEM message sub-types */ @@ -2769,6 +2783,20 @@ typedef struct { #define WMI_RSRC_CFG_FLAG_EAPOL_REKEY_MINRATE_SUPPORT_ENABLE_S 14 #define WMI_RSRC_CFG_FLAG_EAPOL_REKEY_MINRATE_SUPPORT_ENABLE_M 0x4000 + #define WMI_RSRC_CFG_FLAG_EAPOL_AC_OVERRIDE_VALID_S 15 + #define WMI_RSRC_CFG_FLAG_EAPOL_AC_OVERRIDE_VALID_M 0x8000 + + /* + * If the AC override valid bit is set then this field will specify the + * access category to use for EAPOL frames + * 0 - WMM_AC_BE + * 1 - WMM_AC_BK + * 2 - WMM_AC_VI + * 3 - WMM_AC_VO + */ + #define WMI_RSRC_CFG_FLAG_EAPOL_AC_OVERRIDE_S 16 + #define WMI_RSRC_CFG_FLAG_EAPOL_AC_OVERRIDE_M 0x30000 + A_UINT32 flag1; /** @brief smart_ant_cap - Smart Antenna capabilities information @@ -2977,6 +3005,16 @@ typedef struct { #define WMI_RSRC_CFG_FLAG_EAPOL_REKEY_MINRATE_SUPPORT_ENABLE_GET(word32) \ WMI_RSRC_CFG_FLAG_GET((word32), EAPOL_REKEY_MINRATE_SUPPORT_ENABLE) +#define WMI_RSRC_CFG_FLAG_EAPOL_AC_OVERRIDE_VALID_SET(word32, value) \ + WMI_RSRC_CFG_FLAG_SET((word32), EAPOL_AC_OVERRIDE_VALID, (value)) +#define WMI_RSRC_CFG_FLAG_EAPOL_AC_OVERRIDE_VALID_GET(word32) \ + WMI_RSRC_CFG_FLAG_GET((word32), EAPOL_AC_OVERRIDE_VALID) + +#define WMI_RSRC_CFG_FLAG_EAPOL_AC_OVERRIDE_SET(word32, value) \ + WMI_RSRC_CFG_FLAG_SET((word32), EAPOL_AC_OVERRIDE, (value)) +#define WMI_RSRC_CFG_FLAG_EAPOL_AC_OVERRIDE_GET(word32) \ + WMI_RSRC_CFG_FLAG_GET((word32), EAPOL_AC_OVERRIDE) + typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_init_cmd_fixed_param */ @@ -5104,6 +5142,15 @@ typedef enum { * >21: invalid value (ignored) */ WMI_PDEV_PARAM_MWSCOEX_SET_5GNR_PWR_LIMIT, /* 0xA5 */ + /** Set max msdus available for cong ctrl in target */ + WMI_PDEV_PARAM_SET_CONG_CTRL_MAX_MSDUS, /* 0xA6 */ + /* + * Configures the Estimated Throughput Calculation indication (802.11mc) settings. + * The accompanying A_UINT32 parameter, in units of seconds, specifies how often FW needs to send the ESP estimation indication to the host. + * Value 0: Disable this feature + * Non zero Value: Periodicity (seconds) + */ + WMI_PDEV_PARAM_ESP_INDICATION_PERIOD, /* 0xA7 */ } WMI_PDEV_PARAM; typedef struct { @@ -5181,6 +5228,35 @@ typedef struct { */ } wmi_pdev_update_ctltable_request_fixed_param; +#define WMI_ESP_ESTIMATE_GET_BE(airtime) WMI_GET_BITS(airtime, 0, 8) +#define WMI_ESP_ESTIMATE_SET_BE(airtime, value) WMI_SET_BITS(airtime, 0, 8, value) + +#define WMI_ESP_ESTIMATE_GET_BK(airtime) WMI_GET_BITS(airtime, 8, 8) +#define WMI_ESP_ESTIMATE_SET_BK(airtime, value) WMI_SET_BITS(airtime, 8, 8, value) + +#define WMI_ESP_ESTIMATE_GET_VI(airtime) WMI_GET_BITS(airtime, 16, 8) +#define WMI_ESP_ESTIMATE_SET_VI(airtime, value) WMI_SET_BITS(airtime, 16, 8, value) + +#define WMI_ESP_ESTIMATE_GET_VO(airtime) WMI_GET_BITS(airtime, 24, 8) +#define WMI_ESP_ESTIMATE_SET_VO(airtime, value) WMI_SET_BITS(airtime, 24, 8, value) + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_esp_estimate_event_fixed_param */ + /** 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; + /* + * Percentage of air time available for each AC + * BIT[0-7] : AC_BE + * BIT[8-15] : AC_BK + * BIT[16-23] : AC_VI + * BIT[24-31] : AC_VO + */ + A_UINT32 ac_airtime_percentage; +} wmi_esp_estimate_event_fixed_param; + #define WMI_FAST_DIVERSITY_BIT_OFFSET 0 #define WMI_SLOW_DIVERSITY_BIT_OFFSET 1 @@ -9028,6 +9104,8 @@ typedef struct { A_UINT32 csa_event_bitmap; /** offset (in octets/bytes) of MBSSID IE in beacon frame */ A_UINT32 mbssid_ie_offset; + /** offset (in octets/bytes) of ESP IE in beacon frame */ + A_UINT32 esp_ie_offset; /* * The TLVs follows: @@ -11274,6 +11352,8 @@ typedef struct { 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 handoff_delay_for_rx; /* In msec. Delay Hand-Off by this duration to receive pending Rx frames from current BSS */ + A_UINT32 max_mlme_sw_retries; /* maximum number of software retries for preauth and reassoc req */ + A_UINT32 no_ack_timeout; /* In msec. duration to wait before another SW retry made if no ack seen for previous frame */ } wmi_roam_offload_tlv_param; @@ -15857,6 +15937,12 @@ typedef struct { } wmi_nan_cmd_param; typedef struct { + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_nan_host_config_param */ + A_UINT32 nan_2g_disc_disable:1; /** This bit when set to 1 indicate NAN 2G discovery should be disabled */ + A_UINT32 nan_5g_disc_disable:1; /** This bit when set to 1 indicate NAN 5G discovery should be disabled */ +} wmi_nan_host_config_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 @@ -21992,6 +22078,8 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_MOTION_DET_BASE_LINE_CONFIG_PARAM_CMDID); WMI_RETURN_STRING(WMI_MOTION_DET_START_STOP_CMDID); WMI_RETURN_STRING(WMI_MOTION_DET_BASE_LINE_START_STOP_CMDID); + WMI_RETURN_STRING(WMI_SAR_LIMITS_CMDID); + WMI_RETURN_STRING(WMI_SAR_GET_LIMITS_CMDID); } return "Invalid WMI cmd"; @@ -22911,6 +22999,28 @@ typedef struct { A_INT32 noise_floor[WMI_MAX_CHAINS]; } wmi_dma_buf_release_spectral_meta_data; +typedef enum { + NO_SCALING = 0, /* No bin scaling*/ + /** + * scaled_bin_mag = bin_mag * + * sqrt(10^(max(legacy_max_gain - default_agc_max_gain + low_level_offset - RSSI_corr, + * (agc_total_gain_db < default_agc_max_gain) * high_level_offset)/10)) * + * 2^(DET{0,1,2}_SPECTRAL_SCAN_BIN_SCALE - legacy_spectral_scan_bin_scale) + */ + AGC_GAIN_RSSI_CORR_BASED = 1, +} WMI_SPECTRAL_SCALING_FORMULA_ID; + +typedef struct +{ + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_spectral_bin_scaling_params */ + A_UINT32 pdev_id; /* ID of pdev to which the scaling parameters are to be applied */ + WMI_SPECTRAL_SCALING_FORMULA_ID formula_id; /* Represets the formula to be used */ + A_UINT32 low_level_offset; /* low level offset for fine tuning the scaling factor based on RSSI and AGC gain */ + A_UINT32 high_level_offset; /* high level offset for fine tuning the scaling factor based on RSSI and AGC gain */ + A_UINT32 rssi_thr; /* RSSI threshold to be used to adjust the inband power of the given spectral report */ + A_UINT32 default_agc_max_gain;/* DEFAULT AGC MAX GAIN used. Fetched from register RXTD_RADAR_SBS_CTRL_1_L bits20:13 */ +} wmi_spectral_bin_scaling_params; + typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_runtime_dpd_recal_cmd_fixed_param */ A_UINT32 enable; /* Enable/disable */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 1336842ac4db..5ca527a3e227 100755 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -36,7 +36,7 @@ #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_ 558 +#define __WMI_REVISION_ 564 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work |
