From e326c924005491178f15f70417b5574059787e10 Mon Sep 17 00:00:00 2001 From: Anurag Chouhan Date: Thu, 4 Aug 2016 18:43:19 +0530 Subject: [PATCH] qcacld-3.0: CL 1605795 - update fw common interface files Propagation from qcacld-2.0 to qcacld-3.0 WMI pdev POWER_STATS request and report message defs pktlog flag in HTT_T2H RX_IN_ORD_PADDR_IND New release of Hawkeye HW header files Change-Id: If2f122a6879b60052849b7efb738e7fc1a4c23f3 CRs-fixed: 865207 --- target/inc/wmi_tlv_defs.h | 15 +++++++++ target/inc/wmi_unified.h | 65 +++++++++++++++++++++++++++++++++++++++ target/inc/wmi_version.h | 2 +- 3 files changed, 81 insertions(+), 1 deletion(-) diff --git a/target/inc/wmi_tlv_defs.h b/target/inc/wmi_tlv_defs.h index 4fa2799b31..161ef82008 100644 --- a/target/inc/wmi_tlv_defs.h +++ b/target/inc/wmi_tlv_defs.h @@ -731,6 +731,8 @@ typedef enum { 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_ID; /* @@ -1030,6 +1032,7 @@ typedef enum { 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) \ /* add new CMD_LIST elements above this line */ /* @@ -1186,6 +1189,7 @@ typedef enum { OP(WMI_SERVICE_AVAILABLE_EVENTID) \ OP(WMI_PEER_ANTDIV_INFO_EVENTID) \ OP(WMI_PDEV_ANTDIV_STATUS_EVENTID) \ + OP(WMI_PDEV_CHIP_POWER_STATS_EVENTID) \ /* add new EVT_LIST elements above this line */ /* TLV definitions of WMI commands */ @@ -2962,6 +2966,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_REORDER_QUEUE_REMOVE_CMDID); 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) +WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GET_CHIP_POWER_STATS_CMDID); + /************************** TLV definitions of WMI events *******************************/ /* Service Ready event */ @@ -3781,6 +3790,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_CHANNEL_HOPPING_EVENTID); 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) +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) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_ANI_OFDM_LEVEL_EVENTID); diff --git a/target/inc/wmi_unified.h b/target/inc/wmi_unified.h index eb6caf1953..1d66b61919 100644 --- a/target/inc/wmi_unified.h +++ b/target/inc/wmi_unified.h @@ -352,6 +352,8 @@ typedef enum { 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, /* VDEV (virtual device) specific commands */ /** vdev create */ @@ -1078,6 +1080,8 @@ typedef enum { 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 */ @@ -16007,6 +16011,17 @@ typedef struct { * */ } 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; +} wmi_pdev_get_chip_power_stats_cmd_fixed_param; + + typedef struct { /* * TLV tag and len; tag equals @@ -16074,6 +16089,56 @@ typedef struct { 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; + +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]; + */ +} wmi_pdev_chip_power_stats_event_fixed_param; + + typedef struct { /* * TLV tag and len; tag equals diff --git a/target/inc/wmi_version.h b/target/inc/wmi_version.h index e4eb4d1bb6..da3f9c21b7 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_ 283 +#define __WMI_REVISION_ 284 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work