From 0e13ab0b1f1e802265fc28244e2fe57a0a9456cc Mon Sep 17 00:00:00 2001 From: Anurag Chouhan Date: Mon, 18 Apr 2016 17:17:49 +0530 Subject: [PATCH] qcacld-3.0: CL 1490576 - update fw common interface files qcacld-2.0 to qcacld-3.0 propagation. Add new TLV tx_time_per_tpc_extended which is array of A_UINT32 to support tpc_levels more than MAX_TPC_LEVELS in wmi_radio_link_stats_event_fixed_param Migrating Timekeeper debug log identifiers into the NaN module. This change set also includes dbglog id change from CL 1440161. Change-Id: I127bb10c989c0d7ee8a0f9cc9c57e2c824017165 CRs-Fixed: 865207 --- target/inc/dbglog_id.h | 53 ++++++++++++++++++++++++++++++++++++++- target/inc/wmi_tlv_defs.h | 3 ++- target/inc/wmi_unified.h | 36 +++++++++++++++++++++++++- target/inc/wmi_version.h | 2 +- 4 files changed, 90 insertions(+), 4 deletions(-) diff --git a/target/inc/dbglog_id.h b/target/inc/dbglog_id.h index 03bd4b6a8795..917452931c58 100644 --- a/target/inc/dbglog_id.h +++ b/target/inc/dbglog_id.h @@ -1487,8 +1487,59 @@ extern "C" { #define NAN_DBGID_NAN_NOT_ALLOWED (NAN_DBGID_OTA_PKT_LAST + 14) #define NAN_DBGID_NAN_TX_FOLLOWUP_REQ_TR_ID (NAN_DBGID_OTA_PKT_LAST + 15) #define NAN_DBGID_NAN_TX_FOLLOWUP_RESP_TR_ID (NAN_DBGID_OTA_PKT_LAST + 16) +#define NAN_DBGID_PUBSUB_TERM_IND_DISABLE_FLAG (NAN_DBGID_OTA_PKT_LAST + 17) +#define NAN_DBGID_UNMATCH_IND_DISABLE_FLAG (NAN_DBGID_OTA_PKT_LAST + 18) +#define NAN_DBGID_FOLLOWUP_RX_IND_DISABLE_FLAG (NAN_DBGID_OTA_PKT_LAST + 19) +#define NAN_DBGID_BEACON_RX_LAST (NAN_DBGID_OTA_PKT_LAST + 20) -#define NAN_DBGID_END (NAN_DBGID_NAN_TX_FOLLOWUP_RESP_TR_ID + 1) +/* NaN Datapath Timekeeper debug IDs */ +/* 116 + 20 = 136 */ +#define NAN_DBGID_TMKR_BASE NAN_DBGID_BEACON_RX_LAST +/* 136 */ +#define NAN_DBGID_TMKR_INIT (NAN_DBGID_TMKR_BASE + 0) +#define NAN_DBGID_TMKR_OPEN (NAN_DBGID_TMKR_BASE + 1) +#define NAN_DBGID_TMKR_CLOSE (NAN_DBGID_TMKR_BASE + 2) +#define NAN_DBGID_TMKR_NEGOTIATE (NAN_DBGID_TMKR_BASE + 3) +#define NAN_DBGID_TMKR_TMR_HNDLR (NAN_DBGID_TMKR_BASE + 4) +#define NAN_DBGID_TMKR_UNITTEST (NAN_DBGID_TMKR_BASE + 5) +#define NAN_DBGID_TMKR_LF_TMR_HNDLR (NAN_DBGID_TMKR_BASE + 6) +#define NAN_DBGID_TMKR_DEINIT (NAN_DBGID_TMKR_BASE + 7) +#define NAN_DBGID_TMKR_SLOTBITMAP (NAN_DBGID_TMKR_BASE + 8) +#define NAN_DBGID_TMKR_CANCEL_SLOTBITMAP (NAN_DBGID_TMKR_BASE + 9) +#define NAN_DBGID_TMKR_CONFIRM_SLOTBITMAP (NAN_DBGID_TMKR_BASE + 10) +#define NAN_DBGID_TMKR_RESOLVE_SLOTBITMAP (NAN_DBGID_TMKR_BASE + 11) +#define NAN_DBGID_TMKR_ADD_CHAN_ELEMENT (NAN_DBGID_TMKR_BASE + 12) +#define NAN_DBGID_TMKR_REMOVE_CHAN_ELEMENT (NAN_DBGID_TMKR_BASE + 13) +/* 150 */ +#define NAN_DBGID_TMKR_FIND_CHAN_ELEMENT (NAN_DBGID_TMKR_BASE + 14) +#define NAN_DBGID_TMKR_QUERY_COMMITTED_SLOTBITMAP (NAN_DBGID_TMKR_BASE + 15) +#define NAN_DBGID_TMKR_ENCODE_SLOTBITMAP (NAN_DBGID_TMKR_BASE + 16) +#define NAN_DBGID_TMKR_SLOT_ARRAY_DBG (NAN_DBGID_TMKR_BASE + 17) +#define NAN_DBGID_TMKR_POPULATE_MASTER (NAN_DBGID_TMKR_BASE + 18) +#define NAN_DBGID_TMKR_ALLOCATE_SLOTS (NAN_DBGID_TMKR_BASE + 19) +#define NAN_DBGID_TMKR_RELEASE_SLOTS (NAN_DBGID_TMKR_BASE + 20) +#define NAN_DBGID_TMKR_ENABLE (NAN_DBGID_TMKR_BASE + 21) +#define NAN_DBGID_TMKR_DISABLE (NAN_DBGID_TMKR_BASE + 22) +#define NAN_DBGID_TMKR_GET_NEXT_SLOTWINDOW (NAN_DBGID_TMKR_BASE + 23) +#define NAN_DBGID_TMKR_RESUME_TIMEKEEPING (NAN_DBGID_TMKR_BASE + 24) +#define NAN_DBGID_TMKR_RESYNC_TO_DISCOVERY_WINDOW (NAN_DBGID_TMKR_BASE + 25) +/* 162 */ +#define NAN_DBGID_TMKR_SUSPEND_TIMEKEEPING (NAN_DBGID_TMKR_BASE + 26) +#define NAN_DBGID_TMKR_SYNC_TO_DISCOVERY_WINDOW (NAN_DBGID_TMKR_BASE + 27) +#define NAN_DBGID_TMKR_GET_NEXT_TSFTIME (NAN_DBGID_TMKR_BASE + 28) +#define NAN_DBGID_TMKR_SETUP_NEXT_INTERVAL (NAN_DBGID_TMKR_BASE + 29) +#define NAN_DBGID_TMKR_SCHEDULE_EVENT (NAN_DBGID_TMKR_BASE + 30) +#define NAN_DBGID_TMKR_ENABLE_TIMEKEEPING_EVENT (NAN_DBGID_TMKR_BASE + 31) +#define NAN_DBGID_TMKR_DISABLE_TIMEKEEPING_EVENT (NAN_DBGID_TMKR_BASE + 32) +#define NAN_DBGID_TMKR_SYNC_WITH_DW_EVENT (NAN_DBGID_TMKR_BASE + 33) +#define NAN_DBGID_TMKR_INTERVAL_EXPIRED_EVENT (NAN_DBGID_TMKR_BASE + 34) +#define NAN_DBGID_TMKR_PAUSE_TIMEKEEPING_EVENT (NAN_DBGID_TMKR_BASE + 35) +/* 172 */ +#define NAN_DBGID_TMKR_RESUME_TIMEKEEPING_EVENT (NAN_DBGID_TMKR_BASE + 36) +#define NAN_DBGID_TMKR_RESYNC_TO_DW_EVENT (NAN_DBGID_TMKR_BASE + 37) +#define NAN_DBGID_TMKR_LAST (NAN_DBGID_TMKR_BASE + 38) + +#define NAN_DBGID_END (NAN_DBGID_TMKR_LAST) /* IBSS PS module DBGIDs*/ #define IBSS_PS_DBGID_DEFINITION_START 0 diff --git a/target/inc/wmi_tlv_defs.h b/target/inc/wmi_tlv_defs.h index 2bd05216cc33..797c2f89321d 100644 --- a/target/inc/wmi_tlv_defs.h +++ b/target/inc/wmi_tlv_defs.h @@ -3198,7 +3198,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_LINK_STATS_EVENTID); #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_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_channel_stats, channel_stats, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ext_tx_time_per_power_level, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_RADIO_LINK_STATS_EVENTID); diff --git a/target/inc/wmi_unified.h b/target/inc/wmi_unified.h index 16523a950b25..78f198fabf82 100644 --- a/target/inc/wmi_unified.h +++ b/target/inc/wmi_unified.h @@ -4424,8 +4424,42 @@ typedef struct { A_UINT32 on_time_hs20; /** number of channels */ A_UINT32 num_channels; - /** tx time (in milliseconds) per TPC level (0.5 dBm) */ + /* + * tx time (in milliseconds) per TPC level + * TPC levels require a board-specific translation 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 --> power + * translations. + */ A_UINT32 tx_time_per_tpc[MAX_TPC_LEVELS]; + /* + * number of tx power levels, including both tx_time_per_tpc and + * ext_tx_time_per_power_level + * Each power level consumes one A_UINT32. + * If num_tx_power_levels <= MAX_TPC_LEVELs, only tx_time_per_tpc is + * used. + * If num_tx_power_levels > MAX_TPC_LEVELS, the first MAX_TPC_LEVELS + * values + * are stored in tx_time_per_tpc, and the remaining + * (num_tx_power_levels - MAX_TPC_LEVELS) values are stored in + * ext_tx_time_per_power_level. + */ + A_UINT32 num_tx_power_levels; + /* + * This TLV will be followed by a TLV containing a variable-length + * array of A_UINT32 with any additional tx time per power level data, + * if there are more than MAX_TPC_LEVELS elements of tx time per TPC to + * report. Note that at most one wmi_radio_link_stats object will be + * present in the WMI_RADIO_LINK_STATS message. Thus, even though there + * is only one ext_tx_time_per_power_level array in the + * WMI_RADIO_LINK_STATS message, it only holds the extra data for a + * single wmi_radio_link_stats object. + * + * A_UINT32 + * ext_tx_time_per_power_level[num_tx_power_levels - MAX_TPC_LEVELS] + */ } wmi_radio_link_stats; /** Radio statistics (once started) do not stop or get reset unless wifi_clear_link_stats is invoked */ diff --git a/target/inc/wmi_version.h b/target/inc/wmi_version.h index cd44dfd03e2b..6695b204ad61 100644 --- a/target/inc/wmi_version.h +++ b/target/inc/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_ 234 +#define __WMI_REVISION_ 235 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work