diff options
| author | Pradeep Reddy POTTETI <c_ppotte@qti.qualcomm.com> | 2016-06-09 15:10:53 +0530 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2016-07-05 13:14:03 +0530 |
| commit | 018c0b9c38f160443c747933cd1de8367126bc22 (patch) | |
| tree | e22c394f48e10c2ab77f5f3f775488100c7e20d3 | |
| parent | 2d69d917619af0445db7a4bf12669fd26c7a6315 (diff) | |
qcacld-2.0: CL 1524945 - update fw common interface files
New WMI command for reorder queue setup/removal
Change-Id: I31ad0432a0d5f49eed55603ae7d9eeedbdd19876
CRs-fixed: 865207
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_tlv_defs.h | 16 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_unified.h | 62 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_version.h | 2 | ||||
| -rw-r--r-- | CORE/SERVICES/WMI/wmi_unified.c | 2 |
4 files changed, 81 insertions, 1 deletions
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h index 640244e4d260..25591d26d2b2 100644 --- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h +++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h @@ -714,6 +714,8 @@ typedef enum { 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_ID; /* @@ -1003,6 +1005,9 @@ typedef enum { OP(WMI_DBGLOG_TIME_STAMP_SYNC_CMDID) \ OP(WMI_P2P_LISTEN_OFFLOAD_START_CMDID) \ OP(WMI_P2P_LISTEN_OFFLOAD_STOP_CMDID) \ + OP(WMI_IPA_OFFLOAD_ENABLE_DISABLE_CMDID) \ + OP(WMI_PEER_REORDER_QUEUE_SETUP_CMDID) \ + OP(WMI_PEER_REORDER_QUEUE_REMOVE_CMDID) \ /* add new CMD_LIST elements above this line */ /* @@ -2882,6 +2887,17 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_WAL_POWER_DEBUG_CMDID); 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); +/* 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) +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) +WMITLV_CREATE_PARAM_STRUC(WMI_PEER_REORDER_QUEUE_REMOVE_CMDID); + + /************************** TLV definitions of WMI events *******************************/ /* Service Ready event */ diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h index fcfba3b5de9e..ff6be58e3315 100644 --- a/CORE/SERVICES/COMMON/wmi_unified.h +++ b/CORE/SERVICES/COMMON/wmi_unified.h @@ -436,6 +436,11 @@ typedef enum { 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, + /* beacon/management specific commands */ @@ -6453,6 +6458,14 @@ typedef struct { #define WMI_PEER_SET_MAX_TX_RATE 0x11 /** Set peer minimal tx rate (MCS) in adaptive rate ctrl */ #define WMI_PEER_SET_MIN_TX_RATE 0x12 +/** + * 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) + */ +#define WMI_PEER_SET_DEFAULT_ROUTING 0x13 /** mimo ps values for the parameter WMI_PEER_MIMO_PS_STATE */ #define WMI_PEER_MIMO_PS_NONE 0x0 @@ -13744,6 +13757,55 @@ typedef struct { */ } wmi_pdev_hw_mode_transition_event_fixed_param; +/** + * This command is sent from WLAN host driver to firmware for + * 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, + * 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; + 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; + +/** + * This command is sent from WLAN host driver to firmware for + * 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, + */ +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; + 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 */ typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_soc_set_dual_mac_config_response_event_fixed_param */ diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h index f2e272c931e4..06516f834d79 100644 --- a/CORE/SERVICES/COMMON/wmi_version.h +++ b/CORE/SERVICES/COMMON/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_ 260 +#define __WMI_REVISION_ 261 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work diff --git a/CORE/SERVICES/WMI/wmi_unified.c b/CORE/SERVICES/WMI/wmi_unified.c index 2154a8688321..d3d77fe106f8 100644 --- a/CORE/SERVICES/WMI/wmi_unified.c +++ b/CORE/SERVICES/WMI/wmi_unified.c @@ -705,6 +705,8 @@ static u_int8_t* get_wmi_cmd_string(WMI_CMD_ID wmi_command) CASE_RETURN_STRING(_place_holder_cmd_1); CASE_RETURN_STRING(WMI_P2P_LISTEN_OFFLOAD_START_CMDID); CASE_RETURN_STRING(WMI_P2P_LISTEN_OFFLOAD_STOP_CMDID); + CASE_RETURN_STRING(WMI_PEER_REORDER_QUEUE_SETUP_CMDID); + CASE_RETURN_STRING(WMI_PEER_REORDER_QUEUE_REMOVE_CMDID); } return "Invalid WMI cmd"; } |
