diff options
| author | Rajeev Kumar <rajekuma@qca.qualcomm.com> | 2015-05-29 11:55:29 -0700 |
|---|---|---|
| committer | AnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com> | 2015-06-01 15:46:03 +0530 |
| commit | e596de944dc372082ced0a62eee8deeb67e1e6c4 (patch) | |
| tree | 72d16d6fae20853cfe4670ec8e0934ec12a38734 | |
| parent | d67f4633af6585e6ececb8ef8838c3eb30090a77 (diff) | |
qcacld: CL 1312909 - update fw common interface files
define peer rate reporting to host for HL download scheduling
Change-Id: I6bd656ad79cd29074a1aaa3c1a09eb1f75ad0812
CRs-Fixed: 819213
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_tlv_defs.h | 15 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_unified.h | 41 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_version.h | 2 | ||||
| -rw-r--r-- | CORE/SERVICES/WMI/wmi_unified.c | 1 |
4 files changed, 55 insertions, 4 deletions
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h index cddc5b830e53..7faf30f72ade 100644 --- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h +++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h @@ -561,7 +561,8 @@ typedef enum { WMITLV_TAG_STRUC_wmi_update_fw_mem_dump_fixed_param, WMITLV_TAG_STRUC_wmi_fw_mem_dump_params, WMITLV_TAG_STRUC_wmi_debug_mesg_flush_fixed_param, - WMITLV_TAG_STRUC_wmi_debug_mesg_flush_complete_fixed_param + WMITLV_TAG_STRUC_wmi_debug_mesg_flush_complete_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_set_rate_report_condition_fixed_param } WMITLV_TAG_ID; /* @@ -776,7 +777,8 @@ typedef enum { OP(WMI_PASSPOINT_LIST_CONFIG_CMDID) \ OP(WMI_VDEV_TSF_TSTAMP_ACTION_CMDID) \ OP(WMI_GET_FW_MEM_DUMP_CMDID) \ - OP(WMI_DEBUG_MESG_FLUSH_CMDID) + OP(WMI_DEBUG_MESG_FLUSH_CMDID) \ + OP(WMI_PEER_SET_RATE_REPORT_CONDITION_CMDID) /* * IMPORTANT: Please add _ALL_ WMI Events Here. @@ -1229,6 +1231,13 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMDID); WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ASSOC_CMDID); +/* Peer Set Rate Report Condition Cmd */ +#define WMITLV_TABLE_WMI_PEER_SET_RATE_REPORT_CONDITION_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_set_rate_report_condition_fixed_param, wmi_peer_set_rate_report_condition_fixed_param, fixed_param, WMITLV_SIZE_FIX) + +WMITLV_CREATE_PARAM_STRUC(WMI_PEER_SET_RATE_REPORT_CONDITION_CMDID); + + /* Add Beacon filter Cmd */ #define WMITLV_TABLE_WMI_ADD_BCN_FILTER_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_add_bcn_filter_cmd_fixed_param, wmi_add_bcn_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ @@ -1329,7 +1338,7 @@ WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_STATS_CMDID); WMITLV_CREATE_PARAM_STRUC(WMI_GET_FW_MEM_DUMP_CMDID); -/* Request for memory dump stats Cmd */ +/* flush debug messages */ #define WMITLV_TABLE_WMI_DEBUG_MESG_FLUSH_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_debug_mesg_flush_fixed_param, wmi_debug_mesg_flush_fixed_param, fixed_param, WMITLV_SIZE_FIX) diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h index c84658bda64c..6942d3bdcbf5 100644 --- a/CORE/SERVICES/COMMON/wmi_unified.h +++ b/CORE/SERVICES/COMMON/wmi_unified.h @@ -357,6 +357,10 @@ typedef enum { * WMI_PEER_ESTIMATED_LINKSPEED_EVENTID. */ WMI_PEER_GET_ESTIMATED_LINKSPEED_CMDID, + /** Set the conditions to report peer justified rate to driver + * The justified rate means the the user-rate is justified by PER. + */ + WMI_PEER_SET_RATE_REPORT_CONDITION_CMDID, /* beacon/management specific commands */ @@ -4527,6 +4531,43 @@ typedef struct { /* Peer Specific commands and events */ +typedef struct { + A_UINT32 percentage; /* in unit of 12.5% */ + A_UINT32 min_delta; /* in unit of Mbps */ +} rate_delta_t; + +#define PEER_RATE_REPORT_COND_FLAG_DELTA 0x01 +#define PEER_RATE_REPORT_COND_FLAG_THRESHOLD 0x02 +#define MAX_NUM_OF_RATE_THRESH 4 + +typedef struct { + A_UINT32 val_cond_flags; /* PEER_RATE_REPORT_COND_FLAG_DELTA, PEER_RATE_REPORT_COND_FLAG_THRESHOLD + Any of these two conditions or both of them can be set. */ + rate_delta_t rate_delta; + A_UINT32 rate_threshold[MAX_NUM_OF_RATE_THRESH]; /* In unit of Mbps. There are at most 4 thresholds. + If the threshold count is less than 4, set zero to + the one following the last threshold */ +} report_cond_per_phy_t; + + +enum peer_rate_report_cond_phy_type { + PEER_RATE_REPORT_COND_11B = 0, + PEER_RATE_REPORT_COND_11A_G, + PEER_RATE_REPORT_COND_11N, + PEER_RATE_REPORT_COND_11AC, + PEER_RATE_REPORT_COND_MAX_NUM +}; + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_rate_report_condtion_fixed_param */ + A_UINT32 enable_rate_report; /* 1= enable, 0=disable */ + A_UINT32 report_backoff_time; /* in unit of msecond */ + A_UINT32 report_timer_period; /* in unit of msecond */ + /* In the following field, the array index means the phy type, + * please see enum peer_rate_report_cond_phy_type for detail */ + report_cond_per_phy_t cond_per_phy[PEER_RATE_REPORT_COND_MAX_NUM]; +} wmi_peer_set_rate_report_condition_fixed_param; + /* Peer Type: * NB: This can be left DEFAULT for the normal case, and f/w will determine BSS type based * on address and vdev opmode. This is largely here to allow host to indicate that diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h index da858f809f84..6cd89dd4eb30 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_ 114 +#define __WMI_REVISION_ 115 /** 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 e8e582e213eb..774496935fec 100644 --- a/CORE/SERVICES/WMI/wmi_unified.c +++ b/CORE/SERVICES/WMI/wmi_unified.c @@ -631,6 +631,7 @@ static u_int8_t* get_wmi_cmd_string(WMI_CMD_ID wmi_command) CASE_RETURN_STRING(WMI_DCC_UPDATE_NDL_CMDID); CASE_RETURN_STRING(WMI_ROAM_FILTER_CMDID); CASE_RETURN_STRING(WMI_DEBUG_MESG_FLUSH_CMDID); + CASE_RETURN_STRING(WMI_PEER_SET_RATE_REPORT_CONDITION_CMDID); } return "Invalid WMI cmd"; } |
