diff options
| author | Sandeep Puligilla <spuligil@codeaurora.org> | 2017-05-05 10:00:49 -0700 |
|---|---|---|
| committer | snandini <snandini@codeaurora.org> | 2017-05-15 12:26:26 -0700 |
| commit | d2bfeb3f05246dab79df09ddd724ce83fb292466 (patch) | |
| tree | e4a97662ab077794e498f96a7bd1dc42b7e5203f | |
| parent | 9f94be8707fa6945b23d5e991eef012866aee61f (diff) | |
fw-api: CL 3058259 - update fw common interface files
add WMI + RTT definitions to enable CFR/CIR capture on Lithium
Change-Id: I161905591bbfffa8751276837d8036a9cbd1cbf3
CRs-Fixed: 1107600
| -rwxr-xr-x | fw/wmi_tlv_defs.h | 31 | ||||
| -rwxr-xr-x | fw/wmi_unified.h | 118 | ||||
| -rwxr-xr-x | fw/wmi_version.h | 2 |
3 files changed, 148 insertions, 3 deletions
diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index cf3b8226d6af..e1b9cdd30d0d 100755 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -828,6 +828,12 @@ typedef enum { WMITLV_TAG_STRUC_wmi_therm_throt_stats_event_fixed_param, WMITLV_TAG_STRUC_wmi_therm_throt_level_stats_info, WMITLV_TAG_STRUC_wmi_pdev_div_rssi_antid_event_fixed_param, + WMITLV_TAG_STRUC_WMI_OEM_DMA_RING_CAPABILITIES, + WMITLV_TAG_STRUC_wmi_oem_dma_ring_cfg_req_fixed_param, + WMITLV_TAG_STRUC_wmi_oem_dma_ring_cfg_rsp_fixed_param, + WMITLV_TAG_STRUC_wmi_oem_indirect_data, + WMITLV_TAG_STRUC_wmi_oem_dma_buf_release_fixed_param, + WMITLV_TAG_STRUC_wmi_oem_dma_buf_release_entry, } WMITLV_TAG_ID; /* @@ -1161,6 +1167,7 @@ typedef enum { OP(WMI_SET_SCAN_DBS_DUTY_CYCLE_CMDID) \ OP(WMI_PDEV_DIV_GET_RSSI_ANTID_CMDID) \ OP(WMI_THERM_THROT_SET_CONF_CMDID) \ + OP(WMI_OEM_DMA_RING_CFG_REQ_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -1345,6 +1352,8 @@ typedef enum { OP(WMI_OFFCHAN_DATA_TX_COMPLETION_EVENTID) \ OP(WMI_THERM_THROT_STATS_EVENTID) \ OP(WMI_PDEV_DIV_RSSI_ANTID_EVENTID) \ + OP(WMI_OEM_DMA_RING_CFG_RSP_EVENTID) \ + OP(WMI_OEM_DMA_BUF_RELEASE_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -1879,6 +1888,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_OEM_REQUEST_CMDID); WMITLV_CREATE_PARAM_STRUC(WMI_LPI_OEM_REQ_CMDID); +#define WMITLV_TABLE_WMI_OEM_DMA_RING_CFG_REQ_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_oem_dma_ring_cfg_req_fixed_param, wmi_oem_dma_ring_cfg_req_fixed_param, fixed_param, WMITLV_SIZE_FIX) + +WMITLV_CREATE_PARAM_STRUC(WMI_OEM_DMA_RING_CFG_REQ_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) @@ -3365,7 +3379,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_AVAILABLE_EVENTID); 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_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_MAC_PHY_CHAINMASK_COMBO, mac_phy_chainmask_combo, WMITLV_SIZE_VAR) \ - 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_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_CREATE_PARAM_STRUC(WMI_SERVICE_READY_EXT_EVENTID); /* Ready event */ @@ -3710,9 +3725,17 @@ 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) + 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_oem_indirect_data, wmi_oem_indirect_data, indirect_data, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data2, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_OEM_RESPONSE_EVENTID); +/* oem dma buffer release event */ +#define WMITLV_TABLE_WMI_OEM_DMA_BUF_RELEASE_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_oem_dma_buf_release_fixed_param, wmi_oem_dma_buf_release_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_oem_dma_buf_release_entry, entries, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_OEM_DMA_BUF_RELEASE_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) \ @@ -3911,6 +3934,10 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_DFS_CAC_COMPLETE_EVENTID); 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); +#define WMITLV_TABLE_WMI_OEM_DMA_RING_CFG_RSP_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_oem_dma_ring_cfg_rsp_fixed_param, wmi_oem_dma_ring_cfg_rsp_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_OEM_DMA_RING_CFG_RSP_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) \ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index bbde7440fb37..7a98dc93f321 100755 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -931,6 +931,7 @@ typedef enum { WMI_OEM_REQUEST_CMDID, /* UNUSED */ /* OEM related cmd used for Low Power ranging */ WMI_LPI_OEM_REQ_CMDID, + WMI_OEM_DMA_RING_CFG_REQ_CMDID, /** Nan Request */ WMI_NAN_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_NAN), @@ -1461,6 +1462,8 @@ typedef enum { WMI_OEM_MEASUREMENT_REPORT_EVENTID, /* DEPRECATED */ WMI_OEM_ERROR_REPORT_EVENTID, /* DEPRECATED */ WMI_OEM_RESPONSE_EVENTID, + WMI_OEM_DMA_RING_CFG_RSP_EVENTID, + WMI_OEM_DMA_BUF_RELEASE_EVENTID, /* NAN Event */ WMI_NAN_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_NAN), @@ -13297,6 +13300,109 @@ typedef struct{ } wmi_tpc_chainmask_config_cmd_fixed_param; typedef struct { + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_oem_dma_ring_cfg_req_fixed_param */ + A_UINT32 pdev_id; + /** + * Bits 31:0: base address of ring [31:0] + */ + A_UINT32 base_addr_lo; + /** + * Bits 3:0: base address of ring [35:32] + * Bits 31:4: reserved + */ + A_UINT32 base_addr_hi; + /** + * Bits 31:0: address of head index [31:0] + */ + A_UINT32 head_idx_addr_lo; + /** + * Bits 3:0: address of head index [35:32] + * Bits 31:4: reserved + */ + A_UINT32 head_idx_addr_hi; + /** + * Bits 31:0: address of tail index [31:0] + */ + A_UINT32 tail_idx_addr_lo; + /** + * Bits 3:0: address of tail index [35:32] + * Bits 31:4: reserved + */ + A_UINT32 tail_idx_addr_hi; + A_UINT32 num_ptr; /** Number of pointers in the ring */ +} wmi_oem_dma_ring_cfg_req_fixed_param; + +#define WMI_OEM_DMA_RING_ADDR_LO_S 0 +#define WMI_OEM_DMA_RING_ADDR_LO 0xffffffff + +#define WMI_OEM_DMA_RING_ADDR_LO_GET(dword) WMI_F_MS(dword, WMI_OEM_DMA_RING_ADDR_LO) +#define WMI_OEM_DMA_RING_ADDR_LO_SET(dword, val) WMI_F_RMW(dword, val, WMI_OEM_DMA_RING_ADDR_LO) + +#define WMI_OEM_DMA_RING_ADDR_HI_S 0 +#define WMI_OEM_DMA_RING_ADDR_HI 0xf + +#define WMI_OEM_DMA_RING_ADDR_HI_GET(dword) WMI_F_MS(dword, WMI_OEM_DMA_RING_ADDR_HI) +#define WMI_OEM_DMA_RING_ADDR_HI_SET(dword, val) WMI_F_RMW(dword, val, WMI_OEM_DMA_RING_ADDR_HI) + +typedef struct { + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_oem_dma_ring_cfg_rsp_fixed_param */ + A_UINT32 pdev_id; + A_UINT32 cfg_status; /** Configuration status; see A_STATUS */ +} wmi_oem_dma_ring_cfg_rsp_fixed_param; + +typedef struct { + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_oem_indirect_data */ + A_UINT32 pdev_id; /** ID of pdev whose OEM DMA ring produced the data */ + /** + * Bits 31:0: address of data [31:0] + */ + A_UINT32 addr_lo; + /** + * Bits 3:0: address of data [35:32] + * Bits 11:4: reserved + * Bits 31:12: opaque host context data [19:0] + */ + A_UINT32 addr_hi; + A_UINT32 len; /** Length of data in bytes */ +} wmi_oem_indirect_data; + +#define WMI_OEM_DMA_DATA_ADDR_LO_S 0 +#define WMI_OEM_DMA_DATA_ADDR_LO 0xffffffff + +#define WMI_OEM_DMA_DATA_ADDR_LO_GET(dword) WMI_F_MS(dword, WMI_OEM_DMA_DATA_ADDR_LO) +#define WMI_OEM_DMA_DATA_ADDR_LO_SET(dword, val) WMI_F_RMW(dword, val, WMI_OEM_DMA_DATA_ADDR_LO) + +#define WMI_OEM_DMA_DATA_ADDR_HI_S 0 +#define WMI_OEM_DMA_DATA_ADDR_HI 0xf + +#define WMI_OEM_DMA_DATA_ADDR_HI_GET(dword) WMI_F_MS(dword, WMI_OEM_DMA_DATA_ADDR_HI) +#define WMI_OEM_DMA_DATA_ADDR_HI_SET(dword, val) WMI_F_RMW(dword, val, WMI_OEM_DMA_DATA_ADDR_HI) + +#define WMI_OEM_DMA_DATA_ADDR_HI_HOST_DATA_S 12 +#define WMI_OEM_DMA_DATA_ADDR_HI_HOST_DATA 0xfffff + +#define WMI_OEM_DMA_DATA_ADDR_HI_HOST_DATA_GET(dword) WMI_F_MS(dword, WMI_OEM_DMA_DATA_ADDR_HI_HOST_DATA) +#define WMI_OEM_DMA_DATA_ADDR_HI_HOST_DATA_SET(dword, val) WMI_F_RMW(dword, val, WMI_OEM_DMA_DATA_ADDR_HI_HOST_DATA) + +typedef struct { + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_oem_dma_buf_release_hdr */ + A_UINT32 pdev_id; /** ID of pdev whose OEM DMA ring produced the data */ +} wmi_oem_dma_buf_release_fixed_param; + +typedef struct { + /** + * Bits 31:0: address of data [31:0] + */ + A_UINT32 addr_lo; + /** + * Bits 3:0: address of data [35:32] + * Bits 11:4: reserved + * Bits 31:12: host context data [19:0] + */ + A_UINT32 addr_hi; +} wmi_oem_dma_buf_release_entry; + +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 @@ -18325,6 +18431,17 @@ typedef struct { } WMI_SOC_HAL_REG_CAPABILITIES; typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_OEM_DMA_RING_CAPABILITIES */ + A_UINT32 pdev_id; + A_UINT32 min_num_ptr; + /* Minimum number of pointers in the OEM DMA ring for this pdev */ + A_UINT32 min_buf_size; + /* Minimum size in bytes of each buffer in the OEM DMA ring */ + A_UINT32 min_buf_align; + /* Minimum alignment in bytes of each buffer in the OEM DMA ring */ +} WMI_OEM_DMA_RING_CAPABILITIES; + +typedef struct { 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; @@ -19056,6 +19173,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_SET_INIT_COUNTRY_CMDID); WMI_RETURN_STRING(WMI_SET_SCAN_DBS_DUTY_CYCLE_CMDID); WMI_RETURN_STRING(WMI_THERM_THROT_SET_CONF_CMDID); + WMI_RETURN_STRING(WMI_OEM_DMA_RING_CFG_REQ_CMDID); } return "Invalid WMI cmd"; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 197cdfd095c8..22960d65ee00 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_ 386 +#define __WMI_REVISION_ 387 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work |
